Page History
A drill down tree only includes items that contain other items. To fill a drill down tree, use a single SELECT statement to retrieve all the fields. Data from other files is fetched as required. This example fills a three-level tree view of departments, sections, and employees from the PSLMST file. It shows all sections that contain employees and all departments which contain sections.
To see how the example works, copy this code and paste it to a form component:
FUNCTION FUNCTION options(*DIRECT)BEGIN BEGIN_COM role(*EXTENDS #PRIM_FORM) FORMPOSITION(ScreenCenter) LEFT(444) TOP(128) WIDTH
WIDTH(342)
DEFINE_COM class(#PRIM_TRVW) name(#TRVW_1) DISPLAYPOSITION(1) HEIGHT(289) LEFT(24) PARENT
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
SOURCE(#DEPTMENT) VISIBLE(False)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_3) KEYPOSITION(1) LEVEL(2) PARENT(#TRVW_1) SOURCE
SOURCE(#SECTION) VISIBLE(False)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_2) DISPLAYPOSITION(1) IMAGE(#VI_DEPTCL) IMAGEEXPANDED
MAGEEXPANDED(#VI_DEPTOP) LEVEL(1) PARENT(#TRVW_1) SOURCE(#DEPTDESC)
DEFINE_COM class(#PRIM_TVCL) name(#TVCL_4) DISPLAYPOSITION(1) IMAGE(#VI_SECTCL) IMAGEEXPANDEDDEFINE
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) SOURCEDEFINE
SOURCE(#EMPNO) VISIBLE(False) DEFINE_COM class(#PRIM_TVCL) name(#TVCL_6) DISPLAYPOSITION(1) LEVEL(3) PARENTEVTROUTINE
PARENT(#TRVW_1) SOURCE(#SURNAME) EVTROUTINE handling(#TRVW_1.Initialize) options(*NOCLEARMESSAGES *NOCLEARERRORS)SELECT SELECT fields(#EMPNO #SURNAME #DEPTMENT #SECTION) from_file(PSLMST)FETCH FETCH fields(#DEPTDESC) from_file(DEPTAB) with_key(#DEPTMENT)FETCH FETCH fields(#SECDESC) from_file(SECTAB) with_key(#DEPTMENT #SECTION)ADD ADD_ENTRY to_list(#TRVW_1)ENDSELECT
ENDROUTINE ENDSELECT ENDROUTINE
END_COM
