历史版本6 :双向扩展求页内合计 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

当表格是双向扩展列时,即包含横向和纵向两个表头,数据同时满足横向和纵向的类别,想要实现分页及页内合计,预期效果如下图所示:

动画1.gif

1.2 实现思路

利用高级分组写分组公式,在条件属性中设置「行前分页」,再进行合计。

2. 示例编辑

2.1 准备数据

点击设计器左上角「文件>新建普通报表」,新建数据库查询,输入 SQL 语句:SELECT * FROM 销量

Snag_3f4d318a.png

2.2 设计表格

1)合并 B1~D2 单元格,输入文本:地区销售概况,如下图所示:

2)合并 B3、C3 单元格,选中 B3 单元格,选择「单元格元素>插入斜线」按钮,输入:产品|销售员|地区 。如下图所示:

1.png

3)将对应的数据拖入单元格中,单元格设置如下表所示:

单元格
设置
A4纵向扩展,父格为默认
B4纵向扩展,父格为默认
C4
纵向扩展,父格为默认
D3横向扩展,父格为默认
D4不扩展,父格为默认

2.3 设置分组分页

2.3.1 设置分组

本例将表格按照 C4 单元格的「销售员」字段进行分组分页,每 3 行数据分为 1 组。

将 「销售员」字段拖入 A4 单元格,点击右侧「单元格元素>数据设置」为「分组>高级」,点击「自定义」,选择「公式分组」,显示模式为「普通分组」,自定义值输入公式:CEILING(INARRAY($$$,ds1.group(销售员))/3) 。即每 3 条数据为 1 组,组序号从 1 开始。

公式说明如下表:

公式
说明
ds1.group(销售员)选出数据集 ds1 中销售员的数据并分组
INARRAY($$$,ds1.group(销售员)/3)返回当前值在数组中的位置,再除以 3
CEILING()

将参数沿绝对值增大的方向,舍入为最接近的整数

步骤如下图所示:

1.png

2.3.2 设置分页

示例要将每个分组进行分页展示,那么需要从小组序号为 2 的小组开始进行「行前分页」。

选中 A4 单元格选择「条件属性」,添加属性「分页」,选择「行前分页」,条件类型选择「普通」,操作符选择「不等于整型 1」。如下图所示:

1.png

2.4 页内合计

2.4.1 页合计

1)合并 B5、C5 单元格,输入文本:页合计,选中 D5 单元格,「单元格元素>插入元素」选择插入公式 sum(D4)

1.png

2)这里的页合计实际上是对前面的每个分组进行合计,故需要将 D5 单元格的左父格设置为「自定义>A4」。如下图所示:

1.png

2.4.2 总合计

合并 B6、C6 单元格,输入文本:页合计,在 D6 单元格中插入 sum(D4) 公式进行求和即可。

2.5 设置重复行、隐藏列

1)选择第 1 行和第 3 行,右键单击,选择「设置重复标题行」,如下图所示:

1.png

2)选中第 5 行,选择「设置重复结尾行」,如下图所示:

1.png

2)选中 A 列,单击鼠标右键,选择「隐藏」即可将 A 列隐藏。

1.png

2.6 效果预览

2.6.1 PC 端

保存报表,点击「分页预览」,效果如 1.1 节所示。

2.6.2 移动端

App 端和 HTML5 端均支持,效果如下图所示:

动画1.gif

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Pagination\页内合计.cpt

点击下载模板:双向扩展求页内合计.cpt