反馈已提交

网络繁忙

按段分组

  • 文档创建者:文档助手1
  • 编辑次数:24次
  • 最近更新:Catqiu 于 2021-11-02
  • 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 单元格为「纵向扩展」,如下图所示:

    1571628763906676.png

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

    1571628817557339.png

    2.1.4 数据设置

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

    1571629021701313.png

    2.2 自定义条件分组

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

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

    1571629275174116.png

    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

    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