代码函数[If/then/else和isNull]的结果不完整

2020-09-05 01:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我有一个包含三个时间字段...

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

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


你好

我有一个包含三个时间字段的数据库表:

(1)RMI.TFUA

(2)RMI.TCEQ

(3)RMI.TPPU

并且,我试图创建一个新的变量RT,即Crystal 2016中1与3或2(取决于2、3中的哪个具有非空值)之间的时差:

RT = RMI.TFUA-RMI.TCEQ或RMI.TFUA-RMI.TPPU

这正在修改已经使用多年的现有报告。 随着过程的最近更改,现在将时间输入到RMI.TCEQ或RMI.TPPU字段中,我需要更新RT公式以根据具有非空数据的任何时间字段进行计算。 我尝试了多种不同的编码方式,但是要么得到了"参数过多"错误,要么代码运行了,但是报告中却排除了许多记录。

这是最新的代码(如果有帮助,我也可以发送以前的版本):

(新版)EDTR0:

如果ISNULL({RMI.TPPU})则({RMI.TCEQ})否则({RMI.TPPU})

RT:CTIME({RMI.TFUA}-{@ EDTR0})

我试图了解代码的工作方式,因为它似乎在进行大量筛选/排除了很多记录(当我希望看到50-60时,显示2)。 在产生的两个记录中,一个记录在RMI.TCEQ和RMI.TPPU字段中都有时间,而另一个记录只有RMI.TCEQ时间。 两者都有必填的RMI.TFUA字段时间。

我对CR还是很陌生,非常感谢任何建议!

CJ

1条回答
歪着头看世界
2020-09-05 01:50

您好,

如果这些字段的数据类型为"时间",请将EDTRO公式更改为:

如果{RMI.TPPU} = time(0,0,0  ),然后{RMI.TCEQ}否则{RMI.TPPU} 

在公式编辑器中,在顶部查找一个下拉菜单,其中显示" Nulls for Nulls";

PS:如果它是日期时间字段,则公式为:

如果{RMI.TPPU} = datetime(0,0,  0,0,0,0),然后依次是{RMI.TCEQ}和其他{RMI.TPPU} 

-阿比拉什

一周热门 更多>