自定义按钮打印导出隐藏报表
在报表导出的时候,随着需求的变化,有些客户希望报表不在页面上展现。但是需要有一些按钮能够实现导出和打印的功能。
比如在一个JSP页面上有三张隐藏报表,然后有三组按钮能够分别对报表进行打印和导出。
那么在这里我举例说明一下,如何对三张不同的隐藏的报表分别进行打印和导出EXCEL(实现导出word,pdf,text跟导出EXCEL同理)。
首先,新建三张报表:hidden1.raq,hidden2.raq,hidden3.raq。
新建一张hidden.jsp,内容如下:
<%@ page contentType=”text/html;charset=GBK” %>
<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>
<%@ page import=”java.io.*”%>
<%@ page import=”java.util.*”%>
<%@ page import=”com.runqian.report4.usermodel.Context”%>
<%@ page contentType=”text/html;charset=GBK” %>
<% String appmap = request.getContextPath();
String printImage1 = “<img src=’” + appmap + “/images/print.gif’ border=no >”;
String printImage2 = “<img src=’” + appmap + “/images/print.gif’ border=no >”;
String printImage3 = “<img src=’” + appmap + “/images/print.gif’ border=no >”;
String excelImage1 = “<img src=’” + appmap + “/images/excel.gif’ border=no >”;
String excelImage2 = “<img src=’” + appmap + “/images/excel.gif’ border=no >”;
String excelImage3 = “<img src=’” + appmap + “/images/excel.gif’ border=no >”;
%>
<table id=titleTable width=100% cellspacing=0 cellpadding=0 border=0 ><tr>
<td height=”22″ width=100% valign=”middle” style=”font-size:13px” background=”../images/ta51top.jpg”>
<table width=”100%”>
<tr >
<td width=53% align=”left” style=”font-size:13px” > </td>
<td width=”47%” align=”center” valign=”middle” style=”font-size:12px” >共<span id=”t_page_span”></span>页/第<span id=”c_page_span”></span>页
<a href=”#” onClick=”report1_print();return false;”><%=printImage1%></a>
<a href=”#” onClick=”report2_print();return false;”><%=printImage2%></a>
<a href=”#” onClick=”report3_print();return false;”><%=printImage3%></a>
<a href=”#” onClick=”report1_saveAsExcel();return false;”><%=excelImage1%></a>
<a href=”#” onClick=”report2_saveAsExcel();return false;”><%=excelImage2%></a>
<a href=”#” onClick=”report3_saveAsExcel();return false;”><%=excelImage3%></a>
</td>
</tr>
</table>
</td>
</table>
//以下代码是在hidden.jsp上发布了三张raq文件
<div>
<table align=”center” width=”100%” height=”100%” >
<tr style=”display:none”><td>
<report:html name=”report1” reportFileName=”hidden1.raq”
/>
<report:html name=”report2” reportFileName=”hidden2.raq”
/>
<report:html name=”report3” reportFileName=”hidden3.raq”
/>
</td></tr>
</table>
</div>
请注意以上代码中红色字体部分,html name是和打印导出所调用的onClick的方法名称是一致的。<tr style=”display:none”>将报表隐藏起来。
访问该JSP页面效果如下图:
只有6个按钮,报表已经被隐藏了。
其中第一个打印按钮对应hidden1.raq, 第二个打印按钮对应hidden2.raq,
第一个导出EXCEL按钮对应hidden1.raq,第二个导出EXCEL按钮对应hidden2.raq。以此类推。
上例样式比较单一,如果想让报表样式美观一点的话,更改hidden.jsp中的HTML布局即可。