レガシー・プラットフォーム

印刷サービスの実装

このトピックでは、 Applications Managerを使用してセットアップできる印刷サービスのサンプル実装について説明します。

以下の図と手順は、印刷サービスの実装方法を説明しています:
印刷サービス
  1. ユーザーがドキュメント (領収書など) の印刷を選択したときにユーザー・インターフェースからの入力を受け入れるサービス定義を作成します。
  2. 入力を XSL 変換プログラムに渡して、入力を API への入力として提供できるように XML 形式に変換します。 XSL 変換プログラムのサンプル・コードは以下のとおりです。
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="Order">
    	 <Page PageNumber="1"  PageSize="4" PaginationStrategy="GENERIC" Refresh="Y" >
               <API  Name="getOrderList" >
    		<Input>
    		   <Order>
    		   <xsl:attribute name="CallingOrganizationCode">
    							<xsl:value-of select="@OrganizationCode" />
    						</xsl:attribute>
                        </Order>
    		 </Input>  
    		   <Template>
    		     <OrderList>
    			   <Order OrderNo='' >
    			     <OverallTotals GrandTotal=''/>
    				</Order> 
    			 </OrderList>
    		   </Template>
    		 </API> 
             </Page>		 
     </xsl:template>
    </xsl:stylesheet> 
    このサンプル・コードでは、XSL 変換プログラムの出力は、 getOrderList API を内部的に呼び出す getPage API に渡されます。
  3. API の出力を XSL 変換プログラムに渡して、出力を HTML 形式に変換します。 変換プログラムのサンプル・コードは以下のとおりです。
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="html" encoding="UTF-8" indent="yes"></xsl:output>
    	<xsl:template match="/">
    	 <html>
    	  <Strong>Order List For Matrix</Strong>
    	    <body>
    	    <style>
    		table, th, td {
    		    border: 1px solid black;
    		}
    		th, td {
    		    padding: 5px;
    		    text-align: left;
    		}
    		</style>
    		</body>
    
    	    <xsl:apply-templates select="Page/Output/OrderList" />
    	     <xsl:apply-templates select="Page/Output/OrderList/Order" />
    	     </html>
    	    </xsl:template>
    
    	     <xsl:template match="Page/Output/OrderList"> 
    		    <table>
    			<thead>
    				<tr>
    					<th>OrderNo</th>
    					<th>Order Price</th>
    				</tr>
    			</thead>
    			<xsl:for-each select="Order">
                    <tr>
    				    <td class="header-font">
    					<xsl:value-of select="@OrderNo" />
    				    </td>
    					<td>
    						<xsl:value-of select="OverallTotals/@GrandTotal" />
    					</td>
    				</tr>
    				</xsl:for-each>
    				</table>
    		    </xsl:template>
    </xsl:stylesheet>
  4. HTML 出力を XSL 変換プログラムに渡して、 iscPrint サービスで受け入れられる形式に変換し、ブラウザーに印刷プレビュー・ダイアログを表示します。

サンプル実装

iscPrint サービスの理解を深めるために、 <wscdev.war>/ngstore/store/views/samples/ フォルダー内のサンプル・ファイルを参照できます。