水晶报表:该字段为空白

2020-09-08 15:39发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


今天这个让我发疯。

 if(isnull({Command.HospLeaveDateTime})或totext({Command.HospLeaveDateTime})='')
 然后 (
 如果为非({Command.ClearTime}),则为{Command.unit_clr_DateTime}
 否则,如果{Command.ClearTime}> {Command.unit_clr_DateTime},则{Command.unit_clr_DateTime}
 否则{Command.ClearTime}
 )
 否则,如果{@Destination}> {Command.HospLeaveDateTime}
 然后{Command.ClearTime}
 其他{Command.HospLeaveDateTime}
 

当ClearTime字段和HospLeaveDateTime字段均为NULL时,该字段显示为空白。 该公式看起来可以处理NULL情况,但我想不是吗? 我该如何调整?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


今天这个让我发疯。

 if(isnull({Command.HospLeaveDateTime})或totext({Command.HospLeaveDateTime})='')
 然后 (
 如果为非({Command.ClearTime}),则为{Command.unit_clr_DateTime}
 否则,如果{Command.ClearTime}> {Command.unit_clr_DateTime},则{Command.unit_clr_DateTime}
 否则{Command.ClearTime}
 )
 否则,如果{@Destination}> {Command.HospLeaveDateTime}
 然后{Command.ClearTime}
 其他{Command.HospLeaveDateTime}
 

当ClearTime字段和HospLeaveDateTime字段均为NULL时,该字段显示为空白。 该公式看起来可以处理NULL情况,但我想不是吗? 我该如何调整?

付费偷看设置
发送
4条回答
CJones
1楼 · 2020-09-08 16:19.采纳回答

{Command.unit_clr_DateTime}总是有一个值,还是也可以为空?

日期时间是否可以为空值取决于您的数据库是否允许日期为空 。

我会尝试将公式分解为较小的公式,以解决问题所在。 还有一些方法可以使If语句变得不那么复杂。 像这样的东西:

 {@ Clear Time}
 如果isnull({Command.ClearTime})或{Command.ClearTime} = DateTime(0,0,0,0,0,0),则
   {Command.unit_clr_DateTime}
 其他
   最小值([{{Command.ClearTime},{Command.unit_clr_DateTime}])
 

将此内容放置在报告中,并测试其是否返回值。 如果是这样,请尝试以下操作:

如果isull({Command.HospLeaveDateTime})或{Command.HospLeaveDateTime} = DateTime(0,0,0,0,0,0),则
   {@清除时间}
 否则,如果{@Destination}> {Command.HospLeaveDateTime},则
   {Command.ClearTime}
 else {Command.HospLeaveDateTime} 

您也可以将if从else-if分解为自己的公式,然后进行测试。 其中之一应该可以帮助您确定问题出在哪里。

-Dell

派大星 ヾ
2楼-- · 2020-09-08 16:08

就像我说的那样,请尝试将其分解成小块,以查看空白字段的首次出现位置 向上。 这样,您就可以解决一个更有限的问题,然后从那里开始构建。

您还可以使用这些字段本身来查看每个日期的公式所发生的情况:

如果isNull({Command.ClearTime})然后
   空字段
 否则,如果{Command.ClearTime} = DateTime(0,0,0,0,0,0),则
   零日期
 else ToText({Command.ClearTime},'dd/MM/yyyy HH:mm:ss')

这将让您知道各个字段中的值以及需要使用哪些检查为空的值 或零日期。

这是我在处理报告并没有给我期望的报告时采取的故障排除步骤。

-戴尔

悠然的二货
3楼-- · 2020-09-08 16:13

嗨Kenshin,

如果HospLeaveDateTime是一个日期时间,则IsNull不起作用。 使用DateTime(0,0,0,0,0,0)代替:

 if({Command.HospLeaveDateTime} = DateTime(0,0,0,0,0,0)或totext(  {Command.HospLeaveDateTime})='')

那应该正确地设置您的日期时间。 如果只是日期,请使用Date(0,0,0)。

祝你好运,

Brian

d56caomao
4楼-- · 2020-09-08 16:08

谢谢,但没有。 它还没有这样做。

一周热门 更多>