天天看點

獲得REPORT程式源代碼和開發對象(同SE80)

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