OPM 互換プログラム・オブジェクトの作成

この例では、図 32 に示す CRTBNDRPG コマンドを使用して 給与計算プログラムのソースから OPM 互換プログラム・オブジェクトを作成します。

  1. オブジェクトを作成するには、以下のとおり入力してください。
    CRTBNDRPG PGM(MYLIB/PAYROLL)
              SRCFILE(MYLIB/QRPGLESRC)
              TEXT('ILE RPG program')  DFTACTGRP(*YES)

    CRTBNDRPG コマンドはプログラム PAYROLL を MYLIB の中に作成します。このプログラムはデフォルトの活動化グループで実 行されることになります。 デフォルトでは、コンパイラー・リストが作成されます。

    注:
    DFTACTGRP(*YES) のセットは OPM の互換性を提供するものです。またこのセットは、ACTGRP および BNDDIR パラメーターの値を入力できないよ うにします。 さらに、ソースにバインド・プロシージャー呼び出しが入っている場合には、 エラーが出され、コンパイルは終了します。
  2. 作成されたリスト出力を見るには、以下の CL コマンドのいずれか 1 つを 入力してください。
図 32. 給与計算サンプル・プログラム
 *------------------------------------------------------------------------*
 * 説明: このプログラムは、社員の週給の印刷出力を                         *
 *       作成します。                                                     *
 *------------------------------------------------------------------------*
H DATEDIT(*DMY/)
 *------------------------------------------------------------------------*
 * ファイル定義                                                           *
 *------------------------------------------------------------------------*
FTRANSACT  IP   E           K DISK
FEMPLOYEE  IF   E           K DISK
FQSYSPRT   O    F   80        PRINTER
 *------------------------------------------------------------------------*
 * 変数の宣言                                                             *
 *------------------------------------------------------------------------*
D Pay             S              8P 2
 *------------------------------------------------------------------------*
 * 定数の宣言                                                             *
 *------------------------------------------------------------------------*
D Heading1        C                   'NUMBER  NAME              RATE    H-
D                                     OURS  BONUS    PAY       '
D Heading2        C                   '______  ________________  ______  _-
D                                     ____  _______  __________'
 *------------------------------------------------------------------------*
 * トランザクション・ファイル (TRANSACT) 内の各レコードごとに、           *
 * 社員が見つかればその給与を計算して明細を印刷します。                   *
 *------------------------------------------------------------------------*
C     TRN_NUMBER    CHAIN     EMP_REC                            99
C                   IF        NOT *IN99
C                   EVAL (H)  Pay = EMP_RATE * TRN_HOURS + TRN_BONUS
C                   ENDIF
 *------------------------------------------------------------------------*
 * 報告書レイアウト                                                       *
 *  -- 1P がオンであれば見出し行を印刷する                                *
 *  -- レコードが見つかった場合 (標識 99 がオフ) は                       *
 *     給与明細を印刷し、それ以外の場合は例外レコードを印刷する           *
 *  -- LR がオンのときは 'リストの終わり' と印刷する                      *
 *------------------------------------------------------------------------*
OQSYSPRT   H    1P                     2  3
O                                           35 '給与計算表'
O                       *DATE         Y     60
O          H    1P                     2
O                                           60 Heading1
O          H    1P                     2
O                                           60 Heading2
O          D   N1PN99                  2
O                       TRN_NUMBER           5
O                       EMP_NAME            24
O                       EMP_RATE      L     33
O                       TRN_HOURS     L     40
O                       TRN_BONUS     L     49
O                       Pay                 60 '$     0.  '
O          D   N1P 99                  2
O                       TRN_NUMBER           5
O                                           35 '** 社員ファイル上にない **'
O          T    LR
O                                           33 'END OF LISTING'