<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Report in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851476#M668216</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GUI_DOWNLOAD is used for sap to excel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GUI_UPLOAD is used for excel to sap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;below is a sample programme for downloading and uploading from excel to sap or sap to excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; This program once created will allow you to download or upload table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data from any SAP table. It has the functionality to allow you to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select whether data should be appended or original data cleaed before&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;inserting new data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is very useful when attempting to transfer data from one client&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to another&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;REPORT ytest5 LINE-SIZE 80&lt;/P&gt;&lt;P&gt;                LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                NO STANDARD PAGE HEADING.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;TABLES: dd02l, dd03l.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.&lt;/P&gt;&lt;P&gt;PARAMETERS: tabname     LIKE dd02l-tabname OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b01.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-b03.&lt;/P&gt;&lt;P&gt;PARAMETERS: path(30)    TYPE c DEFAULT 'C:\SAPWorkdir'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b03.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b04 WITH FRAME TITLE text-b04.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_exp RADIOBUTTON GROUP radi,&lt;/P&gt;&lt;P&gt;            p_imp RADIOBUTTON GROUP radi,&lt;/P&gt;&lt;P&gt;            p_clear     AS CHECKBOX.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b04.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b00.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: q_return     LIKE syst-subrc,&lt;/P&gt;&lt;P&gt;      err_flag(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      answer(1)    TYPE c,&lt;/P&gt;&lt;P&gt;      w_text1(62)  TYPE c,&lt;/P&gt;&lt;P&gt;      w_text2(40)  TYPE c,&lt;/P&gt;&lt;P&gt;      winfile(128) TYPE c,&lt;/P&gt;&lt;P&gt;      w_system(40) TYPE c,&lt;/P&gt;&lt;P&gt;      winsys(7)    TYPE c,&lt;/P&gt;&lt;P&gt;      zname(8)     TYPE c,&lt;/P&gt;&lt;P&gt;      w_line(80)   TYPE c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF textpool_tab OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE textpool.&lt;/P&gt;&lt;P&gt;DATA : END OF textpool_tab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table for subroutine pool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : itab(80) OCCURS 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  PERFORM check_system.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON tabname.&lt;/P&gt;&lt;P&gt;  PERFORM check_table_exists.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM init_report_texts.&lt;/P&gt;&lt;P&gt;  PERFORM request_confirmation.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF answer = 'J'.&lt;/P&gt;&lt;P&gt;    PERFORM execute_program_function.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  PERFORM process_top_of_page.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;forms&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM CHECK_TABLE_EXISTS                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_table_exists.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM dd02l&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF dd02l&lt;/P&gt;&lt;P&gt;  WHERE tabname = tabname.&lt;/P&gt;&lt;P&gt;  CHECK syst-subrc NE 0.&lt;/P&gt;&lt;P&gt;  MESSAGE e402(mo) WITH tabname.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM INIT_REPORT_TEXTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM init_report_texts.&lt;/P&gt;&lt;P&gt;  READ TEXTPOOL syst-repid&lt;/P&gt;&lt;P&gt;  INTO textpool_tab LANGUAGE syst-langu.&lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab&lt;/P&gt;&lt;P&gt;  WHERE id EQ 'R' OR id EQ 'T'.&lt;/P&gt;&lt;P&gt;    REPLACE '&amp;amp;1............................'&lt;/P&gt;&lt;P&gt;    WITH tabname INTO textpool_tab-entry.&lt;/P&gt;&lt;P&gt;    MODIFY textpool_tab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM REQUEST_CONFIRMATION                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM request_confirmation.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;import selected, confirm action&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_imp = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  build message text for popup&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CONCATENATE 'Data for table'&lt;/P&gt;&lt;P&gt;                 tabname&lt;/P&gt;&lt;P&gt;                 'will be imported' INTO w_text1 SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check if delete existing selected, and change message text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF p_clear = ' '.&lt;/P&gt;&lt;P&gt;      w_text2 = 'and appended to the end of existing data'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      w_text2 = 'Existing Data will be deleted'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              defaultoption  = 'N'&lt;/P&gt;&lt;P&gt;              textline1      = w_text1&lt;/P&gt;&lt;P&gt;              textline2      = w_text2&lt;/P&gt;&lt;P&gt;              titel          = 'Confirm Import of Data'&lt;/P&gt;&lt;P&gt;              cancel_display = ' '&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              answer         = answer&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS         = 1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  export selected, set answer to yes so export can continue&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    answer = 'J'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM EXECUTE_PROGRAM_FUNCTION                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM execute_program_function.&lt;/P&gt;&lt;P&gt;  PERFORM build_file_name.&lt;/P&gt;&lt;P&gt;  CLEAR: q_return,err_flag.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_imp = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM check_file_exists.&lt;/P&gt;&lt;P&gt;    CHECK err_flag = ' '.&lt;/P&gt;&lt;P&gt;    PERFORM func_import.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM func_export.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BUILD_FILE_NAME                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_file_name.&lt;/P&gt;&lt;P&gt;  MOVE path TO winfile.&lt;/P&gt;&lt;P&gt;  WRITE '\' TO winfile+30.&lt;/P&gt;&lt;P&gt;  WRITE tabname TO winfile+31.&lt;/P&gt;&lt;P&gt;  WRITE '.TAB' TO winfile+61(4).&lt;/P&gt;&lt;P&gt;  CONDENSE winfile NO-GAPS.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM CHECK_FILE_EXISTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_file_exists.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_QUERY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            filename = winfile&lt;/P&gt;&lt;P&gt;            query    = 'FE'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            return   = q_return&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS   = 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF syst-subrc NE 0 OR q_return NE 1.&lt;/P&gt;&lt;P&gt;    err_flag = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FORM func_export                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM func_export.&lt;/P&gt;&lt;P&gt;  CLEAR itab. REFRESH itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'PROGRAM SUBPOOL.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORM DOWNLOAD.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CONCATENATE 'SELECT * FROM'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              'INTO TABLE IT_TAB.' INTO w_line  SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'CALL FUNCTION ''WS_DOWNLOAD''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'EXPORTING' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'filename = ' ''''&lt;/P&gt;&lt;P&gt;              winfile '''' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'filetype = ''DAT''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'TABLES' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA_TAB = IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'WRITE: /1 syst-vline,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '''EXPORT'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '15 ''data line(s) have been exported'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '68 syst-index,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '80 syst-vline.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ULINE.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'ENDFORM.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GENERATE SUBROUTINE POOL itab NAME zname.&lt;/P&gt;&lt;P&gt;  PERFORM download IN PROGRAM (zname).&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM func_import                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM func_import.&lt;/P&gt;&lt;P&gt;  CLEAR itab. REFRESH itab.&lt;/P&gt;&lt;P&gt;  APPEND 'PROGRAM SUBPOOL.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORM UPLOAD.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB2 OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB2.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'CALL FUNCTION ''WS_UPLOAD''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'EXPORTING' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'filename = ' ''''&lt;/P&gt;&lt;P&gt;              winfile '''' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'filetype = ''DAT''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'TABLES' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA_TAB = IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_clear = 'X'.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'SELECT * FROM'&lt;/P&gt;&lt;P&gt;                tabname&lt;/P&gt;&lt;P&gt;                'INTO TABLE IT_TAB2.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    APPEND 'LOOP AT IT_TAB2.' TO itab.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'DELETE'&lt;/P&gt;&lt;P&gt;                tabname&lt;/P&gt;&lt;P&gt;                'FROM IT_TAB2.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;    APPEND 'ENDLOOP.' TO itab.&lt;/P&gt;&lt;P&gt;    APPEND 'COMMIT WORK.' TO itab.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'LOOP AT IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'MODIFY'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              'FROM IT_TAB.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ENDLOOP.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'WRITE: /1 syst-vline,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '''IMPORT'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '15 ''data line(s) have been imported'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '68 syst-index,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '80 syst-vline.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ULINE.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'ENDFORM.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GENERATE SUBROUTINE POOL itab NAME zname.&lt;/P&gt;&lt;P&gt;  PERFORM upload IN PROGRAM (zname).&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form  CHECK_SYSTEM&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           Check users workstation is running&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WINDOWS 95, or WINDOWS NT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OS/2 uses 8.3 file names which are no good for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           this application as filenames created are 30 char&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           same as table name.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           You could change the logic to only use the first 8 chars&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           of the table name for the filename, but you could possibly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           get problems if users had exported already with a table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           with the same first 8 chars.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           As an alternate method you could request the user to input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           the full path including filename and remove the logic to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           build the path using the table name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_system.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_QUERY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            query  = 'WS'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            return = winsys.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF winsys NE 'WN32_95'.&lt;/P&gt;&lt;P&gt;    WRITE: 'Windows NT or Windows 95/98 is required'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               " CHECK_SYSTEM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM PROCESS_TOP_OF_PAGE                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_top_of_page.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CONCATENATE syst-sysid&lt;/P&gt;&lt;P&gt;              syst-saprl&lt;/P&gt;&lt;P&gt;              syst-host INTO w_system SEPARATED BY space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WRITE : AT /1(syst-linsz) w_system CENTERED.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-uname.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-repid(008).&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'R'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-datum.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-tcode(004).&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'T'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-uzeit.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz 'Page', syst-pagno.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'H'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Oct 2007 11:01:28 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-03T11:01:28Z</dc:date>
    <item>
      <title>Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851474#M668214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to develop a y-report in which i have to upload data from notepad and then that data should go into a ytable.&lt;/P&gt;&lt;P&gt;In the notepad i have 4 fields and suppose 4 to 5 records. I have created a y-table having the same 4 fields. Now when i execute this program , all the data records from the notepad should go into the y-table.&lt;/P&gt;&lt;P&gt;Please provide the code for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried wiritng this code.&lt;/P&gt;&lt;P&gt;But dont know why isnt it working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YSCADA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : SCADA TYPE STRING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;       WERKS LIKE YSCADA-WERKS,&lt;/P&gt;&lt;P&gt;       ARBPL LIKE YSCADA-ARBPL,&lt;/P&gt;&lt;P&gt;       TIME LIKE YSCADA-TIME,&lt;/P&gt;&lt;P&gt;       UNIT LIKE YSCADA-UNIT,&lt;/P&gt;&lt;P&gt;       END OF ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; PARAMETERS: PAR LIKE RLGRAP-FILENAME OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SCADA = PAR.&lt;/P&gt;&lt;P&gt;  PERFORM UPLOAD_FILE TABLES ITAB USING  SCADA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR PAR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM ASSIGN_FILENAME USING PAR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; ITAB1-WERKS = ITAB-WERKS.&lt;/P&gt;&lt;P&gt; ITAB1-ARBPL = ITAB-ARBPL.&lt;/P&gt;&lt;P&gt; ITAB1-TIME = ITAB1-TIME.&lt;/P&gt;&lt;P&gt; ITAB1-UNIT = ITAB-UNIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT ITAB1.&lt;/P&gt;&lt;P&gt;WRITE /: SY-ULINE,&lt;/P&gt;&lt;P&gt;         ITAB1-WERKS ,&lt;/P&gt;&lt;P&gt;         ITAB1-ARBPL ,&lt;/P&gt;&lt;P&gt;         ITAB1-TIME ,&lt;/P&gt;&lt;P&gt;         ITAB1-UNIT ,&lt;/P&gt;&lt;P&gt;        SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="11" type="ul"&gt;&lt;P&gt;ASSIGN FILENAME*************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;FORM ASSIGN_FILENAME  USING  P_FILE.&lt;/P&gt;&lt;P&gt;CLEAR P_FILE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;P&gt;   FILE_NAME           = P_FILE&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS    = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM UPLOAD_FILE  TABLES   P_TAB&lt;/P&gt;&lt;P&gt;                  USING    P_FILE_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    FILENAME                      = P_FILE_NAME&lt;/P&gt;&lt;P&gt;    FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;    HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                      = P_TAB&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;   FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;   NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;   GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;   INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;   NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;   UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;   BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;   HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;   SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;   HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;   UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;   ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;   DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;   DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;   DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;   OTHERS                        = 17&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:56:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851474#M668214</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T10:56:02Z</dc:date>
    </item>
    <item>
      <title>Re: Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851475#M668215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;USE THE FUNCTION MODULE &amp;lt;b&amp;gt;GUI_UPLOAD&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 10:57:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851475#M668215</guid>
      <dc:creator>hymavathi_oruganti</dc:creator>
      <dc:date>2007-10-03T10:57:41Z</dc:date>
    </item>
    <item>
      <title>Re: Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851476#M668216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GUI_DOWNLOAD is used for sap to excel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GUI_UPLOAD is used for excel to sap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;below is a sample programme for downloading and uploading from excel to sap or sap to excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; This program once created will allow you to download or upload table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data from any SAP table. It has the functionality to allow you to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select whether data should be appended or original data cleaed before&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;inserting new data.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is very useful when attempting to transfer data from one client&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to another&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;REPORT ytest5 LINE-SIZE 80&lt;/P&gt;&lt;P&gt;                LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                NO STANDARD PAGE HEADING.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;TABLES: dd02l, dd03l.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.&lt;/P&gt;&lt;P&gt;PARAMETERS: tabname     LIKE dd02l-tabname OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b01.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-b03.&lt;/P&gt;&lt;P&gt;PARAMETERS: path(30)    TYPE c DEFAULT 'C:\SAPWorkdir'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b03.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b04 WITH FRAME TITLE text-b04.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_exp RADIOBUTTON GROUP radi,&lt;/P&gt;&lt;P&gt;            p_imp RADIOBUTTON GROUP radi,&lt;/P&gt;&lt;P&gt;            p_clear     AS CHECKBOX.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b04.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b00.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: q_return     LIKE syst-subrc,&lt;/P&gt;&lt;P&gt;      err_flag(1)  TYPE c,&lt;/P&gt;&lt;P&gt;      answer(1)    TYPE c,&lt;/P&gt;&lt;P&gt;      w_text1(62)  TYPE c,&lt;/P&gt;&lt;P&gt;      w_text2(40)  TYPE c,&lt;/P&gt;&lt;P&gt;      winfile(128) TYPE c,&lt;/P&gt;&lt;P&gt;      w_system(40) TYPE c,&lt;/P&gt;&lt;P&gt;      winsys(7)    TYPE c,&lt;/P&gt;&lt;P&gt;      zname(8)     TYPE c,&lt;/P&gt;&lt;P&gt;      w_line(80)   TYPE c.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF textpool_tab OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE textpool.&lt;/P&gt;&lt;P&gt;DATA : END OF textpool_tab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table for subroutine pool&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : itab(80) OCCURS 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  PERFORM check_system.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON tabname.&lt;/P&gt;&lt;P&gt;  PERFORM check_table_exists.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM init_report_texts.&lt;/P&gt;&lt;P&gt;  PERFORM request_confirmation.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  IF answer = 'J'.&lt;/P&gt;&lt;P&gt;    PERFORM execute_program_function.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  PERFORM process_top_of_page.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;forms&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM CHECK_TABLE_EXISTS                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_table_exists.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM dd02l&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF dd02l&lt;/P&gt;&lt;P&gt;  WHERE tabname = tabname.&lt;/P&gt;&lt;P&gt;  CHECK syst-subrc NE 0.&lt;/P&gt;&lt;P&gt;  MESSAGE e402(mo) WITH tabname.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM INIT_REPORT_TEXTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM init_report_texts.&lt;/P&gt;&lt;P&gt;  READ TEXTPOOL syst-repid&lt;/P&gt;&lt;P&gt;  INTO textpool_tab LANGUAGE syst-langu.&lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab&lt;/P&gt;&lt;P&gt;  WHERE id EQ 'R' OR id EQ 'T'.&lt;/P&gt;&lt;P&gt;    REPLACE '&amp;amp;1............................'&lt;/P&gt;&lt;P&gt;    WITH tabname INTO textpool_tab-entry.&lt;/P&gt;&lt;P&gt;    MODIFY textpool_tab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM REQUEST_CONFIRMATION                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM request_confirmation.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;import selected, confirm action&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_imp = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  build message text for popup&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CONCATENATE 'Data for table'&lt;/P&gt;&lt;P&gt;                 tabname&lt;/P&gt;&lt;P&gt;                 'will be imported' INTO w_text1 SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  check if delete existing selected, and change message text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF p_clear = ' '.&lt;/P&gt;&lt;P&gt;      w_text2 = 'and appended to the end of existing data'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      w_text2 = 'Existing Data will be deleted'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              defaultoption  = 'N'&lt;/P&gt;&lt;P&gt;              textline1      = w_text1&lt;/P&gt;&lt;P&gt;              textline2      = w_text2&lt;/P&gt;&lt;P&gt;              titel          = 'Confirm Import of Data'&lt;/P&gt;&lt;P&gt;              cancel_display = ' '&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              answer         = answer&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS         = 1.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  export selected, set answer to yes so export can continue&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    answer = 'J'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM EXECUTE_PROGRAM_FUNCTION                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM execute_program_function.&lt;/P&gt;&lt;P&gt;  PERFORM build_file_name.&lt;/P&gt;&lt;P&gt;  CLEAR: q_return,err_flag.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_imp = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM check_file_exists.&lt;/P&gt;&lt;P&gt;    CHECK err_flag = ' '.&lt;/P&gt;&lt;P&gt;    PERFORM func_import.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM func_export.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BUILD_FILE_NAME                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_file_name.&lt;/P&gt;&lt;P&gt;  MOVE path TO winfile.&lt;/P&gt;&lt;P&gt;  WRITE '\' TO winfile+30.&lt;/P&gt;&lt;P&gt;  WRITE tabname TO winfile+31.&lt;/P&gt;&lt;P&gt;  WRITE '.TAB' TO winfile+61(4).&lt;/P&gt;&lt;P&gt;  CONDENSE winfile NO-GAPS.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM CHECK_FILE_EXISTS                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_file_exists.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_QUERY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            filename = winfile&lt;/P&gt;&lt;P&gt;            query    = 'FE'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            return   = q_return&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS   = 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF syst-subrc NE 0 OR q_return NE 1.&lt;/P&gt;&lt;P&gt;    err_flag = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FORM func_export                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM func_export.&lt;/P&gt;&lt;P&gt;  CLEAR itab. REFRESH itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'PROGRAM SUBPOOL.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORM DOWNLOAD.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CONCATENATE 'SELECT * FROM'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              'INTO TABLE IT_TAB.' INTO w_line  SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'CALL FUNCTION ''WS_DOWNLOAD''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'EXPORTING' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'filename = ' ''''&lt;/P&gt;&lt;P&gt;              winfile '''' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'filetype = ''DAT''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'TABLES' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA_TAB = IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'WRITE: /1 syst-vline,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '''EXPORT'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '15 ''data line(s) have been exported'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '68 syst-index,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '80 syst-vline.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ULINE.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'ENDFORM.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GENERATE SUBROUTINE POOL itab NAME zname.&lt;/P&gt;&lt;P&gt;  PERFORM download IN PROGRAM (zname).&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM func_import                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM func_import.&lt;/P&gt;&lt;P&gt;  CLEAR itab. REFRESH itab.&lt;/P&gt;&lt;P&gt;  APPEND 'PROGRAM SUBPOOL.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORM UPLOAD.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: BEGIN OF IT_TAB2 OCCURS 0.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'INCLUDE STRUCTURE'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              '.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA: END OF IT_TAB2.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'CALL FUNCTION ''WS_UPLOAD''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'EXPORTING' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'filename = ' ''''&lt;/P&gt;&lt;P&gt;              winfile '''' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'filetype = ''DAT''' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'TABLES' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'DATA_TAB = IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF p_clear = 'X'.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'SELECT * FROM'&lt;/P&gt;&lt;P&gt;                tabname&lt;/P&gt;&lt;P&gt;                'INTO TABLE IT_TAB2.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    APPEND 'LOOP AT IT_TAB2.' TO itab.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'DELETE'&lt;/P&gt;&lt;P&gt;                tabname&lt;/P&gt;&lt;P&gt;                'FROM IT_TAB2.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;    APPEND 'ENDLOOP.' TO itab.&lt;/P&gt;&lt;P&gt;    APPEND 'COMMIT WORK.' TO itab.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'LOOP AT IT_TAB.' TO itab.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'MODIFY'&lt;/P&gt;&lt;P&gt;              tabname&lt;/P&gt;&lt;P&gt;              'FROM IT_TAB.' INTO w_line SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  APPEND w_line TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ENDLOOP.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'DESCRIBE TABLE IT_TAB LINES sy-index.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'FORMAT COLOR COL_NORMAL INTENSIFIED OFF.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'WRITE: /1 syst-vline,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '''IMPORT'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '15 ''data line(s) have been imported'',' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '68 syst-index,' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND '80 syst-vline.' TO itab.&lt;/P&gt;&lt;P&gt;  APPEND 'ULINE.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND 'ENDFORM.' TO itab.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  GENERATE SUBROUTINE POOL itab NAME zname.&lt;/P&gt;&lt;P&gt;  PERFORM upload IN PROGRAM (zname).&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form  CHECK_SYSTEM&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           Check users workstation is running&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WINDOWS 95, or WINDOWS NT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OS/2 uses 8.3 file names which are no good for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           this application as filenames created are 30 char&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           same as table name.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           You could change the logic to only use the first 8 chars&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           of the table name for the filename, but you could possibly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           get problems if users had exported already with a table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           with the same first 8 chars.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           As an alternate method you could request the user to input&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           the full path including filename and remove the logic to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           build the path using the table name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_system.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_QUERY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            query  = 'WS'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            return = winsys.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF winsys NE 'WN32_95'.&lt;/P&gt;&lt;P&gt;    WRITE: 'Windows NT or Windows 95/98 is required'.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                               " CHECK_SYSTEM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM PROCESS_TOP_OF_PAGE                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_top_of_page.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CONCATENATE syst-sysid&lt;/P&gt;&lt;P&gt;              syst-saprl&lt;/P&gt;&lt;P&gt;              syst-host INTO w_system SEPARATED BY space.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WRITE : AT /1(syst-linsz) w_system CENTERED.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-uname.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-repid(008).&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'R'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-datum.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-tcode(004).&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'T'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry CENTERED.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  WRITE : AT 1 syst-vline, syst-uzeit.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz - 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz 'Page', syst-pagno.&lt;/P&gt;&lt;P&gt;  syst-linsz = syst-linsz + 11.&lt;/P&gt;&lt;P&gt;  WRITE : AT syst-linsz syst-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  LOOP AT textpool_tab WHERE id EQ 'H'.&lt;/P&gt;&lt;P&gt;    WRITE : AT /1(syst-linsz) textpool_tab-entry.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 11:01:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851476#M668216</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T11:01:28Z</dc:date>
    </item>
    <item>
      <title>Re: Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851477#M668217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Priti,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use UPDATE dbtab FROM TABLE itab. after ur itab is populated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful,&lt;/P&gt;&lt;P&gt;Karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 11:03:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851477#M668217</guid>
      <dc:creator>former_member189629</dc:creator>
      <dc:date>2007-10-03T11:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851478#M668218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Upload Tab delimited file from PC into internal table&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP code for uploading a TAB delimited file into an internal table. See code below for structures. The&lt;/P&gt;&lt;P&gt;code is base on uploading a simple txt file.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZUPLOADTAB                                                  *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Example of Uploading tab delimited file                             *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zuploadtab                    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_infile  LIKE rlgrap-filename&lt;/P&gt;&lt;P&gt;                        OBLIGATORY DEFAULT  '/usr/sap/'..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA: ld_file LIKE rlgrap-filename.&lt;/P&gt;&lt;P&gt;DATA: gd_file type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal tabe to store upload data&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_record,&lt;/P&gt;&lt;P&gt;    name1 LIKE pa0002-vorna,&lt;/P&gt;&lt;P&gt;    name2 LIKE pa0002-name2,&lt;/P&gt;&lt;P&gt;    age   TYPE i,&lt;/P&gt;&lt;P&gt;    END OF t_record.&lt;/P&gt;&lt;P&gt;DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;      wa_record TYPE t_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table to upload data into&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_datatab OCCURS 0,&lt;/P&gt;&lt;P&gt;  row(500) TYPE c,&lt;/P&gt;&lt;P&gt; END OF it_datatab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Text version of data table&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_uploadtxt,&lt;/P&gt;&lt;P&gt;  name1(10) TYPE c,&lt;/P&gt;&lt;P&gt;  name2(15) TYPE c,&lt;/P&gt;&lt;P&gt;  age(5)  TYPE c,&lt;/P&gt;&lt;P&gt; END OF t_uploadtxt.&lt;/P&gt;&lt;P&gt;DATA: wa_uploadtxt TYPE t_uploadtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*String value to data in initially.&lt;/P&gt;&lt;P&gt;DATA: wa_string(255) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: con_tab TYPE x VALUE '09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If you have Unicode check active in program attributes then you will&lt;/P&gt;&lt;P&gt;*need to declare constants as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*class cl_abap_char_utilities definition load.&lt;/P&gt;&lt;P&gt;*constants:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   con_tab  type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFILE.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_infile.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            def_filename     = p_infile&lt;/P&gt;&lt;P&gt;            mask             = ',*.txt.'&lt;/P&gt;&lt;P&gt;            mode             = 'O'&lt;/P&gt;&lt;P&gt;            title            = 'Upload File'(078)&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            filename         = p_infile&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            inv_winsys       = 1&lt;/P&gt;&lt;P&gt;            no_batch         = 2&lt;/P&gt;&lt;P&gt;            selection_cancel = 3&lt;/P&gt;&lt;P&gt;            selection_error  = 4&lt;/P&gt;&lt;P&gt;            OTHERS           = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*START-OF-SELECTION&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  gd_file = p_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = gd_file&lt;/P&gt;&lt;P&gt;      has_field_separator     = 'X'  "file is TAB delimited&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_record&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      write: 'Error ', sy-subrc, 'returned from GUI_UPLOAD FM'.&lt;/P&gt;&lt;P&gt;      skip.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Alternative method, where by you split fields at each TAB after you &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;have returned the data. No point unless you dont have access to &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUI_UPLOAD but just included for information  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           filename        = gd_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           filetype        = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           data_tab        = it_datatab  "ITBL_IN_RECORD[]&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           file_open_error = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           OTHERS          = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT it_datatab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR: wa_string, wa_uploadtxt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     wa_string = it_datatab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SPLIT wa_string AT con_tab INTO wa_uploadtxt-name1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     wa_uploadtxt-name2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     wa_uploadtxt-age.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE-CORRESPONDING wa_uploadtxt TO wa_record.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND wa_record TO it_record.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*!! Text data is now contained within the internal table IT_RECORD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display report data for illustration purposes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT it_record INTO wa_record.&lt;/P&gt;&lt;P&gt;  WRITE:/     sy-vline,&lt;/P&gt;&lt;P&gt;         (10) wa_record-name1, sy-vline,&lt;/P&gt;&lt;P&gt;         (10) wa_record-name2, sy-vline,&lt;/P&gt;&lt;P&gt;         (10) wa_record-age, sy-vline.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward if usefull&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 11:04:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851478#M668218</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T11:04:22Z</dc:date>
    </item>
    <item>
      <title>Re: Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851479#M668219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;check this&lt;/P&gt;&lt;P&gt;REPORT YSCADA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : SCADA TYPE STRING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;WERKS LIKE YSCADA-WERKS,&lt;/P&gt;&lt;P&gt;ARBPL LIKE YSCADA-ARBPL,&lt;/P&gt;&lt;P&gt;TIME LIKE YSCADA-TIME,&lt;/P&gt;&lt;P&gt;UNIT LIKE YSCADA-UNIT,&lt;/P&gt;&lt;P&gt;END OF ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: PAR LIKE RLGRAP-FILENAME OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR PAR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM ASSIGN_FILENAME USING PAR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;PERFORM UPLOAD_FILE TABLES ITAB USING SCADA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ztab-WERKS = ITAB-WERKS.&lt;/P&gt;&lt;P&gt;Ztab-ARBPL = ITAB-ARBPL.&lt;/P&gt;&lt;P&gt;Ztab-TIME = ITAB1-TIME.&lt;/P&gt;&lt;P&gt;Ztab-UNIT = ITAB-UNIT.&lt;/P&gt;&lt;P&gt;modify ZTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT ITAB.&lt;/P&gt;&lt;P&gt;WRITE /: SY-ULINE,&lt;/P&gt;&lt;P&gt;ITAB-WERKS ,&lt;/P&gt;&lt;P&gt;ITAB-ARBPL ,&lt;/P&gt;&lt;P&gt;ITAB-TIME ,&lt;/P&gt;&lt;P&gt;ITAB1-UNIT ,&lt;/P&gt;&lt;P&gt;SY-ULINE.&lt;/P&gt;&lt;P&gt;ENDLOOP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ASSIGN_FILENAME USING P_FILE.&lt;/P&gt;&lt;P&gt;CLEAR P_FILE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;FILE_NAME = P_FILE&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM UPLOAD_FILE TABLES P_TAB&lt;/P&gt;&lt;P&gt;USING P_FILE_NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FILENAME = P_FILE_NAME&lt;/P&gt;&lt;P&gt;FILETYPE = 'ASC'&lt;/P&gt;&lt;P&gt;HAS_FIELD_SEPARATOR = 'X'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;DATA_TAB = ITAB&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;FILE_OPEN_ERROR = 1&lt;/P&gt;&lt;P&gt;FILE_READ_ERROR = 2&lt;/P&gt;&lt;P&gt;NO_BATCH = 3&lt;/P&gt;&lt;P&gt;GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;INVALID_TYPE = 5&lt;/P&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;P&gt;UNKNOWN_ERROR = 7&lt;/P&gt;&lt;P&gt;BAD_DATA_FORMAT = 8&lt;/P&gt;&lt;P&gt;HEADER_NOT_ALLOWED = 9&lt;/P&gt;&lt;P&gt;SEPARATOR_NOT_ALLOWED = 10&lt;/P&gt;&lt;P&gt;HEADER_TOO_LONG = 11&lt;/P&gt;&lt;P&gt;UNKNOWN_DP_ERROR = 12&lt;/P&gt;&lt;P&gt;ACCESS_DENIED = 13&lt;/P&gt;&lt;P&gt;DP_OUT_OF_MEMORY = 14&lt;/P&gt;&lt;P&gt;DISK_FULL = 15&lt;/P&gt;&lt;P&gt;DP_TIMEOUT = 16&lt;/P&gt;&lt;P&gt;OTHERS = 17&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2007 11:04:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report/m-p/2851479#M668219</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-03T11:04:59Z</dc:date>
    </item>
  </channel>
</rss>

