![](/img/trans.png)
[英]Crystal Reports:IF/THEN/ELSE with null values and multiple conditions
[英]NULL values in Crystal Reports
我正在尝试生成一个Crystal报告,为我们的客户显示主要和替代联系方式。
如果客户具有两种类型的地址(即MAIN和ALTERNATE),则所有方法都可以正常工作,但对于仅具有MAIN地址的客户,根本没有任何报告。 因此,总而言之,所有客户都会有一个MAIN地址,但只有一些会拥有MAIN和ALTERNATE地址。
我需要获取报告以为所有没有第二个地址的客户打印表格(在本例中,数据库中的Addresses2.AddressType为ALTERNATE或NULL)。
我的选择公式如下所示:
{SubscriptionMembers.Current} and
{Categories.CategoryType} = "M" and
{SubscriptionMembers.MainSubscription} and
{Addresses.AddressType} in ["MAIN"] and
{Addresses2.AddressType} in ["ALTERNATE"] and
{Addresses.Country} = "United Kingdom" and
not {SubscriptionMembers.Lapsed} and
not {Contacts.Deleted}
我建议使用包含(isnull({Addresses2.AddressType},'ALTERNATE'))之类的SQL Expression Field,并在记录选择公式中使用此字段-这样,您就不必依赖于有关处理NULL值等的报告选项。
因为只有一些具有“备用地址”,所以选择公式仅向客户显示“主”和“备用”地址。
我假设每个客户都有一个主地址。我要解决的方法是{Addresses2.AddressType} in ["ALTERNATE"] and
取出{Addresses2.AddressType} in ["ALTERNATE"] and
在与主地址相同的部分(组)中删除“替代”地址详细信息。
只要这些链接正确,它将显示您其他选择参数中的每个客户,因此将显示“主要”和具有“替代”地址的客户。 外观如何:
组-客户ID
'MAIN' address details here 'ALTERNATE' address details here
组-详细信息
'DATA' here
由于无论哪种情况都需要获得客户,因此一种方法是不在记录选择公式中使用地址。 而是创建一个公式来检查address2是否为null
If isnull ({Addresses2.AddressType} in ["ALTERNATE"]) then your code Else If (Addresses.AddressType} in ["MAIN"] or {Addresses2.AddressType} in ["ALTERNATE"]) Then your calculation
这样您可以轻松处理
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.