2017년 1월 30일 월요일

ZUPLOAD_DATA_FROM_EXCEL

*&---------------------------------------------------------------------*
*& Report  ZUPLOAD_DATA_FROM_EXCEL
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*
REPORT  ZUPLOAD_DATA_FROM_EXCEL NO STANDARD PAGE HEADING.
*----------------------------------------------------------------------*
*  INCLUDE DECLARATION
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*  EXTERNAL TABLE DECLARATION
*----------------------------------------------------------------------*
TABLES DD03L,DD02T.
*----------------------------------------------------------------------*
*  INTERNAL TABLE DECLARATION
*----------------------------------------------------------------------*
DATA BEGIN OF IT_UPTAB OCCURS 0,
        TEXT(90TYPE C,
       END OF IT_UPTAB.

DATABEGIN OF IT_FCODE OCCURS 10,
        FCODE(4),
      END OF IT_FCODE.

DATA BEGIN OF TYPE OCCURS 0,
         DATATYPE LIKE DD03L-DATATYPE,
       END OF TYPE.

DATA BEGIN OF IT_DD03L OCCURS 0,
          CHK(1TYPE C,                                    " check box
          TABNAME    LIKE DD03L-TABNAME,     " Table name
          FIELDNAME  LIKE DD03L-FIELDNAME,                  " Feld Name
          POSITION   LIKE DD03L-POSITION,    " Table 내의 순서
          KEYFLAG    LIKE DD03L-KEYFLAG,     " Primary Key
          DATATYPE   LIKE DD03L-DATATYPE,                   " Data Type
*         DATATYPE   LIKE DD03L-DATATYPE,
          LENG       LIKE DD03L-LENG,
*          CONT(15)   TYPE C,
*          CONT1(15)  TYPE C,
*         CHECKTABLE LIKE DD03L-CHECKTABLE,
         ROLLNAME  LIKE DD03L-ROLLNAME,
         DDTEXT LIKE DD04T-DDTEXT,
       END OF IT_DD03L.

DATA BEGIN OF ITAB1 OCCURS 0.
        INCLUDE STRUCTURE ITAB.
DATA END OF ITAB1.

*----------------------------------------------------------------------*
* GLOBAL VARIABLE DECLARATION
*----------------------------------------------------------------------*
DATAWA_DD02T LIKE DD02T.


DATABEGIN OF ERROR_MESSAGE,
         LINE1(72),
         LINE2(72),
         LINE3(72),
      END OF ERROR_MESSAGE.

DATA ER_INCLUDE LIKE SY-REPID,
       ER_LINE    LIKE SY-INDEX,
       ER_OFF     LIKE SY-TABIX,
       ER_SUBRC   LIKE SY-SUBRC.

DATA READ_INDEX LIKE SY-TABIX,
        TEMP(15TYPE C,
        FCODE LIKE SY-UCOMM,
        CHANGED LIKE S38E-BUF_VARIED,
        MSG(120)     TYPE C,
        PROG(8TYPE C,
        AUTH_CK(20).
*----------------------------------------------------------------------*
* SELECTION SCREEN LAYOUT
*----------------------------------------------------------------------*

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK G2 WITH FRAME TITLE TIT.
PARAMETERS P_TABNM LIKE DD03L-TABNAME
               MEMORY ID ZCATABNM.
SELECTION-SCREEN END OF BLOCK G2.

* FIELD 합계를 FROM TO 로 받는 OPTION.
*SELECTION-SCREEN BEGIN OF BLOCK G3 WITH FRAME TITLE TIT1.
*PARAMETERS : ACCU RADIOBUTTON GROUP G4,
*             SING RADIOBUTTON GROUP G4.
*SELECTION-SCREEN END OF BLOCK G3.
************************************************************************
* EVENT
************************************************************************
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
  PERFORM INITIALIZATION.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  PERFORM SELECTION_SCREEN.

*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  SET PF-STATUS 'STATUS' EXCLUDING IT_FCODE.
  PERFORM READ_PROCESS.
  PERFORM DISPLAY_PROCESS.

TOP-OF-PAGE.
  PERFORM TOP_OF_PAGE.

TOP-OF-PAGE DURING LINE-SELECTION.
  PERFORM TOP_OF_PAGE_DURING.

END-OF-PAGE.

AT USER-COMMAND .
  PERFORM USER_COMMAND.
*&---------------------------------------------------------------------*
*&      Form  INITIALIZATION
*&---------------------------------------------------------------------*
FORM INITIALIZATION .
  REFRESH IT_FCODE.
*  FCODE-FCODE = 'EDIT'.
*  APPEND FCODE.
  IT_FCODE-FCODE 'EXEC'.
  APPEND IT_FCODE.

ENDFORM.                    " INITIALIZATION
*&---------------------------------------------------------------------*
*&      Form  SELECTION_SCREEN
*&---------------------------------------------------------------------*
FORM SELECTION_SCREEN .
  IF P_TABNM+0(1NE 'Z' AND P_TABNM+0(1NE 'Y' ).
    MESSAGE E315(ATWITH 'This Program is just used for CBO Table'.
  ENDIF.

  SELECT SINGLE *
       FROM DD02T
       INTO WA_DD02T
       WHERE TABNAME P_TABNM.

ENDFORM.                    " SELECTION_SCREEN
*&---------------------------------------------------------------------*
*&      Form  READ_PROCESS
*&---------------------------------------------------------------------*
FORM READ_PROCESS.
* READ DD03L
  PERFORM READ_DD03L.
ENDFORM.                               " READ_PROCESS
*&---------------------------------------------------------------------*
*&      Form  READ_DD03L
*&---------------------------------------------------------------------*
FORM READ_DD03L .
* READ DD03L
  DATA L_TABIX TYPE SY-TABIX.
  SELECT *
        FROM DD03L
        INTO CORRESPONDING FIELDS OF TABLE IT_DD03L
        WHERE TABNAME  EQ P_TABNM
        AND   AS4LOCAL EQ 'A'
        AND   FIELDNAME NE '.INCLUDE'.

  LOOP AT IT_DD03L.
    L_TABIX SY-TABIX.
    SELECT SINGLE DDTEXT INTO IT_DD03L-DDTEXT
    FROM DD04T
          WHERE ROLLNAME   EQ IT_DD03L-ROLLNAME
          AND   DDLANGUAGE EQ SY-LANGU
          AND   AS4LOCAL   EQ 'A'
          AND   AS4VERS    EQ '0'.

    IF IT_DD03L-DDTEXT IS INITIAL.
      SELECT SINGLE DDTEXT INTO IT_DD03L-DDTEXT
      FROM DD03T
            WHERE TABNAME   EQ IT_DD03L-TABNAME
            AND   DDLANGUAGE EQ SY-LANGU
            AND   AS4LOCAL   EQ 'A'
            AND   FIELDNAME  EQ IT_DD03L-FIELDNAME.
    ENDIF.

*    IF IT_DD03L-CHECKTABLE EQ '*'.
*      MOVE SPACE TO IT_DD03L-CHECKTABLE.
*    ENDIF.

    MODIFY IT_DD03L INDEX L_TABIX.

    CLEAR IT_DD03L.
  ENDLOOP.

  IF SY-SUBRC EQ 0.
    PERFORM CHECK_CONTROL USING 'X'.
    SORT IT_DD03L BY POSITION.
  ENDIF.
ENDFORM.                    " READ_DD03L
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_PROCESS
*&---------------------------------------------------------------------*
FORM DISPLAY_PROCESS .
  DATAL_TABIX TYPE SY-TABIX.
* WRITE
  LOOP AT IT_DD03L.
    L_TABIX SY-TABIX.
    IF L_TABIX <> 1.
      WRITE/2  IT_DD03L-CHK" AS CHECKBOX.
    ENDIF.
    WRITE:4(30)  IT_DD03L-FIELDNAME,
          40(60IT_DD03L-DDTEXT.
    IF L_TABIX <> 1.
      FORMAT INPUT ON.
*      WRITE:14 IT_DD03L-CONT.
      FORMAT INPUT OFF.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " DISPLAY_PROCESS

*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE .
  WRITE:/1 'Table Field List' COLOR 1.
  FORMAT COLOR 4.
  WRITE:/1 'Table Name : ',
           IT_DD03L-TABNAME+0(30),
           WA_DD02T-DDTEXT+0(30).
  FORMAT COLOR OFF.
  SKIP 1.

ENDFORM.                    " TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE_DURING
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE_DURING .
  WRITE:/1 'Generated Code (UPLOAD)' COLOR 1.
  FORMAT COLOR 4.
  WRITE:/1 'Table Name : ',
           IT_DD03L-TABNAME+0(30),
           WA_DD02T-DDTEXT+0(30).
  FORMAT COLOR OFF.
  SKIP 1.

ENDFORM.                    " TOP_OF_PAGE_DURING
*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
FORM USER_COMMAND .
  CASE SY-UCOMM.
    WHEN 'SALL'.
      SY-LSIND SY-LSIND 1.
      PERFORM CHECK_CONTROL USING 'X'.
      PERFORM DISPLAY_PROCESS.
    WHEN 'DALL'.
      SY-LSIND SY-LSIND 1.
      PERFORM CHECK_CONTROL USING ' '.
      PERFORM DISPLAY_PROCESS.
    WHEN 'GENE'.
      SY-LSIND SY-LSIND 1.
*     Generate Upload Source Code.
      PERFORM GENERATE_UPLOAD_CODE.
*      PERFORM EDIT_GENERATOR_CODE.
*      REFRESH IT_FCODE.
      IT_FCODE-FCODE 'GENE'.
      APPEND IT_FCODE.
      IT_FCODE-FCODE 'SALL'.
      APPEND IT_FCODE.
      IT_FCODE-FCODE 'DALL'.
      APPEND IT_FCODE.
      SET PF-STATUS 'STATUS' EXCLUDING IT_FCODE.
*      LOOP AT IT_UPTAB.
*        WRITE:/1 IT_UPTAB-TEXT.
*      ENDLOOP.
*
*    WHEN 'EXEC'.
      GENERATE SUBROUTINE POOL IT_UPTAB NAME PROG
                                  MESSAGE MSG.
*    PERFORM CHCEK_SYNTAX_ERROR.
      PERFORM DYN1 IN PROGRAM (PROG).
  ENDCASE.

ENDFORM.                    " USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  CHECK_CONTROL
*&---------------------------------------------------------------------*
FORM CHECK_CONTROL  USING    P_CHECK.
  LOOP AT IT_DD03L.
    IF SY-TABIX <> 1.
      IT_DD03L-CHK P_CHECK.
      MODIFY IT_DD03L INDEX SY-TABIX.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " CHECK_CONTROL
*&---------------------------------------------------------------------*
*&      Form  GENERATE_UPLOAD_CODE
*&---------------------------------------------------------------------*
FORM GENERATE_UPLOAD_CODE .
  REFRESH IT_UPTAB.
  IT_UPTAB-TEXT 'PROGRAM ZUP1972.        " UPLOAD PROGRAM SOURCE'.
  APPEND IT_UPTAB.
  CONCATENATE 'TABLES :' IT_DD03L-TABNAME '.' INTO IT_UPTAB-TEXT
  SEPARATED BY SPACE.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =
      'DATA: GT_XLS LIKE ZCASEXCEL OCCURS 0 WITH HEADER LINE.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  'FIELD-SYMBOLS <FS> TYPE ANY.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =
    'DATA: P_FILE LIKE RLGRAP-FILENAME .'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT '* 여기서 DOUBLE CLICK (PICK) 은 작동하지 않습니다.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT '* DATA 선언부 '.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'DATA : BEGIN OF IT_UPTAB OCCURS 0,'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  LOOP AT IT_DD03L WHERE CHK 'X'.
    IF IT_DD03L-FIELDNAME NE '.INCLUDE'.
      CLEAR IT_UPTAB.
      CONCATENATE
      '     ' IT_DD03L-FIELDNAME '(' IT_DD03L-LENG  ')'  ' TYPE C ,'
                                        INTO IT_UPTAB-TEXT+10(80).
      APPEND IT_UPTAB.
    ENDIF.
  ENDLOOP.

  IT_UPTAB-TEXT+6(82' END OF IT_UPTAB.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT '   '.
  APPEND IT_UPTAB.
  IT_UPTAB-TEXT 'DATA : BEGIN OF RESULT OCCURS 0.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  CONCATENATE 'INCLUDE STRUCTURE' IT_DD03L-TABNAME '.'
               INTO IT_UPTAB-TEXT+10(80SEPARATED BY SPACE.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'DATA : END OF RESULT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT '    '.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =
         '* 필요한 CODE는 FORM DYN1 과 ENDFORM 사이에 입력......'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'FORM DYN1.          "삭제 절대금지'.
  APPEND IT_UPTABCLEAR IT_UPTAB.


*  IT_UPTAB-TEXT =  'BREAK-POINT.'.
*  APPEND IT_UPTAB. CLEAR IT_UPTAB.

  IT_UPTAB-TEXT+2(88'CALL FUNCTION ''WS_FILENAME_GET'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'EXPORTING'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'DEF_FILENAME     = '' '''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'DEF_PATH         = '' '''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'MASK             = '',*.*,*.*.'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'IMPORTING'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'FILENAME         = P_FILE'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'EXCEPTIONS'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'INV_WINSYS             = 1'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'NO_BATCH               = 2'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'SELECTION_CANCEL       = 3'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'SELECTION_ERROR        = 4'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'OTHERS                 = 5.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
* EXCEPTIONS
*   INV_WINSYS             = 1
*   NO_BATCH               = 2
*   SELECTION_CANCEL       = 3
*   SELECTION_ERROR        = 4
*   OTHERS                 = 5
  IT_UPTAB-TEXT 'IF SY-SUBRC NE 0.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'MESSAGE S058(ZCA00).'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT 'EXIT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'ENDIF.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

*  CALL FUNCTION 'WS_FILENAME_GET'
*       EXPORTING
*            DEF_FILENAME     = '*.xls'
*            DEF_PATH         = 'C:\temp\'
*            MASK             = ',*.*,*.*.'
*       IMPORTING
*            FILENAME         = P_FILE
*       EXCEPTIONS
*            INV_WINSYS       = 01
*            NO_BATCH         = 02
*            SELECTION_CANCEL = 03
*            SELECTION_ERROR  = 04.

  IT_UPTAB-TEXT+2(88'CALL FUNCTION ''ZCA_EXCEL_TO_INTERNAL_TABLE'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'EXPORTING'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'FILENAME = P_FILE'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'I_BEGIN_COL = ''1'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'I_BEGIN_ROW = ''1'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'I_END_COL = ''256'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'I_END_ROW = ''65536'''.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'TABLES'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'INTERN = GT_XLS'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'EXCEPTIONS'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'INCONSISTENT_PARAMETERS       = 1'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'UPLOAD_OLE                    = 2'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+6(84'OTHERS                        = 3.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  '   '.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'IF GT_XLS[] IS INITIAL.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'MESSAGE S000(ZCA00).'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'ELSE.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'DELETE GT_XLS WHERE ZROW EQ 1.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  'LOOP AT GT_XLS.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  '  CONDENSE GT_XLS-VALUE.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =
  '  ASSIGN COMPONENT GT_XLS-COL OF STRUCTURE IT_UPTAB TO <FS>.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  '  <FS> = GT_XLS-VALUE.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  '  AT END OF ZROW.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  '    APPEND IT_UPTAB. CLEAR IT_UPTAB.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  '  ENDAT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT =  'ENDLOOP.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

*  IT_UPTAB-TEXT+2(88) = 'BREAK-POINT.'.
*  APPEND IT_UPTAB. CLEAR IT_UPTAB.

  IT_UPTAB-TEXT+2(88'LOOP AT IT_UPTAB.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'CLEAR RESULT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+4(86'MOVE-CORRESPONDING IT_UPTAB TO RESULT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT+4(86'APPEND RESULT.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT+2(88'ENDLOOP.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT '   '.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  CONCATENATE 'MODIFY' IT_DD03L-TABNAME 'FROM TABLE RESULT.'
              INTO IT_UPTAB-TEXT+2(88SEPARATED BY SPACE.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'IF SY-SUBRC EQ 0.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT 'MESSAGE S001(ZCA00) WITH'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'SY-DBCNT ''건 갱신했습니다.''.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'ELSE.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT 'MESSAGE S003(ZCA00) WITH'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT '''데이터 갱신을 실패했습니다.''.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'ENDIF.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

  IT_UPTAB-TEXT =  'ENDIF.'.
  APPEND IT_UPTABCLEAR IT_UPTAB.
  IT_UPTAB-TEXT 'ENDFORM .                       "삭제 절대금지'.
  APPEND IT_UPTABCLEAR IT_UPTAB.

ENDFORM.                    " GENERATE_UPLOAD_CODE
*&---------------------------------------------------------------------*
*&      Form  PRINT_GENERATOR_CODE
*&---------------------------------------------------------------------*
FORM EDIT_GENERATOR_CODE.
  CALL FUNCTION 'EDITOR_APPLICATION'
    EXPORTING
      APPLICATION 'BF'
      DISPLAY     ' '
      NAME        'Source Code.....'
    IMPORTING
      FCODE       FCODE
      CHANGED     CHANGED
    TABLES
      CONTENT     IT_UPTAB.

ENDFORM.                               " PRINT_GENERATOR_CODE

댓글 없음:

댓글 쓰기