Page History
[ |../../index.htm#lansa/endprint_e.htm]
現在地:
...
7.48.2 ENDPRINT の使用例
...
例1:受注番号を入力するようユーザーに要求してから明細行の詳細を印刷する以下の2つのRDMLプログラムについて考えます。
| Code Block |
|---|
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プログラムは以下のとおりです。
| Code Block |
|---|
...
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コマンドが実行されると、新しい印刷/スプール・ファイルが自動的に開きます。すなわち、各注文は、別々の印刷/スプール・ファイルに保管されます。 両方のプログラムがほぼ同じであることに注意してください。どちらも受注番号の入力を要求し、注文頭書きの詳細を取得し、関連付けられた明細行の詳細をすべて印刷します。 違いはENDPRINTコマンドにあります。 最初のプログラムは、REQUESTコマンドで、ユーザーが\[終了\]または\[メニュー\]ファンクション・キーを使用するまで待機してから、ファンクションの終了時にENDPRINTコマンドを自動的に実行します。すなわち、要求されたすべての注文が1つの印刷/スプール・ファイルに出力されます。 2番目のプログラムでは、各注文が印刷されるごとにENDPRINTが実行されるため、印刷/スプール・ファイルが閉じます。その後、次のUPRINTコマンドが実行されると、新しい印刷/スプール・ファイルが自動的に開きます。すなわち、各注文は、別々の印刷/スプール・ファイルに保管されます。 [ !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! |../../index.htm#lansa/endprint_e.htm]