CrystalReports > 如何分组

水晶报表中的组

配置工具:SAP Crystal Reports 2016

通过【插入组】功能(工具栏第二个图标),可以对列表进行分组显示。

一、序号

右击行中任意字段,选择【插入】->【运行总计】,进入【创建运行总和】对话框。

  • 【汇总类型】选择【计数】

  • 【求值】选择【对于每个记录】

  • 【重置】选择【组更改时】可在每个组重新从1开始计数

二、分页

如何让每个分组都新建页开始显示?

右击【组尾】所在节,选择【节专家】,在【分页】中勾选【之后新建页】

三、汇总

工具类第三个图标【∑】,可以插入汇总字段。

选择需要汇总的字段,【计算此汇总】选择【和】

【汇总位置】可选择一个组或者报表尾

四、内容拼接

如下表所示,当尺寸和订单编号相同时,累加数量,且以逗号为分隔符连接备注。

尺寸 订单编号 数量 备注
100 2001 1 第一行
100 2001 2 第二行
200 2002 1 第三行

变更后如下所示。

序号 尺寸 订单编号 数量 备注
1 100 2001 3 第一行,第二行
2 200 2002 1 第三行

首先使用组合字段分组,新建公式字段【尺寸+订单编号】,按照该字段建组。

数量汇总按照第三条操作,备注累加需要新建三个公式字段。

在节【组头】放置公式字段@InitiliseRT。

WhilePrintingRecords;
StringVar ConcatRemark;
If Not InRepeatedGroupHeader Then
    ConcatRemark := "";

在节【详细资料】放置公式字段@UpdateRT。

WhilePrintingRecords;
StringVar ConcatRemark := ConcatRemark + "," + {table.remark};

在节【组尾】放置公式字段@ShowRT。

WhilePrintingRecords;
StringVar ConcatRemark;

【序号】的实现使用右侧【特殊字段】中的【组号】

五、隐藏相同行

在【详细资料】节右键打开【节专家】对话框,在【公用】下的【抑制显示】条目,编辑动态参数。

if({tableName.order_number})=previous({tableName.order_number})then true

如上所示,即order_number与上一行相同时,不显示当前行。