最新历史版本 :按段分组 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
11.0

1.2 预期效果

按段分组是一个比较典型的高级分组报表样式,其分组是根据数据的值段来分的。

比如按照分数段、年龄段、时间段等,属于某个值区间的记录归到一个组里显示,如下图所示:

1.png

1.3 实现思路

利用数据列属性中的分组进行自定义分组。

2. 示例编辑

2.1 报表设计

2.1.1 新建报表

新建普通报表,添加数据集 ds1,SQL 语句为:SELECT 雇员ID, 职务, cast(strftime('%Y','now') as int)-cast(strftime('%Y',出生日期) as int)+1 AS 年龄 FROM 雇员,如图所示:

1571626850532723.png

雇员表中存的是雇员的出生日期,因此在 SQL 中我们使用函数strftime('%Y','now')-strftime('%Y',出生日期) +1,根据出生日期计算出员工的年龄。

2.1.2 报表样式

报表样式如下图所示:

2.1.3 扩展方向

1)选中 A3 单元格,点击「单元格属性>扩展>扩展方向,设置 A3 单元格为「纵向扩展」,如下图所示:

2)选中 B2 单元格,点击「单元格属性>扩展>扩展方向」,设置 B2 单元格为「横向扩展」,如下图所示:

2.1.4 数据设置

选择 B3 单元格的数据列设置为「汇总」、「个数」,扩展方向为「不扩展」,如下图所示:

2.2 自定义条件分组

设计器预览模板,此时会将所有年龄都扩展出来,我们希望将年龄分成段显示。

1)选中年龄数据列所在单元格 B2,单元格元素>基本>数据设置修改为「分组」、「高级」,如下图所示:

2)点击「自定义按钮」,弹出自定义分组对话框,选择「条件分组」。将年龄分成四段。

  • 组 1:命名为「小于 20 岁」,条件为年龄小于 20,如下图所示:

1571639682499030.png

  • 组 2:命名为 「20~30 岁」,条件为年龄大于等于 20 and 年龄小于 30,如下图所示:

1571639805857011.png

  • 组3:命名为 「30~40岁」,条件为年龄大于等于 30 and 年龄小于 40,如下图所示:

ba45564325bf432f4375564068348d0.png

  • 组 4:命名为「大于 40 岁」,条件为年龄大于等于 40,如下图所示:

4b468d7ef34c2554380439b48cb424d.png

2.3 强制分组

由于数据库表中没有符合小于 20 岁的年龄,因此预览时不显示小于 20 岁这一组,如下图所示:

若希望即使没有符合的的数据,仍然显示出所有定义的分组的话,可以在自定义分组界面选择「强制分组」,如下图所示:

1571640162325552.png

2.4 效果预览

2.4.1 PC 端

保存模板,选择分页预览,效果如 1.2 节中所示。

2.4.2 移动端

App 与 HTML5 显示效果相同,如下图所示:

1571640579701912.png

3. 已完成模板编辑

已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\GroupReport\按段分组.cpt

点击下载模板:按段分组.cpt