几乎任何形式的文档和报表都离不开分页,报表如何分页在B/S模式的Web报表中也是个常见的问题,特别是当大数据量的Web报表需要打印输出时,不可能将所有数据打印到一张纸上,这时必然涉及到报表的分页。开发Web报表常常遇到这样的问题:当数据比较多时,在分页后,常常最后一页只有几条数据,这样的报表被打印出来以后,看起来不是很美观,是否能在Web报表最后一页不足行的时候自动用空白行补充呢?

这个问题用润乾报表可以非常灵活的解决,下面介绍Web报表分页打印时补空行的四种不同情形如何在润乾报表中实现。

情形一,行高固定,无表头的报表

这种形式的报表最简单,下面用一个两层分组的客户表来举例说明。当此报表分页后,一共分为4页,最后一页只有一行,看起来非常不规整。

假设报表按A4纸张大小进行分页,一页纸可以打印30行。那么我们首先在报表末尾增加一个空白行,然后在最左边的单元格里加入=to(1,30-ds1.count()%30)表达式,此表达式的意思是说,一页纸固定行数是30行,分页时如果最后一页数据集ds1数据不满30行,则用空白行补充。

接着选定此单元格,将右侧属性栏中的[可视]属性去掉,发布报表即可看到效果。

将此报表发布后,可以看到最后一页已经被补入了空行,正好填充满第四页。

情形二,行高固定,每页都有表头的web报表

当报表加上表头而且每页都有时,情况也不复杂,只需要算出除去表头每页一共可以容纳多少行就可以。在本例中,除去表头每页还可以容纳29行,这样我们只需要将单元格A3中的表达式改为=to(1,29-ds1.count()%29),就实现了添加空行。

其实当报表加入加入表尾、页面、页脚等等,并且每页都显示时,处理方法也是一样的,只要算出这种情况下每页可以容纳多少行,再取模就可以。

情形三,行高固定,行数不固定,每页都有表头的报表

这种情况下,报表的总行数不等于数据集中记录的总个数,比如本例中在每个”地区”分组后都加入一个”公司数”汇总信息行的情况。这时报表按”地区”一共分为几组由具体数据决定,在设计报表时并不知道,但在润乾报表中非常容易得到这个分组个数,只要算出A2扩展出几个单元格就行。我们把A4的表达式改成:=to(1,29-(ds1.count()+count(A2{}))%29)。

其实,本例只是行数不固定的一种简单情况,还有很多其它行数不固定的情况,在润乾报表中都可以用表达式算出这不固定的总行数,从而解决问题。

情形四,行高固定,行数不固定,只有第一页有表头的报表

很多Web报表只需要在第一页打印报表表头,针对这种情况,润乾报表可以通过报表属性设置很方便地设置表头打印的方式。

这时情况其实和变化一类似,只是第一页多出来了报表头这一行,我们只需要在变化三的基础上把取模总数加1、再把每页按29行取模改成按30行取模,修改表达式为:=to(1,30-(ds1.count()+count(A2{})+1)%30)。

到这里,利用润乾报表实现分页打印Web报表补足空行的四种情形都介绍完了,细心的读者可能会发现,这四种变化都是基于”行高固定”这个假设,那么当行高不固定的时候如何处理呢?其实最简单答案还是在润乾报表中用取模的方法,只是取模的时候要加入具体行高和打印纸张的高度进行计算就行了。这时候又有读者会问,如果Web报表中的纸张大小都不固定怎么办呢?呵呵,这个也难不倒润乾报表。开发人员可以用润乾报表中的参数和宏的功能,动态设定纸张大小,以适应不同的打印情况。

