Style プロパティ
Styleではコレクションが存在しないキーでアクセスされた場合にどうするかを指定します。
コレクションがコレクション内に存在しないキーでアクセスされた場合にどうするかをStyleプロパティに指定します。 このパラメータは、次のいずれかの値を取ることができます。
FACTORY コレクションに存在しないキーを使ってコレクションがアクセスされた時に、Collectsプロパティにより指定されたタイプのコンポーネントの新しいインスタンスを作成したい場合はこの値を使用します。 この新しい項目はキーに関連付けられ、コレクションに格納されます。 FactoryはStyleプロパティの省略値です。
COLLECTION コレクションに存在しないキーを使ってコレクションがアクセスされた時に、*NULL値の参照を返したい場合はこの値を使用します。 このコレクション・スタイルを使用する場合、SET_REFやIF_REFコマンドを使ってコレクションの処理を行う必要があります。 このスタイルのコレクションではPRIM_OBJTなどの抽象的なクラスをコレクトすることができます。 コレクションはコンポーネント・インスタンスを作成しないので、Visual LANSAアプリケーションによりインスタンスを作成したり、適切なキーを使ってコレクション内にインスタンスを割り当てたりします。
例:
DEFINE_COM CLASS(#PRIM_KCOL) NAME(#FORM_COL) COLLECTS(#PRIM_FORM) KEYEDBY(#EMPNO) STYLE(Collection)
IF full time employee
SET_REF COM(#FORM_COL<#CUR_EMPLNO>) TO(*CREATE_AS #FORM_FT)
if part time employee
SET_REF COM(#FORM_COL<#CUR_EMPLNO>) TO(*CREATE_AS#FORM_PT)
else
if contract employee
SET_REF COM(#FORM_COL<#CUR_EMPLNO>)
TO(*CREATE_AS #FORM_CT)
endif
endif
endif
注: #FORM_FT、#FORM_PT、FORM_CTは全てPRIM_FORMから継承するVisual LANSAフォームです。