2012-07-29 57 views
1

我遇到以下问题: - 我有一个数据库表,其结构如下:<年龄,性别,工资,...> - - 我有一份Crystal Reports报告,其中有两个子报告,每个报告都显示一个每个工龄的工资图,一个用于记录男性性别和女性性别的记录。 如果表中没有性别值为“男性”或“女性”的记录,我想要抑制一个子报告。 谢谢, 瓦利在Crystal Reports中当列的值不等于“something”时抑制Crystal Reports中的部分

回答

0

创建SQL表达式这算男的出现次数和女性值gender列。例如:

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

然后压制你通过抑制公式要简单的报表{%SQL_expression} = 0

有关SQL表达式一个好的presenatation是在这里:https://www.box.com/shared/i2jk8yohku

或者您可以使用一个公式,读取场同时使用WhileReadingRecords和共享的布尔变量从数据库中读取它们。

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

然后使用共享布尔变量来抑制sbreport。