You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

7.48.2 ENDPRINT の使用例

例1:受注番号を入力するようユーザーに要求してから明細行の詳細を印刷する以下の2つのRDMLプログラムについて考えます。
    GROUP_BY  NAME(#ORDERDET) FIELDS(#ORDNUM #CUSTNUM #DATEDUE #ORDLIN #PRODUCT #QUANTITY #PRICE)     REQUEST   FIELDS(#ORDNUM) L1:  FETCH     FIELDS(#ORDERDET) FROM_FILE(ORDHDR) WITH_KEY(#ORDNUM) NOT_FOUND(L1) ISSUE_MSG(*YES)     SELECT    FIELDS(#ORDERDET) FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM)     UPRINT    FIELDS(#ORDERDET)     ENDSELECT     GOTO      L1  
もう1つのRDMLプログラムは以下のとおりです。
     GROUP_BY  NAME(#ORDERDET) FIELDS(#ORDNUM #CUSTNUM #DATEDUE #ORDLIN #PRODUCT #QUANTITY #PRICE)        REQUEST   FIELDS(#ORDNUM) L1:   FETCH     FIELDS(#ORDERDET) FROM_FILE(ORDHDR) WITH_KEY(#ORDNUM) NOT_FOUND(L1) ISSUE_MSG(*YES)      SELECT    FIELDS(#ORDERDET) FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM)      UPRINT    FIELDS(#ORDERDET)      ENDSELECT        ENDPRINT      GOTO      L1  
両方のプログラムがほぼ同じであることに注意してください。どちらも受注番号の入力を要求し、注文頭書きの詳細を取得し、関連付けられた明細行の詳細をすべて印刷します。
違いはENDPRINTコマンドにあります。
最初のプログラムは、REQUESTコマンドで、ユーザーが[終了]または[メニュー]ファンクション・キーを使用するまで待機してから、ファンクションの終了時にENDPRINTコマンドを自動的に実行します。すなわち、要求されたすべての注文が1つの印刷/スプール・ファイルに出力されます。
2番目のプログラムでは、各注文が印刷されるごとにENDPRINTが実行されるため、印刷/スプール・ファイルが閉じます。その後、次のUPRINTコマンドが実行されると、新しい印刷/スプール・ファイルが自動的に開きます。すなわち、各注文は、別々の印刷/スプール・ファイルに保管されます。

  • No labels