* * This program uses a tree structure to dispaly the * transports of a specified period. You can drill * down in a tree to display the transports by type, * number and date and to display the objects inside. * REPORT ZTRPLIST. TABLES: E070, E071. PARAMETERS: STRDAT TYPE D DEFAULT SY-DATUM, ENDDAT TYPE D DEFAULT SY-DATUM. DATA: BEGIN OF ITAB OCCURS 100, TRFUNCTION LIKE E070-TRFUNCTION, AS4DATE LIKE E070-AS4DATE, TRKORR LIKE E070-TRKORR, PGMID LIKE E071-PGMID, OBJECT LIKE E071-OBJECT, OBJ_NAME LIKE E071-OBJ_NAME, END OF ITAB. DATA: BEGIN OF SITAB OCCURS 100, TRFUNCTION LIKE E070-TRFUNCTION, AS4DATE LIKE E070-AS4DATE, TRKORR LIKE E070-TRKORR, PGMID LIKE E071-PGMID, OBJECT LIKE E071-OBJECT, OBJ_NAME LIKE E071-OBJ_NAME, END OF SITAB. DATA: C(3), TEXT1(50), TEXT2(50), COL1 TYPE I, COL2 TYPE I, LEVEL TYPE I, F15 TYPE C, LEN1 TYPE I, LEN2 TYPE I, COUNT TYPE I. DATA: BEGIN OF TREE OCCURS 100. INCLUDE STRUCTURE SNODETEXT. DATA: END OF TREE. SELECT-OPTIONS SRC_SYTS FOR C NO INTERVALS DEFAULT 'DEV'. START-OF-SELECTION. SET PF-STATUS 'LIBS1'. SELECT * FROM E070 WHERE AS4DATE >= STRDAT AND AS4DATE <= ENDDAT ORDER BY TRFUNCTION AS4DATE. SELECT * FROM E071 WHERE TRKORR = E070-TRKORR AND PGMID <> 'CORR'. MOVE-CORRESPONDING E070 TO ITAB. MOVE-CORRESPONDING E071 TO ITAB. APPEND ITAB. ENDSELECT. ENDSELECT. LOOP AT ITAB. SITAB = ITAB. APPEND SITAB. ENDLOOP. DATA: BEGIN OF STRUCC OCCURS 500. INCLUDE STRUCTURE SNODETEXT. DATA: END OF STRUCC. LOOP AT ITAB. AT FIRST. * write: / 'Transports between', strdat, 'and', enddat. TEXT1 = 'Transports between'. TEXT1+21 = STRDAT. TEXT1+31 = 'and'. TEXT1+35 = ENDDAT. CLEAR TEXT2. LEN1 = 50. LEN2 = 0. COL1 = 1. COL2 = 2. LEVEL = 1. PERFORM FILL_TREETAB. ENDAT. AT NEW TRFUNCTION. * write: / itab-trfunction color 3. COUNT = 0. LOOP AT SITAB. IF ITAB-TRFUNCTION = SITAB-TRFUNCTION. COUNT = COUNT + 1. ENDIF. ENDLOOP. TEXT1 = ITAB-TRFUNCTION. TEXT1+3 = 'type transport'. TEXT2 = COUNT. CONDENSE TEXT2. LEN1 = 20. LEN2 = 16. COL1 = 3. COL2 = 7. LEVEL = 2. PERFORM FILL_TREETAB. ENDAT. AT NEW TRKORR. * write: / itab-trkorr color 4, itab-as4date color 4. TEXT1 = ITAB-TRKORR. TEXT2 = ITAB-AS4DATE. LEN1 = 10. LEN2 = 10. COL1 = 4. COL2 = 4. LEVEL = 3. PERFORM FILL_TREETAB. ENDAT. * write: / itab-pgmid color 5, itab-object color 5, itab-obj_name(30) TEXT1 = ITAB-PGMID. TEXT1+4 = ITAB-OBJECT. TEXT1+10 = ITAB-OBJ_NAME(30). CLEAR TEXT2. LEN1 = 50. LEN2 = 0. COL1 = 5. COL2 = 5. LEVEL = 4. PERFORM FILL_TREETAB. ENDLOOP. CALL FUNCTION 'RS_TREE_CONSTRUCT' TABLES NODETAB = TREE EXCEPTIONS TREE_FAILURE = 1. SY-LSIND = 0. CALL FUNCTION 'RS_TREE_LIST_DISPLAY' EXPORTING CALLBACK_PROGRAM = 'ZTRPLIST' CALLBACK_USER_COMMAND = 'NODE_SELECT' IMPORTING F15 = F15. *---------------------------------------------------------------------* * FORM NODE_SELECT * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> KNOTEN * * --> COMMAND * * --> EXIT * * --> LIST_REFRESH * *---------------------------------------------------------------------* FORM NODE_SELECT TABLES KNOTEN STRUCTURE SEUCOMM USING COMMAND CHANGING EXIT LIST_REFRESH. EXIT = ' '. LIST_REFRESH = 'X'. ENDFORM. *---------------------------------------------------------------------* * FORM FILL_TREETAB * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM FILL_TREETAB. TREE-NAME = TEXT1. TREE-COLOR = COL1. TREE-INTENSIV = '1'. TREE-TEXT = TEXT1. TREE-TLENGTH = LEN1. TREE-TLEVEL = LEVEL. TREE-TCOLOR = COL1. TREE-TINTENSIV = '1'. TREE-TEXT1 = TEXT2. TREE-TLENGTH1 = LEN2. TREE-TCOLOR1 = COL2. TREE-TINTENSIV = '0'. APPEND TREE. ENDFORM.