当列没有等于“某事”的值时,在Crystal Reports中抑制部分

时间:2012-07-29 20:37:18

标签: crystal-reports

我有以下问题:   - 我有一个具有以下结构的数据库表:<年龄,性别,工资。,..>   - 我有一份Crystal Reports报告,其中包含两个子报告,每个报告显示一个每个年龄段的工资图,一个用于记录男性,另一个用于女性。  如果表中没有性别值为“male”或“female”的记录,我想压制一个子报表。 谢谢, Vali

1 个答案:

答案 0 :(得分:0)

创建 SQL表达式,用于计算性别列中男性和女性值的出现次数。例如:

(select count(male) from dbtable where gender = 'male')

然后只需通过抑制公式{%SQL_expression} = 0

来抑制所需的子报表

关于SQL表达式的一个很好的介绍在这里:https://www.box.com/shared/i2jk8yohku

或者,您可以使用一个公式,在使用 WhileReadingRecords 和共享的BooleanVar从数据库中读取字段时读取字段。

WhileReadingRecords;
Shared BooleanVar isMale;
isMale := False;
if (dbTable.Gender = 'male') then
  isMale := True;
isMale;

然后使用共享的BooleanVar来抑制sbreport。