在客户的应用中通常存在一种情况,报表展现由他们自己原有程序实现,使用润乾只是用在报表的打印和导出上。或者说在某页面上选择查询条件及报表名称,选择完成后直接点击打印或导出按钮实现对该表的打印或导出操作,润乾能满足该需求,但要对页面做下相关修改,实现方法如下:
润乾内置了几个打印或导出的js函数,如report1_print(),report1_saveAsExcel()等函数,但是如果使用这几个函数,必须要在页面上展现报表后才行,客户要求不展示报表,这里可以自己定义js函数实现相关功能。
1、 在页面上增加打印导出按钮,如:
<a href=”#” onClick=”excel();return false;”>导出excel</a>
<a href=”#” onClick=”word();return false;”>导出word</a>
<a href=”#” onClick=”print();return false;”>打印</a>
这样页面上点击相关操作实际上调用的是该js方法。
2、 参数传递
客户系统中通常有一些参数对数据过滤,这样打印或导出时也要把该参数传到报表中计算,润乾在打印导出时取参数值时主要是通过参数缓存ID得知,即reportParamsId
所以要将客户的参数转换成reportParamsId,代码如下:
String raqName=”ppp.raq”;//报表名称,到时候改成干部任免表
   String reportParamsId = null;//定义reportParamsId
   Hashtable hash = new Hashtable();
         hash.put( “arg1″, “1111111″ );//将参数和值放到hashtable中,arg1为报表中定义的参数,保监会中改成人员id那个参数名,111111为参数值,将userid放在这
    if( hash.size() > 0 ) {
       //生成一个ID,并把这个ID与刚才准备的hash形成键值关系
       reportParamsId = com.runqian.report4.view.ParamsPool.createParamsId();//生成参数缓存id
       com.runqian.report4.view.ParamsPool.put( reportParamsId, hash );//将id放到缓存中
       }
   System.out.println(“reportParamsId=”+reportParamsId);
这样就生成了缓存ID,能将相关参数传递给报表服务器参与计算
3、 js函数编写
前边提到了,在页面上点击按钮时实际上是调用了js函数,所以要在页面中实现该js函数。
<script language=javascript>
  function print() {
  document.report1_printIFrame.location = “http://127.0.0.1:6002/demo/reportServlet?action=2&name=report1&reportFileName=<%=raqName%>&srcType=file&savePrintSetup=yes&appletJarName=runqianReport4Applet.jar&serverPagedPrint=no&mirror=no&reportParamsId=<%=reportParamsId%>”;
  }
  function excel() {
  document.report1_saveAs_frame.location = “http://127.0.0.1:6002/demo/reportServlet?action=3&file=<%=raqName%>&columns=0&srcType=file&width=-1&height=-1&reportParamsId=<%=reportParamsId%>”
   }
 function word(){
  document.report1_saveAs_frame.location = “http://127.0.0.1:6002/demo/reportServlet?action=7&file=<%=raqName%>&columns=0&srcType=file&reportParamsId=<%=reportParamsId%>”;
  }
 </script>
最后,由于打印或导出时用到了report1_saveAs_frame和report1_printIFrame,为避免js错误,在页面中增加:
<iframe name=”report1_saveAs_frame” id=”report1_saveAs_frame” src=”a.html” style=”display:none”></iframe>
<iframe name=”report1_printIFrame” id=”report1_printIFrame” src=”a.html” style=”position:absolute;left:-100px;top:-100px” width=50 height=50></iframe>
这样就能实现报表不展现,点相关按钮后执行打印或导出操作。

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

