レポートの一括印刷要件の実現方法

11790 ワード

Webレポートアプリケーションでは、一括印刷のニーズによく遭遇します.すなわち、1回の印刷ボタンをクリックして、複数のレポートの印刷出力を実現します.ドライレポートは2つの異なる印刷方式(applet印刷、PDF印刷)を提供し、ロット印刷の需要を実現し、横縦レポート印刷もサポートする.それぞれの方法の具体的な実現方法を見てみましょう.

一、applet一括印刷


1、環境構成の要求
Applet印刷では、クライアントが少なくともjre環境を正しく構成する必要があります.
現在applet印刷はIEカーネルブラウザのみをサポートしています
2、実現方法
jsp接合パラメータにアクセスすることによって実現することができ、例URLは以下の通りである.
パラメータなし:
http://localhost:6868/demo/reportJsp/directprint.jsp?report={t1.rpx}{t2.rpx}
パラメータ付き:
http://localhost:6868/demo/reportJsp/directprint.jsp?report={t1.rpx}{t2.rpx(arg1=1;arg2=2)}
パラメータ接合フォーマットの説明:
Report={パラメータレスレポート名1}{パラメータレスレポート名2}{レポート1(パラメータ1=value 1;パラメータ2=value 2;...)}{レポート2(パラメータ1=value 1;パラメータ2=value 2;...)}...&prompt=yes&needSelectPrinter=yes
3、サンプルソースコード
directprint.jspページの完全なコード:
 <%@ page contentType="text/html;charset=UTF-8" %> 
<%@ page import="com.raqsoft.report.view.*"%>
<html>
<body>
<% // JSP :report={ 1}{ 2}{ 1( 1=value1; 2=value2;...)}{ 2( 1=value1; 2=value2;...)}...&prompt=yes&needSelectPrinter=yes
request.setCharacterEncoding( "UTF-8" );
String report = request.getParameter( "report" ); //" report={ }{ 1( 1=value1; 2=value2;...)}{ 2( 1=value1; 2=value2;...)}..."
if( report == null || report.trim().length() == 0 ) throw new Exception( ServerMsg.getMessage(request,"jsp.dpArgError") );
String prompt = request.getParameter( "prompt" );
String needSelectPrinter = request.getParameter( "needSelectPrinter" );
String pages = request.getParameter( "pages" );
String copies = request.getParameter( "copies" );
if( pages == null ) pages = "";
if( copies == null ) copies = "1";
String appmap = request.getContextPath();
String serverPort = String.valueOf( request.getServerPort() );
String serverName = request.getServerName();
String appRoot = "http://" + serverName + ":" + serverPort + appmap;
String printLabel = ServerMsg.getMessage(request,"jsp.dpPrint"); %>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="/jre-6u24-windows-i586.exe#Version=1,6,0,0"
width="80" height="32" id="report1_directPrintApplet" style="vertical-align:middle">
<param name="name" value="report1_directPrintApplet">
<param name="code" value="com.raqsoft.report.view.applet.DirectPrintWithoutShow.class">
<param name="archive" value="/raqsoftReportApplet.jar">
<param name="type" value="application/x-java-applet;version=1.6">
<param name="appRoot" value="">
<param name="dataServlet" value="/reportServlet;jsessionid=?action=1">
<param name="fileName" value="">
<param name="srcType" value="file">
<param name="fontFace" value="dialog">
<param name="fontSize" value="10pt">
<param name="fontColor" value="#808040">
<param name="backColor" value="#126356">
<param name="label" value="">
<param name="needPrintPrompt" value="">
<param name="needSelectPrinter" value="">
<param name="needSetPageSize" value="no">
<param name="scriptable" value="true">
<param name="paramCharset" value="UTF-8">
<param name="blackWhitePrint" value="no">
<param name="mirrorPrint" value="no">
<param name="icon" value="/raqsoft/images/print.gif">
<param name="copies" value="">
<param name=