背景说明
在应用中,经常遇到,批量打印的需求,批量打印,顾名思义,就是点击一次打印按钮,能打印多张报表。
下面,我们来介绍一下怎么样实现批量打印的
应用举例:
Jsp代码
<%
//report的参数格式为:report={无参数报表名}{报表1(参数1=value1;参数2=value2;…)}{报表2(参数1=value1;参数2=value2;…)}…prompt=yes
request.setCharacterEncoding( “GBK” );
String report = request.getParameter( “report” );
if( report == null || report.trim().length() == 0 ) throw new Exception( “report=null” );
String prompt = request.getParameter( “prompt” );
String appmap = request.getContextPath();
String serverPort = String.valueOf( request.getServerPort() );
String serverName = request.getServerName();
String appRoot = “http://” + serverName + “:” + serverPort + appmap;
%>
<object classid=”clsid:8AD9C840-044E-11D1-B3E9-00805F499D93″ codebase=”<%=appRoot%>/j2re-1_4_1-windows-i586-i.exe#Version=1,4,1,0″ width=”40″ height=”16″ id=”report1_directPrintApplet” style=”vertical-align:middle”>
<param name=”name” value=”report1_directPrintApplet”>
<param name=”code” value=”com.runqian.report4.view.applet.DirectPrintApplet.class”>
<param name=”archive” value=”<%=appmap%>/runqianReport4Applet.jar”>
<param name=”type” value=”application/x-java-applet;version=1.4″>
<param name=”appRoot” value=”<%=appRoot%>”>
<param name=”dataServlet” value=”/reportServlet?action=1″>
<param name=”srcType” value=”file”>
<param name=”fontFace” value=”宋体“>
<param name=”fontSize” value=”18pt”>
<param name=”fontColor” value=”#0000FF”>
<param name=”backColor” value=”#12632256″>
<param name=”icon” value= “<%=appmap%>/images/print.gif”>
<param name=”label” value=”打印“>
<param name=”needPrintPrompt” value=”<%=prompt%>”>
<param name=”scriptable” value=”true”>
</object>
<a href=”javascript:window.close()” class=”style3 style5″>取消</a>
<script language=javascript>
function runqian_getPrintReports() {
return “<%=report%>”;
}
</script>
将这个jsp文件放在应用中的相应目录下,发布浏览
在浏览器中,输入url:http://localhost:8080/demo/jsp/dayin.jsp?report={1.raq}{2.raq(arg1=”1″)}就可以了。参数report={1.raq}{2.raq(arg1=”1″)}就是我们需要打印的报表,多个报表是由”{}“分隔的;报表内的参数,是在报表名称后用”()”标识,参数之间用”;”分隔。
在页面中,你就会看见一个打印按钮,你点击,多张报表就都在打印机中打印出来了。
总结:有了批量打印,一点按钮,打印多张报表就可以实现了,是不是感觉特别方便呢。