是否有内置晶体方法来检测晶体报告中的表是否有任何行?
我创建了一个子报告,其中包含一些标题文本和一个包含表格信息的详细信息。
如果没有要打印的内容,我希望能够通过打印来抑制标题文本。
此外,有没有办法将其传递给“主”报告,这样如果没有要打印的内容,我可以完全禁止打印子报告?
此致
答案 0 :(得分:2)
使用Count()函数。 将它与您的一个数据源字段一起使用。
来自Crystal Reports 2008帮助的:
过载 伯爵(fld) 伯爵(fld,condFld) 伯爵(fld,condFld,cond) 数(x)
参数 fld是可由函数评估的任何有效数据库或公式字段。 condFld是一个用于对fld中的值进行分组的字段。 cond是一个String,表示condFld的分组类型。仅当condFld是Date,Time,DateTime或Boolean字段时,才指定此参数。有关此参数的有效字符串的更多信息,请参阅汇总函数的条件。 x是一个值数组,可以通过正在使用的函数进行评估。
返回 编号
动作 使您可以计算报告中显示的值(对于指定的字段)。例如: 如果销售报表包括所有订单和每个订单的金额,您可以计算报表上显示的订单总数(总计数)。 如果将订单分组(例如,按其来自的状态分组的订单),则可以计算每个组的订单数(在本例中为每个州)。 如果您将订单分为日期或布尔组(例如,按照放置月份分组的订单),您可以根据日期或布尔字段中的特定更改计算每个组的订单数(在这种情况下,每月)。 如果指定一组单个值,则可以计算集合中的值的数量。有关此类计数的信息,请参阅数组汇总函数。
实例 以下示例适用于Basic和Crystal语法: 计数({orders.AMOUNT},{orders.CUSTOMER ID}) 此公式计算金额字段中每组订单的订单数(每个客户的总订单)。只要“客户ID”字段中的值发生更改,订单就会分组。 计数({orders.ORDER AMOUNT},{orders.ORDER DATE},“每月”) 计算金额字段中每组订单的订单数(每月的总订单数)。只要“日期”字段中的值更改为新月,订单就会分组。 以下示例适用于Crystal语法: 如果Count({orders.ORDER ID})> = 100那么 “恭喜你满足你的配额!” 其他 “” 如果订单数量为100或更多,则打印祝贺消息,如果订单数量小于100,则不打印任何内容。 计数([1,2,3,4,5]) 返回5.计算数组中值的总数。
注意:在公式中使用此功能会强制在打印时评估公式。 有关评估时间注意事项的更多信息,请参阅评估时间。