需求描述:
在实际的项目中,一张报表可能既要在网页中展示,同时又需要打印。在网页中展示时,为了页面的美观,报表不分页;而在打印时,由于纸张的限制,报表必须按照指定的格式分页。
问题分析:
在润乾报表中,当用户点击页面上的”打印”图标时,系统默认按照当前在页面中展示的报表格式进行打印。
在系统内部,当用户点击打印后,系统根据报表文件生成报表打印对象。该对象经过处理,发送给打印设备。默认情况下使用的报表文件和页面展示所使用的报表文件相同。
问题的关键正在于此,如果改变生成报表打印对象的报表文件,不使用默认的报表文件,而使用用户指定的报表文件。那么打印和页面展示就会被分离开来。
这样,我们需要为页面展示和打印各设计一张报表,使得页面和打印分离开来。
解决方法示例:
第一步,设计两个报表文件,一个命名为test.raq,另一个命名为test_pager.raq。
第二步,将这连个报表放在报表的”应用资源路径”下。”应用资源路径”下存放报表文件。点击工具栏的”配置”,在弹出的下拉框中选择”选项”,弹出的对话框中选择”文件”选项卡。应用资源路径如图:
第三步,在需要展示的jsp页面中配置。部分代码如下:
…………………………
String report_pager = new String(“”);// add by hufei at 2010-08-04
……………………………………………………
report_pager = report.substring(0,iTmp)+”_pager.raq”;
//add by hufei at 2010-08-04:如果页面展示的报表命名为a.raq,那么对应的分页打印的报表名称就应该是a_pager.raq
%>
” funcBarLocation=”" needPageMark=”yes” needPrint=”yes” printedRaq=”” generateParamForm=”no” params=”” width=”-1″ exceptionPage=”/reportJsp/myError2.jsp” /> |
第四步,在页面中使用该页面展示报表,最终效果如下图。
展示页面
用于打印的报表
总结:
在润乾报表中,可以利用”printedRaq“报表标签使得报表的展示与打印完全分离,充分体现了润乾报表的灵活性。
注明:
printedRaq:被打印的报表文件名,路径相对于reportFileHome。