Usuario:Cvmontuy/tmp22
- &---------------------------------------------------------------------*
- & Include ZPARIPR_WMDB_CONF_F01
- &---------------------------------------------------------------------*
- Transport: DRUK978116
- &---------------------------------------------------------------------*
- & Form CREATE_AND_INIT_TREE
- &---------------------------------------------------------------------*
- ----------------------------------------------------------------------*
- --> p1 text
- <-- p2 text
- ----------------------------------------------------------------------*
FORM CREATE_AND_INIT_TREE.
DATA: NODE_TABLE TYPE TREEV_NTAB, ITEM_TABLE TYPE ITEM_TABLE_TYPE, EVENTS TYPE CNTL_SIMPLE_EVENTS, event type cntl_simple_event.
- create a container for the tree control
CREATE OBJECT G_CUSTOM_CONTAINER EXPORTING " the container is linked to the custom control with the " name 'TREE_CONTAINER' on the dynpro
CONTAINER_NAME = 'TREE_CONTAINER' EXCEPTIONS CNTL_ERROR = 1 CNTL_SYSTEM_ERROR = 2 CREATE_ERROR = 3 LIFETIME_ERROR = 4 LIFETIME_DYNPRO_DYNPRO_LINK = 5. IF SY-SUBRC <> 0. MESSAGE A000. ENDIF.
- create a list tree
CREATE OBJECT g_tree EXPORTING PARENT = G_CUSTOM_CONTAINER NODE_SELECTION_MODE = CL_GUI_LIST_TREE=>NODE_SEL_MODE_SINGLE ITEM_SELECTION = 'X' WITH_HEADERS = ' ' EXCEPTIONS CNTL_SYSTEM_ERROR = 1 CREATE_ERROR = 2 FAILED = 3 ILLEGAL_NODE_SELECTION_MODE = 4 LIFETIME_ERROR = 5. IF SY-SUBRC <> 0. MESSAGE A000. ENDIF.
- define the events which will be passed to the backend
" node double click event-eventid = CL_GUI_list_TREE=>EVENTID_NODE_DOUBLE_CLICK. event-appl_event = 'X'. " append event to events.
" item double click EVENT-EVENTID = CL_GUI_LIST_TREE=>EVENTID_ITEM_DOUBLE_CLICK. event-appl_event = 'X'. append event to events.
" expand no children EVENT-EVENTID = CL_GUI_LIST_TREE=>EVENTID_EXPAND_NO_CHILDREN. event-appl_event = 'X'. append event to events.
" link click EVENT-EVENTID = CL_GUI_LIST_TREE=>EVENTID_LINK_CLICK. event-appl_event = 'X'. append event to events.
" button click EVENT-EVENTID = CL_GUI_LIST_TREE=>EVENTID_BUTTON_CLICK. event-appl_event = 'X'. append event to events.
" checkbox change EVENT-EVENTID = CL_GUI_LIST_TREE=>EVENTID_CHECKBOX_CHANGE. event-appl_event = 'X'. append event to events.
CALL METHOD G_TREE->SET_REGISTERED_EVENTS EXPORTING EVENTS = EVENTS EXCEPTIONS CNTL_ERROR = 1 CNTL_SYSTEM_ERROR = 2 ILLEGAL_EVENT_COMBINATION = 3. IF SY-SUBRC <> 0. MESSAGE A000. ENDIF.
- assign event handlers in the application class to each desired event
SET HANDLER G_APPLICATION->HANDLE_NODE_DOUBLE_CLICK FOR G_TREE. SET HANDLER G_APPLICATION->HANDLE_ITEM_DOUBLE_CLICK FOR G_TREE. SET HANDLER G_APPLICATION->HANDLE_EXPAND_NO_CHILDREN FOR G_TREE. SET HANDLER G_APPLICATION->HANDLE_LINK_CLICK FOR G_TREE. SET HANDLER G_APPLICATION->HANDLE_BUTTON_CLICK FOR G_TREE. SET HANDLER G_APPLICATION->HANDLE_CHECKBOX_CHANGE FOR G_TREE.
- add some nodes to the tree control
- NOTE: the tree control does not store data at the backend. If an
- application wants to access tree data later, it must store the
- tree data itself.
CALL METHOD G_APPLICATION->m_build_node_and_item_table CHANGING NODE_TABLE = NODE_TABLE ITEM_TABLE = ITEM_TABLE.
CALL METHOD G_TREE->ADD_NODES_AND_ITEMS EXPORTING NODE_TABLE = NODE_TABLE ITEM_TABLE = ITEM_TABLE ITEM_TABLE_STRUCTURE_NAME = 'MTREEITM' EXCEPTIONS FAILED = 1 CNTL_SYSTEM_ERROR = 3 ERROR_IN_TABLES = 4 DP_ERROR = 5 TABLE_STRUCTURE_NAME_NOT_FOUND = 6. IF SY-SUBRC <> 0. MESSAGE A000. ENDIF.
ENDFORM. " CREATE_AND_INIT_TREE
- INCLUDE ZPAIPR_WMDB_CONF_F01