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