多个标准的水晶报告组

时间:2014-01-28 19:40:14

标签: crystal-reports

这是一个奇怪的情况,我在锻炼时遇到了麻烦:

我有一份报告需要显示每个董事会成员在任何财政年度给予/获得的捐款摘要。他们获得了信用捐赠,软信用捐赠和募捐等奖励。这意味着他们的记录ID号在整个电子表格中分为3列。

所以,我的数据看起来像这样:

软信用证/硬信用证/律师ID /礼品金额

1 / - / - / $ 50

- / 1 / - / $ 100

- / - / 1 / $ 250

我需要能够将这些记录组合在一起,因为它们在记录中都有ID#“1”(但每次都在不同的列中)。我需要将这些记录组合在一起,以便显示每个董事会成员的摘要,详情如下:

董事会成员身份证1:总计400美元

软信贷 - 50美元 - 4/1/13

硬信用 - 100美元 - 2013年3月29日

律师信贷 - $ 250 - 7/2/13 (^这些不需要是摘要,这只需要列出所有礼物以及他们给予的信用类型)

我遇到了麻烦,因为我看不到基于ID在不同领域进行分组的方法。我尝试根据每个董事会成员的公式进行分组(公式读取{Hard Credit ID} =“1”或{Soft credit ID} =“1”或{{solicitor credit} =“1”)但它不起作用它创建了一个我不想要的层次结构。为格式化道歉 - 我找不到如何使上面的块显示为表格的说明。

2 个答案:

答案 0 :(得分:0)

将三个字段中的空值替换为0,然后连接。然后,您将在新字段中有三个值:100 010 001

如果将三个ID字段连接到一个新字段而不替换空值,那么您将获得“1”,“1”和“1”。如果将空值替换为0,则将得到“100”,“010”和“001”。现在,您可以在新字段上进行分组,您将获得小计,或者跳过分组,只列出详细信息。要提取代码的描述,如果我们只讨论3个可能的值,您可以使用嵌套的if语句来检查第一个值并测试它是否等于“100”,否则测试是否等于“010” ,如果等于“001”则测试,否则出错。或case语句,语法示例如下:Select/Case in Crystal ReportsCrystal Reports SELECT CASE statement

答案 1 :(得分:0)

根据源数据库的不同,一种方法是使用SQL表达式来压缩这三个字段:

coalesce({table.SoftCreditID},{table.HardCreditID},{table.SolicitorID})

或者你可以用常规公式来做:

if not(isnull({table.SoftCreditID)) then {table.SoftCreditID}
else if not(isnull({table.HardCreditID})) then {table.HardCreditID}
else {table.SolicitorID}