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