条件打印取决于Crystal Reports中的空值或空值

时间:2012-05-12 22:38:38

标签: database crystal-reports field crystal-reports-2008

假设我有一个StoredProcedure,它返回一个对应于具有“Name”和“Surname”列的表的唯一行。

我希望报告显示:

Name: NameField
Surname: SurnameField

“NameField”和“SurnameField”是StoredProcedure返回的字段。

特殊要求是,如果“SurnameField”为空或为null,那么我不想显示“Surname:SurnameField”。

我怎样才能做到这一点? 我唯一想到的就是将存储过程分为两个,一个用于Name,一个用于Surname,并将每一行划分到不同的子报告中,并为第二个选择“Delete if empty”(或类似的东西)......但这是真的有点矫枉过正,我想有更简单的方法。

3 个答案:

答案 0 :(得分:2)

应该有很多方法可以实现这一目标。我不太确定你的报告是如何布局的,但你可以使用一个简单的公式来压制字段和标签或整个部分(如果它有它自己); isnull({table.field}) or {table.field} = ''

或者,如果您将空值设置为默认值而不是异常,则可以执行以下操作:{table.field} = ''

答案 1 :(得分:1)

设置字段> 1(假设所有字段都已大于1)或<> 0 这应该过滤掉该区域中空白的记录。

答案 2 :(得分:0)

您可以通过Section Expert来实现:

假设名称字段名称是Surname,表是NAME,存储姓氏值的字段是S_NAME_VALUE。您可以设置过滤器,以检查该值为NULL还是BLANK。

if {NAME.SURNAME} in ['SNAME'] and 
             {NAME.S_NAME_VALUE} =''
then 
             TRUE

我假设有一些用于姓氏过滤的代码,即SNAME。

如果没有,您可以使用一个条件并将其标记为true。

  if {NAME.S_NAME_VALUE} = '' then TRUE