概述
–
使用 Word 编辑文档,当文本或图形等内容填满一页时,Word 会插入一个自动分页符并开始新的一页。如果要在某个特定位置强制分页,可手动插入分页符(分隔符内),这样可以确保章节标题总在新的一页开始。
对于报表来讲,同样有类似的需求,比如一个订单包括订单信息(订单编号、货主信息、各种日期时间等)及明细信息(产品列表),常见报表呈现形式如下图
问题:当一次查询多个订单,因产品列表的行数是不固定的,也就无法保证每个订单都恰好能从新的一页开始。
解决方案很简单,如同 word 的分页符,这就要求报表工具支持在每个订单的产品列表后强制分页。
润乾报表如何解决?
很简单,一个行属性的问题。
接下来的内容,结合“订单”及“订单明细表”为大家介绍如何来做。
操作步骤
准备一个主子表格式报表模板
准备一张结果如下图所示的主子表
模板设计如下
数据集sql:
- 订单:SELECT 订单.订单ID,订单.订购日期,订单.到货日期,订单.发货日期,订单.运货商,订单.货主地址,雇员.姓氏,雇员.名字,客户.公司名称 FROM 订单,客户,雇员 WHERE 订单.客户ID = 客户.客户ID AND 订单.雇员ID = 雇员.雇员ID
- 明细:SELECT 订单明细.订单ID,订单明细.产品ID,订单明细.单价,订单明细.数量,订单明细.折扣 FROM 订单明细
B2表达式:=订单.select(订单ID)
D3表达式:=订单.姓氏+订单.名字
B4、B5、B6、E4、E5均为:=订单.字段名
A8表达式:=明细.select(产品ID,订单ID==B2)
B8、C8、D8均为:=明细.字段名
E8表达式:=B8*C8*D8
第9为增加的空白行,用于每个订单的该行后强制分页。
另外,A1—A9的左主格设置为B2
数据集sql: 1. 订单:SELECT 订单.订单ID,订单.订购日期,订单.到货日期,订单.发货日期,订单.运货商,订单.货主地址,雇员.姓氏,雇员.名字,客户.公司名称 FROM 订单,客户,雇员 WHERE 订单.客户ID = 客户.客户ID AND 订单.雇员ID = 雇员.雇员ID 2. 明细:SELECT 订单明细.订单ID,订单明细.产品ID,订单明细.单价,订单明细.数量,订单明细.折扣 FROM 订单明细 B2表达式:=订单.select(订单ID) D3表达式:=订单.姓氏+订单.名字 B4、B5、B6、E4、E5均为:=订单.字段名 A8表达式:=明细.select(产品ID,订单ID==B2) B8、C8、D8均为:=明细.字段名 E8表达式:=B8*C8*D8 第9为增加的空白行,用于每个订单的该行后强制分页。 另外,A1—A9的左主格设置为B2
模板中设置行后分页(强制分页)
重点!!!在模板中设置行后分页,选中第 9 行,属性区“行属性”—“行后分页”
复选框内打勾,保存模板。
预览报表结果
分页仅在 web 端有效,所以先发布报表,浏览器预览报表如下
通过设置强制行后分页,轻松实现每个新订单都从新的一页开始。针对这种比较常用的功能,报表工具在设计时都已考虑到,尽管和 word、excel 等内的叫法不同,但功能相同。遇到类似问题查阅手册,对应设置即可。
另外,行后分页支持表达式定义,所以可以控制任意满足条件下的强制行后分页。该部分也将在后续的文章中陆续介绍。