この例では、3つのリスト・ビューを使用します。起動時に、すべての社員が全ての社員と選択されない社員のリスト・ビューに追加されます。社員が全ての社員リストで選択および選択解除されると、選択された社員リストと選択されない社員リストで追加および削除されます。

例の動作を見るには、このコードをフォーム・コンポーネントにコピーします。
FUNCTION options(*DIRECT)BEGIN_COM role(*EXTENDS #PRIM_FORM) HEIGHT(378) LEFT(345) TOP(196) WIDTH(473)DEFINE_COM class(#PRIM_LTVW) name(#ALL_LIST) DISPLAYPOSITION(1) FULLROWSELECT(True) HEIGHT(313) LEFT(8) PARENT(#GPBX_ALL) TABPOSITION(1) TOP(16) WIDTH(129)DEFINE_COM class(#PRIM_LTVW) name(#SEL_LIST) DISPLAYPOSITION(1) FULLROWSELECT(True) HEIGHT(313) LEFT(8) PARENT(#GPBX_SEL) TABPOSITION(1) TOP(16) WIDTH(129)DEFINE_COM class(#PRIM_LTVW) name(#NOT_LIST) DISPLAYPOSITION(1) FULLROWSELECT(True) HEIGHT(313) LEFT(8) PARENT(#GPBX_NOT) TABPOSITION(1) TOP(16) WIDTH(129)DEFINE_COM class(#PRIM_LVCL) name(#LVCL_1) DISPLAYPOSITION(1) PARENT(#ALL_LIST) SORTPOSITION(1) SOURCE(#EMPNO) WIDTH(54) WIDTHTYPE(Remainder)DEFINE_COM class(#PRIM_LVCL) name(#LVCL_2) DISPLAYPOSITION(1) PARENT(#SEL_LIST) SORTPOSITION(1) SOURCE(#EMPNO) WIDTH(54) WIDTHTYPE(Remainder)DEFINE_COM class(#PRIM_LVCL) name(#LVCL_3) DISPLAYPOSITION(1) PARENT(#NOT_LIST) SORTPOSITION(1) SOURCE(#EMPNO) WIDTH(54) WIDTHTYPE(Remainder)DEFINE_COM class(#PRIM_GPBX) name(#GPBX_ALL) CAPTION('All Employees') DISPLAYPOSITION(3) HEIGHT(337) LEFT(8) PARENT(#COM_OWNER) TABPOSITION(3) TABSTOP(False) TOP(8) WIDTH(145)DEFINE_COM class(#PRIM_GPBX) name(#GPBX_SEL) CAPTION('Selected Employees') DISPLAYPOSITION(2) HEIGHT(338) LEFT(156) PARENT(#COM_OWNER) TABPOSITION(2) TABSTOP(False) TOP(6) WIDTH(145)DEFINE_COM class(#PRIM_GPBX) name(#GPBX_NOT) CAPTION('NOT Selected Employees') DISPLAYPOSITION(1) HEIGHT(339) LEFT(304) PARENT(#COM_OWNER) TABPOSITION(1) TABSTOP(False) TOP(5) WIDTH(145)DEFINE field(#SEL_EMPNO) reffld(#EMPNO)EVTROUTINE handling(#com_owner.Initialize)* Add all employees to the all and not selected listsSELECT fields(#ALL_LIST) from_file(PSLMST)ADD_ENTRY to_list(#ALL_LIST)ADD_ENTRY to_list(#NOT_LIST)ENDSELECTENDROUTINEEVTROUTINE handling(#ALL_List.ItemGotSelection)* Save employee number valueCHANGE field(#SEL_EMPNO) to(#EMPNO)* Add to Selected listADD_ENTRY to_list(#SEL_LIST)* Remove from the not selected listSELECTLIST named(#NOT_LIST)IF cond('#EMPNO = #SEL_EMPNO')DLT_ENTRY from_list(#NOT_LIST)LEAVEENDIFENDSELECTENDROUTINEEVTROUTINE handling(#ALL_List.ItemLostSelection)* Save employee number valueCHANGE field(#SEL_EMPNO) to(#EMPNO)* Add to not Selected listADD_ENTRY to_list(#NOT_LIST)* Remove from the selected listSELECTLIST named(#SEL_LIST)IF cond('#EMPNO = #SEL_EMPNO')DLT_ENTRY from_list(#SEL_LIST)LEAVEENDIFENDSELECTENDROUTINEEND_COM