キー付きコレクション
コンポーネント・インスタンスのセット
キー付きコレクション(Keyed collections)では、キー値により識別されるコンポーネントが不規則な順番で並んでいます。 キー値は重複できません。
キー付きコレクションではフィールド値がキーになっています。つまり、コレクション内のそれぞれの項目は一意のフィールド値により識別できます。
例として、社員詳細を表示するフォームを使用してみましょう。 このアプリケーションでは複数の社員個人用のフォームを同時に表示できるようにします。 フォームの各個人のインスタンスは社員の社員番号により識別されます。
フォームのコレクションは、以下のように定義されます。
DEFINE_COM CLASS(#PRIM_KCOL) NAME(#DFORMS) COLLECTS(#FRMDETAIL) KEYEDBY(#EMPNO)
または
DEFINE_COM CLASS(#PRIM_KCOL<#FRMDETAIL #EMPNO>) NAME(#DFORMS)
このコレクションを定義する時、コレクション名とキーを指定することで、コレクション内の各個人の項目を参照することができます。 次のコードでは現在選択された社員の#FRMDETAILS ウィンドウが表示されます。
INVOKE #DFORMS<#EMPNO>.SHOWFORM
そして以下のコードでは社員番号A0070の詳細が表示されます。
INVOKE #DFORMS<'A0070'>.SHOWFORM
同様にプロパティを設定する時にこのフォームのインスタンスに参照することも可能です。
set #DFORMS<#deptment> Caption(#deptment)
コレクションのイベント用の包括的なルーチンを書いて、コレクション内のすべての項目に対して開始させることも可能です。
EVTROUTINE HANDLING(#DFORMS<>.Closing)
フォームを保存する時は、コードは自動的に再フォーマットされます。