[
Image Added |../../index.htm#lansa/def_array_c.htm]
現在地:
| Anchor |
|---|
| _Ref428884990 |
|---|
| _Ref428884990 |
|---|
|
...
...
7.20.2 DEF_ARRAY についてのコメント/警告 配列機能を適切に使用するには、IBM i における文字、パック 10 進数、および符号付き/ゾーン 10 進数のデータ保管形式について理解しておく必要があります。
配列を定義すると、ユーザー自身が DEFINE コマンドで定義したかのように、さまざまなフィールドが自動的にファンクションに定義されます。
RDMLX フィールドをオーバーレイすることはできません。また、RDMLX フィールドで他のフィールドをオーバーレイすることもできません。
以下の例では、#VAL01、#VAL02、および #VAL03 がすべて長さ 7 桁、小数点以下桁数 2 桁のパック 10 進数フィールドであるとします。
DEF_ARRAY NAME(#VAL) INDEXES(#II #JJ) OF_FIELDS(#VAL01 #VAL02 #VAL03)
これにより、以下の「フィールド」がファンクションに定義されます。
...
- 配列全体を交換リストによって別のファンクションに、またはパラメータによって 3GL プログラムに渡すことができます。当然、他方のファンクション内の配列名が同じで、その他すべての点についても同じである必要があります。また、交換リスト域全体が 2K バイトに過ぎないことを覚えておいてください。
- デバッグ・モードで、配列全体の内容を表示できます。
- 英数字配列を 1 つのコマンドで初期化できます。
- 画面パネルまたはレポートに表示できます。ただし、実際の配列の内容がパック 10 進数データの場合は、ワークステーション装置エラーが発生する可能性があります。
- 作業リストに挿入できるため、2 次元の配列処理が促進されます。1つの「索引」は作業リストの項目番号、もう 1 つは実際の配列項目索引です。
- プログラム内では、#VAL#II、#VAL#JJ、#VAL#ARRAY などのフィールドは実フィールドであるため、OVERRIDE コマンドでその属性をオーバーライドすることが可能です。長さや小数点以下桁数をオーバーライドしないでください。
- RDML ファンクションを RPG コードに変換するときに、最大 40 個の配列を LANSA で定義して、プログラム処理を促進することができます。配列の数とタイプは、RDML ファンクションの複雑さと、RDML ファンクションで使用される機能によって決まります。
- また、グループ、リスト、データベース操作、または画面パネルの対話ごとに、追加の配列が定義されます。
- 1 つの RPG プログラムで使用できる配列数は 200個に制限されます。
- RDML プログラムが自動的に使用する実際の配列数はコンパイル時まで予測できないため、各ファンクションで定義する配列数が 50~100 個を超えないようにしてください。1 つの RDML ファンクション内では、配列数×索引数が 100 以下になるようにしてください。
[
Image Added |../../index.htm#lansa/def_array_c.htm]