ソース・デバッグのためのモジュールの作成
この例では、ソース・デバッガーを使ってデバッグすることのできる ILE RPG モジュール・オブジェクトを作成します。モジュール TRANSRPT には、報告書処理を実行するメイン・プロシージャーが 含まれています。 これは必要なタスクを行うために TRANSSVC のプロシージャーを 呼び出します。 このモジュールのソースが図 1 に示されています。
モジュール・オブジェクトを作成するには、以下のとおり入力してください。
CRTRPGMOD MODULE(MYLIB/TRANSRPT) SRCFILE(MYLIB/QRPGLESRC)
DBGVIEW(*SOURCE)
モジュールはそれが基礎となっているソース・ファイルと同じ名前、すなわち TRANSRPT でライブラリー MYLIB に作成されます。 このモジュール・オブジェクトはソース・ビューを使用してデバッグすることがで きます。 その他の使用可能なビューについては、 デバッグのためのプログラムの準備を参照してください。
TRANSRPT モジュールのコンパイラー・リストが作成されます。
図 1. 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 を 図 2 に示します。/COPY メンバーは 図 2 に 示されています。
図 2. 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')