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

目录:

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

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