不展现报表实现对报表的打印导出相关推荐

  1. html如何在本页路径上拼接参数,Html图片路径拼接参数实现打印导出

    需求描述 报表中引用html图片的时候,路径写成相对路径如:=" "或者=" "图片能正常展示,但是不能打印和 "就可以展示并且成功打印导出了. 但是 ...

  2. java实现续打功能_银行存折套打续打功能--报表如何记录上次打印的位置

    在实际项目中,经常会遇到打印的需求,而对于打印的特殊需求也越来越多,例如需要记录上次打印位置,当前打印时根据上次的打印位置继续打印的功能,像银行的存折的数据每次打印都不是用新的纸张,而是根据上次打印的 ...

  3. 润乾报表中常见的打印类问题的总结

     在解决润乾报表的打印类问题时,首先要知道打印与哪些文件相关,下面就列出了与打印相关的文件及位置: 1.runqianReport4Applet.jar 位置:应用根目录下 2.report4.j ...

  4. java 润乾报表打印4.5_润乾报表中常见的打印类问题的总结| 润乾软件 | 学步园...

    在解决润乾报表的打印类问题时,首先要知道打印与哪些文件相关,下面就列出了与打印相关的文件及位置: 1.runqianReport4Applet.jar 位置:应用根目录下 2.report4.jar ...

  5. java 路径拼接_Html图片路径拼接参数实现打印导出

    报表中引用html图片的时候,路径写成相对路径如:=" "或者=" "图片能正常展示,但是不能打印和导出,写成绝对路径,比如:=" "就可以 ...

  6. 水晶报表自定义纸张大小打印 (转)

    水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size) 水晶报表查看器CrystalReportViewer自带打印功能,调用当前系统默 ...

  7. 前端项目中常用的工具包(拖拽排序表格、打印导出表格、文本复制等)【持续更新~~~】

    表格类: cdn库 cdn vxe-table[开源的多功能表格] 简介 一个基于 vue 的 PC 端表格组件,支持增删改查.虚拟滚动.懒加载.快捷菜单.数据校验.树形结构.打印导出.表单渲染.数据 ...

  8. highcharts打印导出按钮位置和自定义打印导出按钮图标

    最近用highcharts做图表的时候想要调整打印导出功能按钮的位置,网上查了下,发现没有效果,然后去看文档,发现有差异,应该是版本更新后配置有所变化.最新配置如下,亲测有效. var chart = ...

  9. 水晶报表工具栏出现红叉叉无法打印导出等问题的解决方法

    常见场景: 使用WebForm方式开发水晶报表应用,在本机调试一切正常.但是发布到服务器上以后,报表可以正确显示. 但是工具栏上的图标却成了红叉叉,无法执行打印.导出操作,页面提示有脚本错误. 解决方 ...

最新文章

  1. Yii2使用Cookie的注意事项
  2. fsLayui缓存使用
  3. mysql网络订餐系统截屏_在线订餐系统mysql字段
  4. ASP.NET Core 和 Blazor 更新
  5. 01_python2.x和python3.x中range()的区别
  6. 【王道计组笔记】定点数编码方式(原码,补码,反码)
  7. mybait-plus实现动态自定义查询条件
  8. 机器学习技法06:支持向量回归(Support Vector Regression)
  9. 《3D数学基础》1.7 向量的向量积
  10. LabVIEW控制Arduino驱动1602液晶显示屏(基础篇—10)
  11. 基于FPGA的电子计算器设计(下)
  12. vue组件通讯:父传子、子传父、事件发射详解
  13. 5w对讲机需要执照吗
  14. arx 块操作 头文件
  15. php导出数据库为excel文件,phpexcel导出数据库成excel文件
  16. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(8)
  17. ecshop常用修改
  18. Vue使用elementUI实现一个后台管理
  19. 三菱FX PLC 数据采集 【MD8口】
  20. 【图像隐藏】基于DCT和FFT数字水印嵌入+攻击+提取含Matlab源码

热门文章

  1. ThreadLocal原理与使用
  2. 线程:类ThreadLocal的使用
  3. 前端一HTML:十五: 层叠,权重,优先级的关系
  4. 大数据之Linux早课9.21
  5. WKWebView get/set cookie小结
  6. Jmeter模拟不同带宽进行测试
  7. Socket通信(一)
  8. 怎么将一个数组转化成字符串
  9. Linux 下安装和配置TSM 7.1
  10. 《jQuery权威指南》学习笔记——第二章