ソース・デバッグのためのモジュールの作成

この例では、ソース・デバッガーを使ってデバッグすることのできる ILE RPG モジュール・オブジェクトを作成します。モジュール TRANSRPT には、報告書処理を実行するメイン・プロシージャーが 含まれています。 これは必要なタスクを行うために TRANSSVC のプロシージャーを 呼び出します。 このモジュールのソースが図 38 に示されています。

モジュール・オブジェクトを作成するには、以下のとおり入力してください。

CRTRPGMOD MODULE(MYLIB/TRANSRPT)  SRCFILE(MYLIB/QRPGLESRC)
          DBGVIEW(*SOURCE)

モジュールはそれが基礎となっているソース・ファイルと同じ名前、すなわち TRANSRPT でライブラリー MYLIB に作成されます。 このモジュール・オブジェクトはソース・ビューを使用してデバッグすることがで きます。 その他の使用可能なビューについては、 デバッグのためのプログラムの準備を参照してください。

TRANSRPT モジュールのコンパイラー・リストが作成されます。

図 38. TRANSRPT モジュールのソース・ステートメント
      *=================================================================*
      * モジュール名:  TRANSRPT
      * 関連ファイル:  TRNSDTA  (PF)
      * 関連ソース:    TRANSSVC (トランザクション・サービス)
      * エクスポート・プロシージャー:  TRANSRPT
      *       プロシージャー TRANSRPT は、物理ファイル TRNSDTA に保管され
      *       ているすべてのトランザクション・レコードを読み取ります。
      *       これは、計算を実行して値を戻すサブプロシージャー
      *       Trans_Inc を呼び出します。次に Prod_Name を呼び出して、
      *       製品名を判別します。その後で TRANSRPT は
      *       トランザクション・レコードを印刷します。
      *=================================================================*
     FTRNSDTA   IP   E             DISK
     FQSYSPRT   O    F   80        PRINTER       OFLIND(*INOF)
      /COPY QRPGLE,TRANSP
      * プロシージャー 'Prod_Name' の戻り値と類似した製品名の
      * 読み取り可能バージョンを定義します。
     D    ProdName     S             30A
     D    Income       S             10P 2
     D    Total        S             +5      LIKE(Income)
      *
     ITRNSREC       01
      *  サブプロシージャー Trans_Inc を使用して収入を計算します。
     C                   EVAL      Income = Trans_Inc(PROD : QTY : DISC)
     C                   EVAL      Total = Total + Income
      *  製品名を検出します。
     C                   EVAL      ProdName = Prod_Name(PROD)
     OQSYSPRT   H    1P                     1
     O         OR    OF
     O                                           12 'Product name'
     O                                           40 'Quantity'
     O                                           54 'Income'
     OQSYSPRT   H    1P                     1
     O         OR    OF
     O                                           30 '----------+
     O                                              ----------+
     O                                              ----------'
     O                                           40 '--------'
     O                                           60 '------------'
     OQSYSPRT   D    01                     1
     O                       ProdName            30
     O                       QTY           1     40
     O                       Income        1     60
     OQSYSPRT   T    LR                     1
     O                                              'Total: '
     O                       Total         1

ファイル TRNSDTA の DDS を 図 39 に示します。/COPY メンバーは 図 37 に 示されています。

図 39. TRNSDTA の DDS
     A*****************************************************************
     A* 関連ファイル:  TRNSRPT                                        *
     A* 説明:          これは物理ファイル TRNSDTA です。これには      *
     A*                TRNSREC というレコード様式が 1 つあります。    *
     A*****************************************************************
     A* 部品トランザクション・ファイル -- TRNSDTA
     A          R TRNSREC
     A            PROD          10S 0       TEXT('Product')
     A            QTY            5S 0       TEXT('Quantity')
     A            DISCOUNT       2S 2       TEXT('Discount')