* Add following code to 'STATUS_0100'(PBO module) *-----------------------------------------------* * Create ALVtree Hierarchy PERFORM create_alvtree_hierarchy. * Add following code to 'Z......F01' INCLUDE *--------------------------------------------------* *&-------------------------------------------------------------* *& Form CREATE_ALVTREE_HIERARCHY *&-------------------------------------------------------------* * text *--------------------------------------------------------------* * Builds ALV tree display, (inserts nodes, subnodes etc) *--------------------------------------------------------------* form create_alvtree_hierarchy. DATA: NODE LIKE MTREESNODE, ld_node type string. LOOP AT it_ekko INTO wa_ekko. * Build the node table. * Caution: The nodes are inserted into the tree according to the order * in which they occur in the table. In consequence, a node must not * occur in the node table before its parent node. * Node with key 'Root' node-node_key = wa_ekko-ebeln. " 'Root'. "#EC NOTEXT " Key of the node CLEAR node-relatkey. " Special case: A root node has no parent CLEAR node-relatship. " node. node-hidden = ' '. " The node is visible, node-disabled = ' '. " selectable, node-isfolder = 'X'. " a folder. CLEAR node-n_image. " Folder-/ Leaf-Symbol in state "closed": " use default. CLEAR node-exp_image. " Folder-/ Leaf-Symbol in state "open": " use default CLEAR node-expander. " see below. node-text = wa_ekko-ebeln. "'Root'. APPEND node TO node_table. LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln EQ wa_ekko-ebeln. * Node with key wa_ekpo-ebelp "'Child1' ld_node = sy-tabix. concatenate wa_ekpo-ebelp ld_node into ld_node. node-node_key = ld_node. "'Child1'. #EC NOTEXT * Node is inserted as child of the node with key wa_ekpo-ebeln "'Root'. node-relatkey = wa_ekpo-ebeln. " 'Root'. node-relatship = cl_gui_simple_tree=>relat_last_child. node-hidden = ' '. node-disabled = ' '. node-isfolder = ' '. CLEAR node-n_image. CLEAR node-exp_image. node-expander = ' '. " The node is marked with a '+', although * it has no children. When the user clicks on the * + to open the node, the event * expand_no_children is fired. The programmer can * add the children of the * node within the event handler of the * expand_no_children event * (see method handle_expand_no_children * of class lcl_application) node-text = wa_ekpo-ebelp. APPEND node TO node_table. ENDLOOP. ENDLOOP. * Add nodes to alv tree CALL METHOD GD_TREE->ADD_NODES EXPORTING TABLE_STRUCTURE_NAME = 'MTREESNODE' NODE_TABLE = NODE_TABLE EXCEPTIONS FAILED = 1 ERROR_IN_NODE_TABLE = 2 DP_ERROR = 3 TABLE_STRUCTURE_NAME_NOT_FOUND = 4 OTHERS = 5.