* (Copyright @2006 Mysingle Digital System Co.Ltd.
* All Rights Reserved|Confidential)
* System Module : ABAP CBO
* Program Description : Table Upload & Download
* Developer : ZOU XIN
* Develop Date : 2006.01.01
* Use Status : Release 1.0
*******************************************************************
REPORT z_cbo_abap_01 NO STANDARD PAGE HEADING.
fcode(4),
END OF tab.
DATA : BEGIN OF itab OCCURS 0,
chk(1) TYPE 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
intlen LIKE dd03l-leng,
END OF itab.
DATA itab1 LIKE itab OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF uptab OCCURS 0,
text(72) TYPE c,
END OF uptab.
DATA: BEGIN OF error_message,
line1(72),
line2(72),
line3(72),
END OF error_message.
DATA : cnt1(8) TYPE c,
fcode LIKE sy-ucomm,
changed LIKE s38e-buf_varied,
prog(8) TYPE c,
msg(120) TYPE c,
er_include LIKE sy-repid,
er_line LIKE sy-index,
er_off LIKE sy-tabix,
er_subrc LIKE sy-subrc.
SET PF-STATUS 'ZOUXIN'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab FROM dd03l
WHERE tabname = tabname
AND as4local = 'A'
ORDER BY position.
itab-chk = 'X'.
PERFORM generate_upload_code.
PERFORM edit_generator_code.
IF sy-ucomm = 'EDIT'.
PERFORM edit_generator_code.
ELSEIF sy-ucomm = 'EXEC'.
PERFORM chcek_syntax_error.
PERFORM dyn1 IN PROGRAM (prog).
ENDIF.
*& Form generate_upload_code
*&---------------------------------------------------------------*
REFRESH uptab.
uptab-text = 'REPORT ZUP19800526.'.
APPEND uptab.
CONCATENATE 'TABLES :' tabname '.' INTO uptab-text
SEPARATED BY space.
APPEND uptab.
uptab-text = 'DATA : BEGIN OF UPTAB OCCURS 0,'.
APPEND uptab.
LOOP AT itab WHERE chk = ''.
CLEAR uptab.
CONCATENATE ' ' itab-fieldname '(' itab-intlen ')' ' TYPE C ,'
INTO uptab-text+10(80).
APPEND uptab.
ENDLOOP.
uptab-text+6(82) = 'END OF UPTAB.'.
APPEND uptab.
uptab-text = 'DATA : BEGIN OF RESULT OCCURS 0.'.
APPEND uptab.
CLEAR uptab.
CONCATENATE 'INCLUDE STRUCTURE' itab-tabname '.'
INTO uptab-text+10(80) SEPARATED BY space.
APPEND uptab.
uptab-text = 'DATA : END OF RESULT.'.
APPEND uptab.
uptab-text = 'FORM DYN1.'.
APPEND uptab.
CLEAR uptab.
uptab-text+2(88) = 'CALL FUNCTION ''UPLOAD'''.
APPEND uptab.
CLEAR uptab.
uptab-text+4(86) = 'EXPORTING'.
APPEND uptab.
CLEAR uptab.
uptab-text+6(84) = 'FILENAME = ''C:/'''.
APPEND uptab.
uptab-text+6(84) = 'FILETYPE = ''DAT'''.
APPEND uptab.
uptab-text+4(86) = 'TABLES'.
APPEND uptab.
CLEAR uptab.
uptab-text+6(84) = 'DATA_TAB = UPTAB.'.
APPEND uptab.
uptab-text+2(88) = 'LOOP AT UPTAB.'.
APPEND uptab.
CLEAR uptab.
uptab-text+4(86) = 'CLEAR RESULT.'.
APPEND uptab.
uptab-text+4(86) = 'MOVE-CORRESPONDING UPTAB TO RESULT.'.
APPEND uptab.
uptab-text+4(86) = 'APPEND RESULT.'.
APPEND uptab.
uptab-text+2(88) = 'ENDLOOP.'.
APPEND uptab.
CLEAR uptab.
CONCATENATE 'INSERT' itab-tabname 'FROM TABLE RESULT.'
INTO uptab-text+2(88) SEPARATED BY space.
APPEND uptab.
uptab-text = 'ENDFORM.' .
APPEND uptab.
CLEAR uptab.
ENDFORM. " generate_upload_code
*& Form edit_generator_code
*&---------------------------------------------------------------*
CALL FUNCTION 'EDITOR_APPLICATION'
EXPORTING
application = 'BF'
display = ' '
name = 'Source Code.....'
IMPORTING
fcode = fcode
changed = changed
TABLES
content = uptab.
LOOP AT uptab.
WRITE:/1 uptab-text.
ENDLOOP.
ENDFORM. " PRINT_GENERATOR_CODE
*& Form chcek_syntax_error
*&---------------------------------------------------------------*
CALL FUNCTION 'EDITOR_SYNTAX_CHECK'
EXPORTING
i_global_check = ' '
i_global_program = ' '
i_program = 'ZUP19800526'
i_r2_check = ' '
i_r2_destination = ' '
i_trdir = ' '
IMPORTING
o_error_include = er_include
o_error_line = er_line
o_error_message = error_message
o_error_offset = er_off
o_error_subrc = er_subrc
TABLES
i_source = uptab.
IF er_subrc <> 0.
er_line = er_line - 2.
WRITE:/1 'Error Line : ',er_line.
WRITE:/1 error_message-line1,error_message-line2,
error_message-line3.
STOP.
ENDIF.
ENDFORM. " chcek_syntax_error