博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
横竖连续打印的解决办法
阅读量:5905 次
发布时间:2019-06-19

本文共 1068 字,大约阅读时间需要 3 分钟。



前言:

       有些情况下,比如证书、单据等,浏览报表时希望连续查看在一个页面中,但打印时因为其证书、单据等的特性导致横纵向打印是有要求的,而对于润乾报表来说定义横纵向只能对整个报表进行设置,不能对报表的不同区域进行特别设置,这就要求我们应该可以提供一个展示时报表连续,打印时横竖连续打印的方案。

 

方案一:

      润乾默认打印只能对单一报表对象横纵向设置识别,所以在不改动产品的情况下,打印时也只能打印单一报表对象或者报表组对象,这就要求我们设计该方案的最基本想法就是有多少张报表样式就要做多少张Raq,这样我就要考虑展示时如何让其在一个页面连续展现,因为润乾可以采用标签发布报表Raq的方式进行展示,这样我们就可以想到在一个Jsp中用多个标签进行多个Raq的发布展示,屏蔽掉每个报表所特有的功能按钮和分页提示后,即可达到展示需求的效果;然后来说打印,因为是客户端打印,要让终端用户在点打印时感觉不到后台在处理多张报表,所以我们调用润乾的打印报表组功能,终端用户点击一次打印后即可实现多张报表打印,但因为要计算报表组所以我们还要考虑如何用简单的方式进行计算报表组又不让其显示,我这里所采用的方式是在展示jsp中用<iframe>调用报表组的页面,然后将<iframe>height属性设置为0,让其隐藏,最后在展示报表页面自定义打印超链接调用report5.group_print();方法实现报表组打印。

 

方案二:

       方案二利用润乾比较成熟的批量打印的例子,展示依然采用方案一的展示方法,打印在页面调用<object>直接处理润乾打印类,再结合润乾提供的js方法runqian_getPrintReports();来设置需要批量打印的报表,该js返回的格式为{

无参数报表名}{
报表1(参数1=value1;参数2=value2;…)}{
报表2(参数1=value1;参数2=value2;…)}…,利用java代码拼接此字符串传给润乾的打印类,再用<object>标签调用进行打印。

 

结论:

       第一种方案大都采用润乾现有功能只是进行适当的组合,代码量和思路都比较简单。

       第二种方案代码量比较大,而且调用了润乾的js,思路也不是太好想,但灵活性更高。

       两种方案无论哪种方法缺点都比较明显,就是打印时会重新计算报表,所以展示和打印会耗费两次资源,但鉴于这种打印需求的情况大多数据量不是太大,所以此两种方案还是可以满足客户需求。

转载于:https://www.cnblogs.com/shiGuangShiYi/p/10117505.html

你可能感兴趣的文章
6大设计原则
查看>>
Github简介
查看>>
存储过程—导出table数据为inser sqlt语句
查看>>
CISCO2691的OSPF点对点密文测评测试
查看>>
POJ 1661 Help Jimmy(递推DP)
查看>>
Node.js 中文学习资料和教程导航
查看>>
查找(AVL平衡二叉树)
查看>>
AJAX-初学AJAX本地环境配置
查看>>
【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)...
查看>>
Linux常用基本命令( rmdir, rm, mv )
查看>>
POJ2406 Power Strings(KMP)
查看>>
JavaScript-console的使用_016
查看>>
两种方式设置iframe的高度区别
查看>>
Iterator 和 for...of 循环
查看>>
关于iOS 11.x微信连wifi流程中,在Portal页无法拉起微信问题的简单记录
查看>>
Python GUI库wxPython官网Hello World示例的逐行解释
查看>>
RE·WORK 巅峰对话:深度学习将彻底改变医疗健康领域
查看>>
Codeforces Round #442 (Div. 2) A B
查看>>
极值问题(acms)
查看>>
swift UI专项训练8 展示数据
查看>>