ドリル・ダウン・ツリーには、他のアイテムを含むアイテムのみを置くことができます。ドリル・ダウン・ツリーを埋め込むには、1つのSELECTステートメントを使用し、すべてのフィールドを取得します。他のファイルのデータは、必要に応じて取得されます。この例では、PSLMST ファイルから、部門、セクション、従業員の3つのレベルのツリー・ビューを組み込みます。従業員を含むすべてのセクションと、セクションを含むすべての部門が表示されます。
例の動作を見るには、このコードをフォーム・コンポーネントにコピーします。
FUNCTION options(*DIRECT)
BEGIN_COM role(*EXTENDS #PRIM_FORM) FORMPOSITION(ScreenCenter) LEFT(444) TOP(128) WIDTH(342)
DEFINE_COM class(#PRIM_TRVW) name(#TRVW_1) DISPLAYPOSITION(1) HEIGHT(289) LEFT(24) PARENT(#COM_OWNER) TABPOSITION(1) TOP(8) WIDTH(289)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_1) KEYPOSITION(1) LEVEL(1) PARENT(#TRVW_1) SOURCE(#DEPTMENT) VISIBLE(False)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_3) KEYPOSITION(1) LEVEL(2) PARENT(#TRVW_1) SOURCE(#SECTION) VISIBLE(False)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_2) DISPLAYPOSITION(1) IMAGE(#VI_DEPTCL) IMAGEEXPANDED(#VI_DEPTOP) LEVEL(1) PARENT(#TRVW_1) SOURCE(#DEPTDESC)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_4) DISPLAYPOSITION(1) IMAGE(#VI_SECTCL) IMAGEEXPANDED(#VI_SECTOP) LEVEL(2) PARENT(#TRVW_1) SOURCE(#SECDESC)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_5) KEYPOSITION(1) LEVEL(3) PARENT(#TRVW_1) SOURCE(#EMPNO) VISIBLE(False)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_6) DISPLAYPOSITION(1) LEVEL(3) PARENT(#TRVW_1) SOURCE(#SURNAME)
EVTROUTINE handling(#TRVW_1.Initialize) options(*NOCLEARMESSAGES *NOCLEARERRORS)
SELECT fields(#EMPNO #SURNAME #DEPTMENT #SECTION) from_file(PSLMST)
FETCH fields(#DEPTDESC) from_file(DEPTAB) with_key(#DEPTMENT)
FETCH fields(#SECDESC) from_file(SECTAB) with_key(#DEPTMENT #SECTION)
ADD_ENTRY to_list(#TRVW_1)
ENDSELECT
ENDROUTINE
END_COM