润乾报表 --- 分页控制

润乾报表提供了丰富的分页控制方式,以满足报表用户在不同情况下的需求,包括:按纸分页、按行分页、不分页、行后分页、列后分页等。
下面就润乾报表的分页控制详细加以介绍。

按纸分页


  按纸分页主要用于打印,也是润乾报表默认的分页方式,报表在打印时按照报表设定的纸张(默认是 A4)大小进行自动分页,超出纸张的部分会在下一页打印,这种分页方式适用于用户对一页纸上打印几条记录没有要求,希望记录数充满纸张时设置。

  在“报表属性 - 分页”选项下可以设置报表分页方式为:按纸分页。

imagepng

   由于润乾报表提供了多种纸张类型(包括自定义纸张),使用按纸分页可以满足对打印纸张有特殊要求的报表用户需求。

   与上述描述一致,按纸分页的应用场景是为打印服务,设置按纸分页的报表打印预览时可以看到如下效果:
第一页 
imagepng

最后页
imagepng

按行分页


  有时报表除了打印还需要需要在 WEB 上呈现,这时常常希望每页显示的固定指定行数的记录,按设定的每页显示的数据行数自动进行分页,超出设定的行数的数据在下一页。

在“报表属性 - 分页”选项下可以设置报表分页方式为:按行分页,并设置每页行数。

imagepng

按行分页主要用于报表展现,在页面上每页显示固定行数,设置按行分页(每页 10 行)的报表在页面上预览可以看到如下效果:
第一页 
imagepng

第二页

imagepng

设置按行分页的报表最后打印时也可以得到固定行数的打印效果。

有时最后一页的数据较少,打印出来的最后一页明显比前几页会短一些,这时用户可能希望最后一页补足空行,此时就可以通过设置按行分页来完成。补足空行除了设置按行分页(如每页 10 行)外,还需要在报表中新增一行并设置其首格表达式为:to(1,10-ds1.count()%10),并取消其首格“可视”属性。
补足空白行具体示例可以参考: 补足空白行的实现

不分页


除了按纸和按行分页,润乾报表还可以不分页,报表在页面展现时有时希望所有信息展现在一页中,并通过页面滚动来查看所有报表信息。

在“报表属性 - 分页”选项下可以设置报表分页方式为:不分页。

imagepng

   与按行分页类似,不分页常用于报表页面展现,较大的报表设置不分页在页面上可以通过滚动条查看报表信息,在页面上查看如下:

imagepng

固定表头设置可以参考: 像 excel 一样轻松冻结 web 报表表头 (锁定表头)

行后分页


  以上分页方式都是报表自动进行分页控制,但有时希望在报表中的指定行位置进行强制分页,这时就需要使用行后分页。

  行后分页需要在报表设计器右侧的属性面板中设置:

imagepng

 使用行后分页与其他设置结合可以实现很多丰富的效果,常用于按组分页中,希望每一页正好呈现一个分组的内容,从而能清晰地分拆出各个组。
还可以通过报表表达式控制行后分页,所以在使用上比起先前的分页方式更加灵活。行后分页具体示例可以参考: 像 word 手动插入分页符一样实现报表中强制分页(强制分页)

设置按组行后分页的报表在页面上展现效果如下:
第 2 页
imagepng

第 3 页

imagepng

列后分页


  在润乾报表中行列对称,与行后分页类似,列后分页可以在指定列位置进行强制分页。列后分页仍然可以通过表达式控制,设置列后分页也同样在报表设计器右侧的属性面板中:

imagepng

特殊分页


比如 WEB 展现时需要横向不分页,但纵向分页,这个时候不管选择不分页或者按纸分页和按行分页都没有办法实现需求。选择不分页没有纵向分页,选择按纸分页或者是按行分页时,若横向较长时,就会有横向分页。此时可以通过 jsp 标签属性来实现。

width="-1"//当报表的纸张方向是纵向时,使用此属性就可以满足用户的需求,将横向固定为一页。
height="-1"//当报表的纸张方向是横向时,使用此属性就可以满足用户的需求,将横向固定为一页。

比如纵向纸张的报表设置 width="-1" 属性后,分页报表在页面上展现效果如下:

imagepng
未设置属性时,分页情况如下,列会被分到下一页:
imagepng

属性说明
width 表示报表分页宽度,负数表示无穷大,默认是报表设计页面宽度
height 表示报表分页高度,负数表示无穷大,默认是报表设计页面高度

PS:
所有报表展现使用同一个 jsp 展现时,需要根据不同报表动态控制是否横向不分页,那么可以动态设置 width/height 的属性值,比如:

width="<%=变量名%>"

URL 中拼 &width=-1 时,表示横向不分页,不传值时则按照原有分页设置展现。