3.1.2 スプールサーバのプリンタに出力する

スプールサーバに登録されているプリンタに帳票を出力できます。

なお,スプールサーバのプリンタに出力できるのは,スプールサーバがWindows環境の場合だけです。スプールサーバがUNIX/Linux環境の場合は,スプールサーバのプリンタへの出力はできません。

<この項の構成>
(1) 出力の流れ
(2) 出力先の設定
(3) 起動部品の設定
(4) 出力結果
(5) コーディング例
(6) 注意事項

(1) 出力の流れ

スプールサーバに登録されているプリンタに帳票を出力する流れを,次の図に示します。

図3-2 スプールサーバのプリンタに出力する流れ

[図データ]

  1. 出力要求
    帳票の出力要求が業務プログラムに送られます。
  2. 転送
    EUR Server - Adapterは,ユーザデータファイルを帳票サーバのEUR Server Serviceに転送します。
  3. 印刷データ生成
    転送されたユーザデータファイルとあらかじめ帳票サーバに配置しておいた印刷定義ファイルから,印刷データ(EPF形式ファイル)が生成されます。
  4. 印刷データ転送
    EUR Server Serviceは,生成された印刷データ(EPF形式ファイル)をスプールサーバに転送します。
  5. 出力
    スプールサーバに登録されているプリンタに帳票が出力されます。転送された印刷データは,帳票の出力後に削除されます。
■参考
帳票の印刷データ(EPF形式ファイル)をスプールサーバに蓄積してから,任意のタイミングで出力することもできます。帳票の印刷データをスプールサーバに蓄積する方法については,「5.2.2 印刷データを蓄積する手順」を参照してください。また,蓄積した印刷データを出力する方法については,「5.4 蓄積した印刷データを出力する」を参照してください。

(2) 出力先の設定

(3) 起動部品の設定

帳票出力で使用する起動部品のメソッド,関数,およびオプションの指定値を次に示します。

また,出力時に設定する起動部品のプロパティ,メソッド,パラメタ,およびオプションの指定値を次に示します。

  1. 印刷方法の設定
    帳票を印刷する方法を設定します。
    印刷方法の設定起動部品の設定項目設定する値
    印刷方法ActiveX起動部品:PrintModeプロパティ
    Java起動部品:setPrintModeメソッド
    COBOL起動部品:PRINTMODEパラメタ
    3(スプールサーバで印刷する)
    コマンド起動部品:/pmオプションsv(スプールサーバで印刷する)
    出力するファイル形式ActiveX起動部品:PrintKindプロパティ
    Java起動部品:setPrintKindメソッド
    COBOL起動部品:PRINTKINDパラメタ
    0(EPF形式ファイルを出力する)
    コマンド起動部品:/pkオプションepf(EPF形式ファイルを出力する)
  2. スプールサーバの設定
    スプールサーバの指定方法を設定します。スプールサーバの指定方法は,出力先名とIPアドレスの2種類から選択できます。
    スプールサーバの設定起動部品の設定項目設定する値
    サーバの指定方法ActiveX起動部品:ServerSelectModeプロパティ
    Java起動部品:setServerSelectModeメソッド
    COBOL起動部品:SERVERSELECTMODEパラメタ
    0(出力先名で指定する)
    1(IPアドレスで指定する)
    コマンド起動部品:/srmオプションdest(出力先名で指定する)
    sv(IPアドレスで指定する)
    出力先名ActiveX起動部品:DestinationNameプロパティ
    Java起動部品:setDestinationNameメソッド
    COBOL起動部品:DESTNAMEパラメタ
    コマンド起動部品:/destオプション
    出力先名(80バイト以内の文字列)
    IPアドレスActiveX起動部品:ServerAddressプロパティ
    Java起動部品:setServerAddressメソッド
    COBOL起動部品:SERVERADDRパラメタ
    コマンド起動部品:svrオプション
    255.255.255.255形式
  3. プリンタの設定
    スプールサーバのプリンタの指定方法を設定します。スプールサーバのプリンタの指定方法は,プリンタクラス名,プリンタ名,および帳票振り分け定義の3種類から選択できます。
    スプールサーバのプリンタの設定起動部品の設定項目設定する値
    プリンタの指定方法ActiveX起動部品:PrinterSelectModeプロパティ
    Java起動部品:setPrinterSelectModeメソッド
    COBOL起動部品:PRINTERSELECTMODEパラメタ
    0(プリンタクラス名で指定する)
    1(プリンタ名で指定する)
    2(帳票振り分け定義で指定する)
    コマンド起動部品:/smオプションclass(プリンタクラス名で指定する)
    printer(プリンタ名で指定する)
    group(帳票振り分け定義で指定する)
    プリンタクラス名ActiveX起動部品:PrinterClassNameプロパティ
    Java起動部品:setPrinterClassNameメソッド
    COBOL起動部品:PRINTERCLASSNAMEパラメタ
    コマンド起動部品:/prcオプション
    プリンタクラス名(80バイト以内の文字列)
    プリンタ名OS上のプリンタ名ActiveX起動部品:ServerPrinterNameプロパティ
    Java起動部品:setServerPrinterNameメソッド
    COBOL起動部品:SERVERPRINTERNAMEパラメタ
    コマンド起動部品:/lspオプション
    プリンタ名(80バイト以内の文字列)
    OS上のプリンタのトレイ名ActiveX起動部品:ServerTrayNameプロパティ
    Java起動部品:setServerTrayNameメソッド
    COBOL起動部品:SERVERTRAYNAMEパラメタ
    コマンド起動部品:/lstオプション
    トレイ名(80バイト以内の文字列)
    帳票振り分け定義ActiveX起動部品:GroupNameプロパティ
    Java起動部品:setGroupNameメソッド
    COBOL起動部品:GROUPNAMEパラメタ
    コマンド起動部品:/groupオプション
    帳票振り分け定義(80バイト以内の文字列)
  4. 帳票ファイルの設定
    印刷する帳票ファイル名を設定します。
    帳票ファイルの設定起動部品の設定項目設定する値
    帳票ファイルの名前ActiveX起動部品:ReportFileNameプロパティ
    Java起動部品:setReportFileNameメソッド
    COBOL起動部品:REPORTNAMEパラメタ
    コマンド起動部品:/rfオプション
    帳票ファイル名(255バイト以内の文字列)
  5. マッピングデータファイルの設定
    マッピングデータファイル名を設定します。
    ユーザデータファイルの設定起動部品の設定項目設定する値
    マッピングデータファイルの名前ActiveX起動部品:DataFileNameプロパティ
    Java起動部品:setDataFileNameメソッド
    COBOL起動部品:MAPPINGDATAパラメタ
    コマンド起動部品:/mapオプション
    マッピングデータファイル名(255バイト以内の文字列)
  6. ユーザデータファイル,印刷定義ファイル,および印刷付加情報の設定
    必要に応じて,ユーザデータファイル(ユーザ定義データファイルなど),印刷定義ファイル(複数様式情報定義ファイル,文書情報設定ファイル,置き換え表管理情報ファイルなど)および印刷付加情報(印刷開始ページ,印刷部数,ページ番号など)を設定します。
