ピックリストでエントリーを追加する前に、ピックリストのコレクション、ピックリスト・アイテムのコレクション、および2つのサブルーチンを作成する必要があります。サブルーチンの1つは、コレクションにピックリストを追加するもので、1つは、コレクションにアイテムを追加するものです。これらのコレクションは、プロパティ・シートのすべてのピックリストを処理します。
1. ピックリスト(#PRIM_PKLTコンポーネント)のコレクションを作成します。
DEFINE_COM class(#PRIM_KCOL) name(#PL_COL) collects(#PRIM_PKLT) keyedby(#STD_COUNT)
2. ピックリスト・アイテム(#PRIM_PKITコンポーネント)のコレクションを作成します。
DEFINE_COM class(#PRIM_KCOL) name(#PI_COL) collects(#PRIM_PKIT) keyedby(#STD_COUNT)
3. インデックス番号を割り当て、ピックリストとピックリスト・アイテムを指定します。
DEFINE_COM class(#STD_COUNT) name(#CUR_PLIST)
DEFINE_COM class(#STD_COUNT) name(#CUR_PITEM)
4. コレクションに新しいインデックス番号を割り当てて新しいピックリストを作成するサブルーチンを作成します。
SUBROUTINE name(ADD_PLIST)
CHANGE field(#CUR_PLIST) to('#Cur_Plist + 1')
ENDROUTINE
5. ピックリスト・アイテムにインデックス番号を割り当て、アイテムを現在のピックリストと関連付けて新しいピックリスト・アイテムを作成するサブルーチンを作成します。
SUBROUTINE name(ADD_PITEM) parms((#PROPERTY *RECEIVED) (#VALUE *RECEIVED))
CHANGE field(#CUR_PITEM) to('#Cur_PItem + 1')
* Set the caption and the value of the item plus assign it into the Picklist
SET com(#PI_Col<#Cur_PItem>) caption(#property) default(True) value(#value) parent(#PL_COL<#Cur_PList>)
ENDROUTINE
コピー可能なピックリストのコードからピックリストを設定するコードをコピーできます。