REPORT ZALL_RE0001.
TYPE-POOLS: ICON.
*---输入屏幕
PARAMETERS: PROGNAME LIKE SY-REPID.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: PUSHBUTTON 1(20) PUBU1 USER-COMMAND SCR.
SELECTION-SCREEN: PUSHBUTTON 25(20) PUBU2 USER-COMMAND OBJ.
SELECTION-SCREEN: END OF LINE.
*---为按钮赋图标和描述
AT SELECTION-SCREEN OUTPUT.
CONCATENATE ICON_DISPLAY_TEXT TEXT-001 INTO PUBU1.
CONCATENATE ICON_VARIANTS TEXT-002 INTO PUBU2.
*---按钮事件触发
AT SELECTION-SCREEN.
CASE SY-UCOMM.
WHEN 'SCR'.
PERFORM OUTSOURCECODE.
WHEN 'OBJ'.
PERFORM OUTOBJECT.
ENDCASE.
*---在输出界面单击返回时必须重新获取屏幕事件,定义返回主屏幕
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'E' OR 'ENDE'.
LEAVE SCREEN.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form OUTSOURCECODE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM OUTSOURCECODE .
DATA: LSCR TYPE STANDARD TABLE OF CHAR100 WITH HEADER LINE.
READ REPORT PROGNAME INTO LSCR.
LOOP AT LSCR.
WRITE LSCR.
ENDLOOP.
LEAVE TO LIST-PROCESSING.
ENDFORM. " OUTSOURCECODE
*&---------------------------------------------------------------------*
*& Form OUTOBJECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM OUTOBJECT .
DATA: NODETAB LIKE SNODETEXT OCCURS 0 WITH HEADER LINE.
DATA: TREENAME LIKE DIRTREE-TNAME.
DEFINE WRITEOBJ.
READ TABLE NODETAB WITH KEY TYPE = &1.
WRITE: 'Object Type:',NODETAB-NAME COLOR 1.
ULINE.
IF SY-SUBRC = '0'.
LOOP AT NODETAB WHERE TYPE = &2.
WRITE: / NODETAB-NAME.
ENDLOOP.
SKIP.
ENDIF.
END-OF-DEFINITION.
CONCATENATE 'PG_' PROGNAME INTO TREENAME.
CALL FUNCTION 'WB_TREE_SELECT'
EXPORTING
TREENAME = TREENAME
TABLES
NODETAB = NODETAB
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
WRITEOBJ 'CPL' 'OPL'.
WRITEOBJ 'CPP' 'OPP'.
WRITEOBJ 'CPT' 'OPT'.
WRITEOBJ 'CPY' 'OPY'.
WRITEOBJ 'CPD' 'OPD'.
WRITEOBJ 'CPE' 'OPE'.
WRITEOBJ 'CPO' 'OPO'.
WRITEOBJ 'CPM' 'OPM'.
WRITEOBJ 'CPU' 'OPU'.
WRITEOBJ 'CPS' 'OPS'.
WRITEOBJ 'CPC' 'OPC'.
WRITEOBJ 'CPZ' 'OPZ'.
WRITEOBJ 'CT' 'OT'.
WRITEOBJ 'CI' 'OI'.
LEAVE TO LIST-PROCESSING.
ENDFORM. " OUTOBJECT