Wpf 为什么Crystal报表公式无法对数据进行分组

Wpf 为什么Crystal报表公式无法对数据进行分组,wpf,crystal-reports,Wpf,Crystal Reports,我正在使用公式字段,并已创建了此公式,以便根据空值或非对数据进行分组。但它不起作用,总是将数据分组在一个完成的组中。为什么? if (Not IsNull({MRSReportProject_MRSReportClass.Actiontaken})) and (IsNull({MRSReportProject_MRSReportClass.actioncomplete})) then "Pending" else if (Not IsNull({MRSReportProje

我正在使用公式字段,并已创建了此
公式
,以便根据
空值或非
对数据进行分组。但它不起作用,总是将数据分组在一个
完成的
组中。为什么?

 if (Not IsNull({MRSReportProject_MRSReportClass.Actiontaken})) 
    and (IsNull({MRSReportProject_MRSReportClass.actioncomplete})) then "Pending"

    else if (Not IsNull({MRSReportProject_MRSReportClass.actioncomplete})) then "Completed"

else "Nothing";

您的空值很可能不是空值

一个原因可能是Crystal Report选项“将空值转换为默认值”
——如果选中此选项,则公式不会看到空值,但空字符串或数字0取决于字段类型

另一种可能是数据源已经不返回空值


然后应该使用简单的比较运算符(
=
)来比较值;如果有时出现空值,则必须考虑所有组合(使用比较运算符和ISNULL()函数。我有时会使用中间变量或公式来消除空值,简化代码(有些公式可能长达几页)。

在您的报告选项中,您是否意外地将选项
将空值转换为默认值
选中?我的建议是在crystal reports外部操作数据。包括任何计算字段。那么,如果出现问题,您将使用c#而不是crystal。@Arvo哪里可以检查?我没有看到报告选项按钮?在Crystal语法中,不等式运算符是
。我将其转换为答案,您可以对其进行操作;)