8.12.1 FORのパラメータ
EACHパラメータを使用して、FOR/ENDFORブロックの範囲を定義する変数に名前を付け、反復子により提供される現在のコンポーネントへの参照とします。
デフォルトでは、この変数のタイプは、反復子が作成されたコレクションで集められるコンポーネントと同じタイプになります。これはOPERATION(…)パラメータで変更することができます。
INパラメータで反復するコレクションを特定します。このコレクションにはユーザー定義コレクションやLANSAの基本コレクションなどがあります。
ユーザー定義のコレクション・タイプには以下のものがあります。
キー付きコレクション |
キー付きコレクション。キー付きコレクションでは、キー値により識別されるコンポーネントが不規則な順番で並んでいます。キー値は重複できません。 キー付きコレクションは、あらかじめ項目の順序を定義したものがないため、コレクションを反復するときに、項目が戻される順序は保証されません。 |
リスト・コレクション |
リスト・コレクション。リスト・コレクションでは、規則どおりに並んだコンポーネントの集まりが提供されます。リスト・コンポーネントの特徴は、指定された索引またはリストの開始や終了を参照して実際の位置を決めることです。常に索引は1に対する値が付けられます。 |
配列コレクション |
配列コレクション。配列コレクションはサイズや順序を動的に変えられるコンポーネントの集まりで、索引により検索することができます。常に索引は1に対する値が付けられます。 |
ソート済み配列コレクション |
ソート済み配列コレクション。ソート済み配列コレクションはサイズやソート順を動的に変えられるコンポーネントの集まりで、索引により検索することができます。常に索引は1に対する値が付けられます。 |
セット・コレクション |
セット・コレクション。セット・コレクションは不規則に並んだコンポーネントの集まりで重複データを含めることはできません。 |
ディクショナリ・コレクション |
ディクショナリ・コレクション。ディクショナリ・コレクションは、キー値コンポーネントのペアが不規則に並んでおり、重複するキーはありません。 |
ソート済みディクショナリ・コレクション |
ソート済みディクショナリ・コレクション。ソート済みディクショナリ・コレクションは、キー値コンポーネントのペアが集まったものです。このコレクションは、キー・コンポーネントの順で並んでおり、重複キーは許されません。 |
LANSAの基本コレクションは次のプロパティを使用してアクセスします。
ComponentMembersプロパティ |
コンポーネントのComponentMembersプロパティにより、そのコンポーネントの全メンバー・コンポーネントのコレクションにアクセスすることができます。別のコンポーネントのオーナーとなっているコンポーネントはすべてこのプロパティを持っています。 |
ComponentControlsプロパティ |
構成ビジュアル・コンポーネント(フォーム、パネル、タブ・フォルダーなど)はすべてがComponentControlsプロパティに対応しており、その子コントロールにアクセスすることができます。 |
Itemsプロパティ |
Itemsプロパティにより、グリッド、リスト・ビュー、ツリー・ビュー、ツリー・ビュー項目、リスト・ボックス、コンボ・ボックス、プロパティ・シート、メニュー内の各種項目にアクセスすることができます。 メニューの場合、Itemsプロパティは、メニューバー、ポップアップ、サブメニューなどのコンポーネントに含まれるすべてのメニュー・アイテムのコレクションを提供します。 |
Columnsプロパティ |
Columnsプロパティにより、グリッド、リスト・ビュー、ツリー・ビュー、リスト・ボックス、コンボ・ボックス、プロパティ・シート内の列の各種属性にアクセスすることができます。 |
ComponentFormsプロパティ |
#SYS_APPLNコンポーネントのComponentFormsプロパティは、現在アプリケーションに認識されているすべてのフォームのコレクションを提供します。 |
コレクションにはキーが提供されているものもあります。
キー付きコレクションはキーを持っています。キーはKeyedByパラメータにより定義されたタイプのフィールドです。他のコレクションは単に索引キーを持っているだけです。
現在のコンポーネントの現在のキーにアクセスする場合は、KEYパラメータに名前を指定します。FOR/ENDFORブロックの中で変数名を参照するたびに、現在のキーへのアクセスがVisual LANSAにより自動で提供されます。
このパラメータを使ってキャスティング操作を行い、コレクションから特定の種類のオブジェクトを選択することができます。
*DEFAULT |
すべての項目が選択されます。 |
*INSTANCE_OF クラス名 |
変数が、クラス名に指定されたタイプと同じであるか、またはクラス名に指定された祖先のタイプと同じであるかを検査します。 |
*KIND_OF クラス名 |
変数が、クラス名に指定された値と同じクラスであるかどうかを検査します。 |
*DYNAMIC #変数名 |
変数名に含まれている参照をEACHパラメータで指定された各変数に割り当てます。コンパイル時に、変数に互換性があるかどうかの検査は実行されません。 実行時に、変数名をEACHパラメータに指定されたどの変数にもキャストできない場合、エラーが発生します。 |