润乾报表之填报表如何实现打印

打印和导出是报表工具的基本功能。针对普通报表,润乾提供了多种打印方式,如本地打印、falsh 打印、pdf 等。但是填报部分,一般用来用户在页面端对数据做数据的增、删、改操作,打印的需求很少,暂没有提供打印功能。但是想要打印的话,我们可以自己新增一个打印按钮,然后点击时调用相应的方法也可实现。

使用自带的 demo 数据源中的员工表新建一填报表
1、新建空白填报表,点击填报–数据处理,可使用向导生成脚本(来源和去向的脚本自动生成)

1png

2、设计填报表,将报表保存在 reportFiles 目录下,名为 test.sht

2png

3、新建一普通报表,样式和填报表保持一致。如下图所示:
和填报表保存在同一目录下,名为 test_print.rpx

3png

4、在填报表工具栏增加打印按钮
打开安装目录 demo\reportJsp 下的 inputtoolbar.jsp,增加一行

<li id="print" style=""><a class="ICOhover left" href="#" onClick="print()"><span title="print">print</span></a></li>

4png

5、增加打印功能
打开安装目录下的 demo\reportJsp 下的 previewInput.jsp(默认发布使用的是 previewInput.jsp,正式访问一般使用的是 showInput.jsp),在末尾的 javascript 脚本中增加:

function print(){
 var rpx="<%=input%>".replace(".sht","_print.rpx");//根据填报表名获取到打印模板的名字
 var pdfurl="/demo/reportJsp/pdfBatchPrint.jsp?report=%7B"+rpx+"%7D"; //这里使用自带的批量打印jsp。
window.open(pdfurl);
 }

5png

6、发布填报表查看效果
点击工具栏的 print 可以弹出打印预览界面,预览界面为相同报表的 test_print.rpx,当修改填报表数据之后,提交之后,打印的对应报表的数据也会变化。

1gif

注意:
第 5 点中的打印方法,使用的 pdfBatchPrint.jsp,此 JSP 参数格式为:report={无参数报表名}{报表 1( 参数 1=value1; 参数 2=value2;…)}{报表 2( 参数 1=value1; 参数 2=value2;…)}。
由于浏览器限制 {} 大括号、()小括号这个 2 个特殊符号需要转码,分别对应为 %7B、%7D、%28、%29。

如果报表中有参数,在代码中需增加参数定义并且在 pdfurl 中拼接参数,如:

 function print(){
 var rpx="<%=input%>".replace(".sht","_print.rpx");//根据填报表名获取到打印模板的名字
 var arg1 = document.getElementById("arg1");//获取参数表单中arg1的参数值;
 var pdfurl="/demo/reportJsp/pdfBatchPrint.jsp?report=%7B"+rpx+"%28arg1="+arg1+"%29%7D";
 window.open(pdfurl);
 }