■参考
帳票ファイル名やマッピングデータファイル名を起動部品で直接指定するのではなく,帳票セットとして帳票セット指定ファイルにまとめて指定することもできます。この場合,出力時には次に示すプロパティ,メソッド,パラメタ,またはオプションで帳票セット指定ファイル名を指定してください。
  • ActiveX起動部品:MultiReportSetFileNameプロパティ
  • Java起動部品:setMultiReportSetFileNameメソッド
  • COBOL起動部品:REPORTSETFILEパラメタ
  • コマンド起動部品:/mrsオプション

(4) 出力結果

(5) コーディング例

次に示すパラメタを指定して,スプールサーバのプリンタに出力します。

入力ファイル(印刷定義ファイル):EUR Server Service稼働マシンに配置
帳票ファイル名:sample1.fms
入力ファイル(ユーザデータファイル):EUR Server - Adapter稼働マシンに配置
マッピングデータファイルのパス:c:¥Temp
マッピングデータファイル名:data1.csv

コーディング例を次に示します。

(a) ActiveX起動部品の場合

<HTML>
<HEAD>
<TITLE>Sample Script of ASP page for EUR Print Manager</TITLE>
</HEAD>
<BODY>
<%
 Server.ScriptTimeOut=100     …スクリプトのタイムアウト時間を
                                100秒に設定
 On Error Resume Next         …エラーハンドリングを行う
 dim target                   …変数宣言
 Set EURPM=Server.CreateObject("EURPM.Exec")
                       …プログラムID「EURPM.Exec」を指定して,
                         ActiveX起動部品のインスタンス作成
 EURPM.ClientAddress=target              …クライアントIPアドレスの指定
 EURPM.ReportFileName="sample1.fms"      …帳票ファイルの指定
 EURPM.DataFilePath="c:¥Temp"            …マッピングデータファイルの
                                           パスの指定
 EURPM.DataFileName="data1.csv"          …マッピングデータの指定
 If Err.Number <> 0 Then
   Response.Write("印刷実行前に
                   エラーが発生しています"& Err.Number &"<BR>")
 Else
   EURPM.PrintPMReport()                 …印刷指示
   If Err.Number = 0 Then                …PrintPMReportメソッドは
                                           正常終了かどうかの判定
     「正常終了時の処理」
   Else
     errid= Err.Number           …エラーコードをerridに取り出す
     If errid=-441 Then          …KEEY441-Wの場合のエラー処理
       Elseif errid=-301 Then    …KEEY301-Eの場合のエラー処理
       Elseif errid=-302 Then    …KEEY302-Eの場合のエラー処理
       Elseif errid=
             :                   …そのほかのエラー処理を繰り返す
     End If
   End If
 End If
%>
</BODY>
</HTML>

(b) Java起動部品の場合

import JP.co.Hitachi.soft.EURPM.*;

 :
   try {
     EURPMAdapterForJava obj=new EURPMAdapterForJava();
     String target = request.getRemoteAddr();
     obj.setReportFileName("sample1.fms");
                        //帳票ファイル名の指定
     obj.setDataFilePath("c:¥¥Temp");
                        //マッピングデータファイルのパスの指定
     obj.setDataFileName("data1.csv");
                        //マッピングデータファイル名の指定
     obj.printReport();    //帳票の出力指示
   }
   catch (JP.co.Hitachi.soft.EURPM.EURPMException ce) {
                                   //エラー処理
     int errid;
     errid=ce.getErrorCode();
                    //エラーコードをerridに取り出す
     if (errid==441) {
                    //KEEY441-Wの場合のエラー処理
     } else if (errid==301) {
                    //KEEY301-Eの場合のエラー処理
     } else if (errid==302) {
                    //KEEY302-Eの場合のエラー処理
     } else if (errid==xxx) {
                    //以下,そのほかのエラー処理を繰り返す
             :
     }
   }

(6) 注意事項

ネットワークプリンタに印刷する場合は,EUR Server - Spool Serviceのログオンアカウントを,ネットワークプリンタに印刷できる適切なアクセス権を持つアカウントに変更してください。