在分页后web报表的最后一页补足空行的方法相关推荐

  1. phpcms登录成功后又跳转到登录页的bug修复方法

    昨天遇到的这个问题,登录后 显示登录成功后 又跳出来这个,后跳转到登录页 我饿解决方法就是在index.php入口文件里面添加 还有就是配置文件的问题,里面的session的作用域的问题,吧sessi ...

  2. 五种主流web报表工具的功能对比

    公司在做项目时,需要用到报表工具,经过我们对一系列市场上主流报表工具的考察.综合评定,以及到部分报表工具厂商实地考察.我们最终选择了更为专业,和适合我们开发的报表工具,以下是我们在前期选择报表工具时的 ...

  3. 明宇报表连接mysql_五种主流web报表对比:批量报表打印

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  4. java分页导出excel_报表中利用API来实现导出excel列后分页

    在报表中,当统计报表统计的指标非常多,在页面上展现的时候,整个报表会变得非常的长,经常会通过设置滚动条拖拽来查看整个报表,当这时用不分页导出excel后,查看excel中报表被导出到一个sheet中, ...

  5. 利用XML实现通用WEB报表打印(转载)

    原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...

  6. 企业级 WEB 报表工具——FineReport

    官网地址:http://www.finereport.com/ 帮助文档地址:https://help.finereport.com/  简介: FineReport 是帆软自主研发的企业级 web ...

  7. 关于Web报表FineReport打印的开发应用案例

    报表打印是报表使用和开发过程中经常碰到的问题,这里汇总了关于Web报表开发打印功能的一些典型应用案例,以应用最广泛的FineReport为例. 案例一:java直接调用报表打印 当java后台定义定时 ...

  8. 利用XML实现通用WEB报表打印 卢彦

    利用XML实现通用WEB报表打印(1) 卢彦 摘要 开发B/S结构的应用程序最头疼的问题可能就是报表打印了,由于只能采用浏览器来作为用户界面进行交互,所以不能精确控制客户端的打印机.而很多B/S结构的 ...

  9. 几种web报表打印方案的比较

    web报表打印通常是系统的辅助部分,但是又必须解决,否则项目完成不了.下面来分析分析目前的几种常见的web报表打印方案. 一. 浏览器的菜单打印功能 这是最简单的,只需点击页面上的打印菜单,但是也是问 ...

  10. 利用XML实现通用WEB报表打印(参考)

    原文地址: http://www.microsoft.com/china/community/Column/65.mspx 利用XML实现通用WEB报表打印 卢彦 方案适用性 . 1. 远程数据打印. ...

最新文章

  1. 重学前端之(4)函数、作用域、预解析
  2. Openfire 的安装和配置
  3. 文本编辑器添加文本编辑区
  4. 【有三吐槽】程序员改BUG的六重境界,你,第几重了?
  5. web在线聊天系统。非ajax轮询
  6. 零起点入门教程:用宜搭简单布局一个首页
  7. R语言实战(七)图形进阶
  8. 破解SQLSERVER存储过程的加密
  9. LeetCode 931. 下降路径最小和(DP)
  10. Mybatis(20)注解实现二级缓存
  11. 厉害了!厦门大学“嘉庚一号”火箭成功发射 问鼎九天
  12. 在Raspberry Pi上轻松设置.NET Core并使用VS Code进行远程调试
  13. 聊聊flink的FsStateBackend
  14. hash进阶:使用字符串hash乱搞的姿势
  15. 【边喝caffee边Caffe 】(一)Caffe的安装
  16. go实现gzip压缩、解压
  17. 随机抽样、分层抽样、整群抽样、系统抽样的区别
  18. 南理工计算机学院宋杰,周骏 - 计算机与信息科学学院 - Powered by 西南大学
  19. java中级程序员面试
  20. ZCMU--5066: 黑暗长廊

热门文章

  1. EasyRecovery14免费激活码序列号数据恢复软件 简体中文绿色直装版
  2. 用友nc6.5详细安装过程
  3. 虚拟机未安装音频设备_如何使用虚拟音频设备录制PC的音频
  4. 金蝶K3WISE无窗口登录
  5. SCAN及相关SSCAN,HSCAN和ZSCAN命令解析
  6. 冰河木马实验(V8.4)
  7. (附源码)python 在线办公系统 毕业设计 071116
  8. MPQ4573:和“讨厌”的二极管说拜拜
  9. C语言编写双人贪吃蛇游戏
  10. html滚动字幕上下,div css里文字上下滚动的代码怎么写