历史版本28 :每页固定行数页内合计 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

文档 每页显示固定行数 中,通过「条件属性>行后分页」实现了每页显示固定行数,但在其基础上实现 页内合计 时,使用「重复结尾行」设置「页合计」,会出现页合计重复出现的问题。如下图所示:

那么要如何实现固定行数报表中,页合计、组合计、总合计正常显示呢?

1.2 解决思路

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

2. 示例编辑

2.1 打开模板

打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Pagination\按组分页.cpt

修改报表样式:在表格前插入一列,在第 6、7、8 行分别设置「页合计」、「组合计」和「总合计」。样式如下图所示:

Snag_bca3acf.png

2.2 设置分组

模板 按组分页.cpt  中一个组的数据是一个「货主地区」的全部数据,这里将其每个组的数据再分为每 5 条数据为一组。

1)选中 A5 单元格,拖入数据列「订单 ID」,设置扩展方向为「纵向扩展」,左父格为 B4 单元格。

2)设置 A5 单元格的「单元格元素>数据设置」为「分组>高级」,点击「自定义」,选择「公式分组」,显示模式为「普通分组」,自定义值输入公式:CEILING(INARRAY($$$,ds1.group(订单ID))/5) 。即每 5 条数据为 1 组,组序号从 1 开始。

公式说明如下表所示:

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

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

步骤如下图所示:

1614758226378450.png

3)修改 B5 单元格的左父格为 A5 单元格(即默认)。

2.3 汇总计算

针对「应付金额」数据列作合计,下面分别介绍三种合计设置。

2.3.1 页合计

「货主地区」下每一小组订单记录就为一页,页合计即对每一小组数据进行汇总。设置「页合计」所在 B6 单元格左父格为 A5,在 E6 单元格中插入公式sum(E5)

2.3.2 组合计

对每个「货主地区」的所有数据进行汇总,设置「组合计」所在 B7 单元格的左父格为 B4,在 E7 单元格中插入公式sum(E5)

2.3.3 总合计

所有数据都扩展完后进行总计,不需要设置父格,直接在 E8 单元格中插入公式sum(E5)

2.4 设置分页

此时预览模板,每一小组还是显示在一页上面,因此需要设置分页。

选中 A5 单元格选择「条件属性」,添加属性「分页」,选择「行前分页」,条件类型选择「普通」,操作符选择「不等于整型 1」,即每个地区下从小组序号为 2 的小组开始「行前分页」,如下图所示:

1614759812462283.png

2.5 隐藏列

设置完成后隐藏 A 列。

2.6 效果预览

2.6.1 PC 端

保存模板,点击「分页预览」,效果如下图所示:

1611913882163989.gif

2.6.2 移动端

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

3064A332-F8A2-4354-BE03-3A59A424E069.GIF

2.7 补充:设置页码

问题描述

上述已完成模板,以货主地区来进行分页,每页 5 条数据,此时若想要知道这是某个地区的第几页和这个地区共有几页,那么该如何生实现呢?

解决方案

1)在报表下方插入两个表示页码的公式:D10 单元格为{A5},表示某地区当前页数;E10 单元格为"/" + count(A5),表示获取该地区的页码有几页,"/" 起分隔符的作用。

2)设置 D10、E10 单元格的左父格均为「货主地区」所在的 B4 单元格,并将第 10 行设置为重复结尾行。

3)由于重复结尾行的影响,需将总合计所在 B8、E8 单元格的左父格设置为 A11,并且在 A11 单元格中添加一个空格,使第 11 行为「空白编辑行」。

如下图所示:

1614760405817592.png

4)保存报表,点击「分页预览」,即可看到当前地区的页码数:

1612186703466292.png

注:也可以通过页码公式进行页码的显示,可参考 根据分组设置页码

3. 模板下载编辑

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

点击下载模板:分组分页合计.cpt