EXCEPT (演算時出力)
| 自由形式構文 | EXCEPT {例外名 } |
| コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
|---|---|---|---|---|---|---|
| EXCEPT | 例外名 | |||||
EXCEPT 命令では、明細演算時または合計演算時に 1 つまたは複数のレコー ドを書き出すことができます。 EXCEPT 命令の例については、図 1 を参照してください。
EXCEPT 命令を指定する場合には、次のことに留意してください。
- 演算時に書き出される例外レコードは、出力仕様 の 17 桁目の E によって示されます。EXCEPT 命令の例外名 オペランドに指定されたものと同じ名前の EXCEPT 名は、例外レコードの出力仕様の 30 から 39 桁目に指定することができます。
- EXCEPT 名を入れられるのは例外レコードだけで、見出し、明細、または 合計レコードには入れることができません。
- 例外名 オペランドに指定した名前の EXCEPT 命令が処理されると、条件付け標識が満たされた場合に、同じ EXCEPT 名の例外レコードだけが検査されて書き出されます。
- 例外名 が指定されていない場合には、条件付け標識が満たされた場合に、出力仕様の 30 から 39 桁目に名前が指定されていない例外レコードだけが検査されて書き出されます。
- 例外レコードが出力仕様のオーバーフロー標識で条件付けられている場合にレコードが書き出されるのは、RPG IV サイクルのオーバーフロー部分中またはフェッチ・オーバーフロー中だけです。EXCEPT 命令の処理時にはレコードは書き出されません。
- フィールドが入っていない形式に例外出力が指定された場合には、次のよ
うになります。
- 出力ファイルが指定されている場合には、レコードはデフォルトの値で書き出 されます。
- レコードがロックされている場合には、システムはこの命令をレコードの アンロック要求として処理します。 これはアンロック要求の代替形式です。 UNLOCK 命令による方法が好ましい方式です。
詳細については、ファイル命令を参照してください。
図 1. 演算項目 2 に指定がある場合/指定がない場合の EXCEPT 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
*
* When the EXCEPT operation with HDG specified in factor 2 is
* processed, all exception records with the EXCEPT name HDG are
* written. In this example, UDATE and PAGE would be printed
* and then the printer would space 2 lines.
* The second HDG record would print a line of dots and then the
* printer would space 3 lines.
*
C EXCEPT HDG
*
* When the EXCEPT operation with no entry in factor 2 is
* processed, all exception records that do not have an EXCEPT
* name specified in positions 30 through 39 are written if the
* conditioning indicators are satisfied. Any exception records
* without conditioning indicators and without an EXCEPT name
* are always written by an EXCEPT operation with no entry in
* factor 2. In this example, if indicator 10 is on, TITLE and
* AUTH would be printed and then the printer would space 1 line.
*
C EXCEPT
O*
OFilename++DF..N01N02N03Excnam++++B++A++Sb+Sa+.............................
O..............N01N02N03Field+++++++++YB.End++PConstant/editword/DTformat++
O
O E 10 1
O TITLE
O AUTH
O E HDG 2
O UDATE
O PAGE
O E HDG 3
O '...............'
O '...............'
O E DETAIL 1
O AUTH
O VERSNO