How to download  data into XLSX file in ABAP ECC 6.0 using FM: GUI_DOWNLOAD or any other FunctionModules

Hi ABAP Exterts,
Any one help on this , there is a requirement to download the data into XLSX file only.
I am able to to download the data into XLS file using the FM: GUI_DOWNLOAD in SAP ECC 6.0and also opening the file . But when i download the data into XLSX file . I am able to download the data into GUI_DOWNLOAD. But while opening the file i am getting the below mentioned error.
'Excel cannot open the file 'filename.xlsx' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file'
Ok buttom is coming not able to open the file.
When i use the FM: SAP_CONVERT_TO_XLS_FORMAT to download the XLS it self it is going abap DUMP that file type error.
Any one help  any Function Module or how to download data through abap programing into XLSX file.
Thanks.
Murali.
Message was edited by: Matthew Billingham - adjusted wording...

If you want to download your ALV to an .XLXS format file, with all the formatting intact, please try the following code. I have tried to create a custom Function module Z_EXCEL_DOWNLOAD_TEST wherein I pass all the callback variables, the final ALV internal table and all the ALV details like field catalog, sort, layout, event list and so on, along with the concatenated file path and file name in I_FILE. I have used a custom class ZCL_SALVEXPORT_XML which is a copy of the standard class CL_SALV_EXPORT_XML_DIALOG, with few modifications in Method: EXECUTE and Method: DOWNLOAD. The methods where I have modified the code are also shown at the end.
****************Global declarations***********************
TYPE-POOLS: slis,
kkblo.
TYPES: t_fccls(1) TYPE c OCCURS 0.
TYPES: BEGIN OF ty_nosum,
fieldname     TYPE kkblo_fieldname,           "Field name
tabname       TYPE kkblo_tabname,             "Table name
fieldname_dep TYPE kkblo_fieldname,           "Field name
tabname_dep   TYPE kkblo_tabname,             "Table name
index         TYPE sy-index,                  "Index
END OF ty_nosum.
TYPES: t_nosum TYPE TABLE OF ty_nosum INITIAL SIZE 0 WITH NON-UNIQUE DEFAULT KEY.
TYPES: BEGIN OF ty_dep_field,
s_dep_fieldcat TYPE kkblo_fieldcat,            "Field cat
t_ref_fieldcat TYPE kkblo_t_fieldcat,          "Field cat
END OF ty_dep_field.
TYPES: BEGIN OF ty_ref_field,
s_ref_fieldcat TYPE kkblo_fieldcat,           "Field cat
s_dep_fieldcat TYPE kkblo_fieldcat,           "Field cat
END OF ty_ref_field.
TYPES: t_dep_field TYPE ty_dep_field OCCURS 0.        "
TYPES: t_ref_field TYPE ty_ref_field OCCURS 0.
TYPES: BEGIN OF ty_memory,
object(20)  TYPE c,                        "Object
memcount(4) TYPE c,                        "count
END OF ty_memory.
*ALV Customer Wrapper
TYPES: BEGIN OF ty_type_header_info,
tabname   TYPE kkblo_tabname,            "Table name
fieldname TYPE kkblo_fieldname,          "Field name
sequence  TYPE i,                        "Sequence
field     TYPE char80,                    "Field
pagno     TYPE sypagno,                   "Page num
linno     TYPE sy-linno,                  "Current Line in List
colno     TYPE sy-colno,                  "Current List Column
END   OF ty_type_header_info,
t_type_header_info TYPE SORTED TABLE OF ty_type_header_info
WITH UNIQUE KEY tabname fieldname.
TYPES: BEGIN OF ty_type_row_info,
tabname   TYPE kkblo_tabname,            "Table name
tabindex  TYPE syindex,                  "Index
field     TYPE char80,                   "Field name
pagno     TYPE sypagno,                  "Page num
linno     TYPE sy-linno,                 "Current Line in List
colno     TYPE sy-colno,                 "Current List Column
END   OF ty_type_row_info,
t_type_row_info TYPE SORTED TABLE OF ty_type_row_info
WITH UNIQUE KEY tabname tabindex.
TYPES: BEGIN OF ty_type_sel_header,
tabname   TYPE kkblo_tabname,           "table name
fieldname TYPE kkblo_fieldname,         "field name
END   OF ty_type_sel_header,
t_type_sel_header TYPE SORTED TABLE OF ty_type_sel_header
WITH UNIQUE KEY tabname fieldname.
TYPES: BEGIN OF ty_type_sel_row,
tabname   TYPE kkblo_tabname,
tabindex  TYPE syindex,
END   OF ty_type_sel_row,
t_type_sel_row TYPE SORTED TABLE OF ty_type_sel_row
WITH UNIQUE KEY tabname tabindex.
TYPES: BEGIN OF ty_type_sel_cell,
tabname   TYPE kkblo_tabname,
tabindex  TYPE syindex,
fieldname TYPE kkblo_fieldname,
END   OF ty_type_sel_cell.
TYPES: BEGIN OF ty_type_selections,
t_row_info         TYPE t_type_row_info,
t_header_info      TYPE t_type_header_info,
t_selected_headers TYPE t_type_sel_header,
t_selected_rows    TYPE t_type_sel_row,
s_current_cell     TYPE ty_type_sel_cell,
set_headers        TYPE sap_bool,
set_rows           TYPE sap_bool,
set_current_cell   TYPE sap_bool,
END   OF ty_type_selections.
TYPES: BEGIN OF ty_stack3,
r_grid         TYPE REF TO cl_gui_alv_grid,        "Y6DK050176
r_salv_adapter TYPE REF TO if_salv_adapter,
s_selections   TYPE ty_type_selections,
r_print_state  TYPE REF TO if_alv_print_parameter_proxy, "Y6DK075821
suppress_empty_data TYPE abap_bool,
END OF ty_stack3.
TYPES: t_stack3 TYPE ty_stack3 OCCURS 0.
TYPES: BEGIN OF ty_stack,
i_callback_program       TYPE sy-repid,
i_callback_user_command  TYPE kkblo_formname,
i_callback_top_of_page   TYPE kkblo_formname,
i_callback_top_of_list   TYPE kkblo_formname,
i_callback_end_of_page   TYPE kkblo_formname,
i_callback_end_of_list   TYPE kkblo_formname,
i_callback_pf_status_set TYPE kkblo_formname,
i_callback_fieldcat_save TYPE kkblo_formname,
i_callback_layout_save   TYPE kkblo_formname,
i_tabname                TYPE kkblo_tabname,
i_tabname_slave          TYPE kkblo_tabname,
is_keyinfo               TYPE kkblo_keyinfo,
is_layout                TYPE kkblo_layout,
it_fieldcat              TYPE kkblo_t_fieldcat,
i_fctype(1)              TYPE c,
it_excluding             TYPE kkblo_t_extab,
it_special_groups        TYPE kkblo_t_sp_group,
it_sort                  TYPE kkblo_t_sortinfo,
it_except_qinfo          TYPE kkblo_t_qinfo,
is_sel_hide              TYPE kkblo_sel_hide,
t_columns                TYPE kkblo_t_columns,
t_filter                 TYPE kkblo_t_filter,
s_lprint                 TYPE kkblo_lprint,
print_line_break         TYPE char1,
t_isetab                 TYPE kkblo_seldis,
t_fccls                  TYPE t_fccls,
t_sfinfo                 TYPE kkblo_t_sfinfo,
t_ref_field              TYPE t_ref_field,
t_dep_field              TYPE t_dep_field,
flg_default_status(1)    TYPE c,
flg_selections           TYPE char1,
flg_allow_no_selection   TYPE char1,
flg_input                TYPE char1,
flg_called               TYPE char1,
flg_popup                TYPE char1,
flg_endlist              TYPE char1,
listtype                 TYPE char1,
actcols                  TYPE i,
is_list                  TYPE char1,
END OF ty_stack.
TYPES: t_stack TYPE ty_stack OCCURS 0.
TYPES: BEGIN OF ty_stack2,
button_col1(20)                TYPE c,
button_col2(20)                TYPE c,
button_col3(20)                TYPE c,
button_col4(20)                TYPE c,
button_col5(20)                TYPE c,
s_header                       TYPE kkblo_header,
t_sfinfo_slave                 TYPE kkblo_t_sfinfo,
t_suminfo                      TYPE kkblo_t_sfinfo,
t_sfsave                       TYPE kkblo_t_sfinfo,
t_nosum                        TYPE t_nosum,
window_title                   TYPE rsmpe-tittext,  " Item_selection
flg_scroll_to_line(1)          TYPE c, " Item_selection
flg_top_of_page(1)             TYPE c,
flg_subtot(1)                  TYPE c,
flg_output_in_progress(1)      TYPE c,
flg_grouplevels(1)             TYPE c,
flg_groupedit(1)               TYPE c,
flg_calculate_totals(1)        TYPE c,
sumlevel                       TYPE sy-tabix,
memory_stack1                  TYPE ty_memory,
memory_stack2                  TYPE ty_memory,
memory_outtab                  TYPE ty_memory,
t_colmark                      TYPE kkblo_t_colmark,
t_rowmark                      TYPE kkblo_t_rowmark,
it_event_exit                  TYPE kkblo_t_event_exit,
t_groups                       TYPE kkblo_t_grouplevels,
t_filter_groups                TYPE kkblo_t_grouplevels,
s_subtot_options               TYPE kkblo_subtot_options,
flg_append_mode(1)             TYPE c,
is_reprep_id                   TYPE kkblo_reprep_id,
i_callback_before_line_output  TYPE kkblo_formname,
i_callback_after_line_output   TYPE kkblo_formname,
i_callback_foreign_top_of_page TYPE kkblo_formname,
i_callback_foreign_end_of_page TYPE kkblo_formname,
i_callback_list_modify         TYPE kkblo_formname,
i_callback_top_of_coverpage    TYPE kkblo_formname,
i_callback_end_of_coverpage    TYPE kkblo_formname,
i_callback_grouplevel_change   TYPE kkblo_formname,
i_callback_item_data_expand    TYPE kkblo_formname,
i_callback_header_transport    TYPE kkblo_formname,
i_callback_reprep_sel_modify   TYPE kkblo_formname,
i_callback_subtotal_text       TYPE kkblo_formname,
END OF ty_stack2.
TYPES: t_stack2 TYPE TABLE OF ty_stack2 INITIAL SIZE 0.
** *--- iTables
DATA: it_stack  TYPE t_stack WITH HEADER LINE.
DATA: it_stack2 TYPE t_stack2 WITH HEADER LINE.
***ALV Customer Wrapper
DATA: it_stack3 TYPE t_stack3 WITH HEADER LINE.
CONSTANTS: BEGIN OF c_con_listtype,
simple(1)    TYPE c VALUE 'S',
hier_sequ(1) TYPE c VALUE 'H',
matrix(1)    TYPE c VALUE 'M',
END OF c_con_listtype.
DATA:   gv_callback_program1      TYPE sy-repid,
gv_callback_user_command1 TYPE kkblo_formname,
gv_callback_top_of_page1  TYPE kkblo_formname,
gv_callback_top_of_list1  TYPE kkblo_formname,
gv_callback_end_of_page1  TYPE kkblo_formname,
gv_callback_end_of_list1   TYPE kkblo_formname,
gv_callback_pf_status_set1  TYPE kkblo_formname,
gv_callback_layout_save1    TYPE kkblo_formname,
gv_callback_fieldcat_save1  TYPE kkblo_formname,
gv_callback_grouplevel_change1  TYPE kkblo_formname,
gv_callback_before_line_otput1  TYPE kkblo_formname,
gv_callback_after_line_otput1  TYPE kkblo_formname,
gv_callback_foreign_top_of_pg1  TYPE kkblo_formname,
gv_callback_foreign_end_of_pg1  TYPE kkblo_formname,
gv_callback_list_modify1          TYPE kkblo_formname,
gv_callback_top_of_coverpge1     TYPE kkblo_formname,
gv_callback_end_of_coverpge1     TYPE kkblo_formname,
gv_callback_item_data_expand1     TYPE kkblo_formname,
gv_callback_header_transport1     TYPE kkblo_formname,
gv_callback_reprep_sel_modify1    TYPE kkblo_formname,
gv_callback_subtotal_text1       TYPE kkblo_formname,
gv_layout1   TYPE  kkblo_layout,
gv_fieldcat1  TYPE  kkblo_t_fieldcat,
gv_fctype1  TYPE c,
gv_event_exit1  TYPE  kkblo_t_event_exit,
gv_excluding1   TYPE  kkblo_t_extab,
gv_special_groups1  TYPE  kkblo_t_sp_group,
gv_sort1  TYPE  kkblo_t_sortinfo,
gv_filter1  TYPE  kkblo_t_filter,
gv_except_qinfo1  TYPE  slis_t_qinfo_alv,
gv_sel_hide1  TYPE  slis_sel_hide_alv,
gv_reprep_id1   TYPE  slis_reprep_id,
gv_screen_start_column1  TYPE i,
gv_salv_adapter1   TYPE REF TO if_salv_adapter,
gv_suppress_empty_data1  TYPE  sap_bool.
FUNCTION z_excel_download_test.
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(I_BYPASSING_BUFFER) TYPE  CHAR01 OPTIONAL
*"     REFERENCE(I_BUFFER_ACTIVE) OPTIONAL
*"     REFERENCE(I_CALLBACK_PROGRAM) TYPE  SY-REPID OPTIONAL
*"     REFERENCE(I_CALLBACK_USER_COMMAND) OPTIONAL
*"     REFERENCE(I_CALLBACK_TOP_OF_PAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_TOP_OF_LIST) OPTIONAL
*"     REFERENCE(I_CALLBACK_END_OF_PAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_END_OF_LIST) OPTIONAL
*"     REFERENCE(I_CALLBACK_PF_STATUS_SET) OPTIONAL
*"     REFERENCE(I_CALLBACK_LAYOUT_SAVE) OPTIONAL
*"     REFERENCE(I_CALLBACK_FIELDCAT_SAVE) OPTIONAL
*"     REFERENCE(I_CALLBACK_GROUPLEVEL_CHANGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_BEFORE_LINE_OUTPUT) OPTIONAL
*"     REFERENCE(I_CALLBACK_AFTER_LINE_OUTPUT) OPTIONAL
*"     REFERENCE(I_CALLBACK_FOREIGN_TOP_OF_PAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_FOREIGN_END_OF_PAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_LIST_MODIFY) OPTIONAL
*"     REFERENCE(I_CALLBACK_TOP_OF_COVERPAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_ITEM_DATA_EXPAND) OPTIONAL
*"     REFERENCE(I_CALLBACK_END_OF_COVERPAGE) OPTIONAL
*"     REFERENCE(I_CALLBACK_HEADER_TRANSPORT) OPTIONAL
*"     REFERENCE(I_CALLBACK_REPREP_SEL_MODIFY) OPTIONAL
*"     REFERENCE(I_CALLBACK_SUBTOTAL_TEXT) OPTIONAL
*"     REFERENCE(I_TABNAME) TYPE  SLIS_TABNAME OPTIONAL
*"     REFERENCE(I_FCTYPE) DEFAULT 'R'
*"     REFERENCE(IT_EXCEPT_QINFO) TYPE  SLIS_T_QINFO_ALV OPTIONAL
*"     REFERENCE(IS_SEL_HIDE) TYPE  SLIS_SEL_HIDE_ALV OPTIONAL
*"     REFERENCE(IS_REPREP_ID) TYPE  SLIS_REPREP_ID OPTIONAL
*"     REFERENCE(I_SCREEN_START_COLUMN) DEFAULT 0
*"     REFERENCE(I_OO_ALV) OPTIONAL
*"     REFERENCE(IR_SALV_ADAPTER) TYPE REF TO  IF_SALV_ADAPTER OPTIONAL
*"     REFERENCE(I_SUPPRESS_EMPTY_DATA) TYPE  SAP_BOOL DEFAULT
*"       ABAP_FALSE
*"     REFERENCE(I_FILE) TYPE  STRING OPTIONAL
*"     REFERENCE(IT_FIELDCAT) TYPE  SLIS_T_FIELDCAT_ALV OPTIONAL
*"     REFERENCE(IS_LAYOUT) TYPE  SLIS_LAYOUT_ALV OPTIONAL
*"     REFERENCE(IT_SORT) TYPE  SLIS_T_SORTINFO_ALV OPTIONAL
*"     REFERENCE(IT_FILTER) TYPE  SLIS_T_FILTER_ALV OPTIONAL
*"     REFERENCE(IT_EXCLUDING) TYPE  SLIS_T_EXTAB OPTIONAL
*"     REFERENCE(IT_SPECIAL_GROUPS) TYPE  SLIS_T_SP_GROUP_ALV OPTIONAL
*"     REFERENCE(IS_KEYINFO) TYPE  SLIS_KEYINFO_ALV OPTIONAL
*"     REFERENCE(IT_EVENT_EXIT) TYPE  SLIS_T_EVENT_EXIT OPTIONAL
*"     REFERENCE(IS_LIST_SCROLL) TYPE  SLIS_LIST_SCROLL OPTIONAL
*"     REFERENCE(IS_PRINT) TYPE  SLIS_PRINT_ALV OPTIONAL
*"     REFERENCE(IS_LINEINFO) TYPE  SLIS_LINEINFO OPTIONAL
*"     REFERENCE(I_REPID) TYPE  SYREPID OPTIONAL
*"  TABLES
*"      T_OUTTAB TYPE  STANDARD TABLE OPTIONAL
*********** Local data declarations******************
DATA: gv_list TYPE char1.
DATA: gv_fcat_complete TYPE sap_bool.
DATA: gv_buffer_active TYPE char01,
wa_variant TYPE disvariant.
DATA: gv_controller TYPE REF TO cl_salv_export_c8r.
DATA: gv_xml           TYPE xstring.
DATA: gv_s_xml_choice TYPE if_salv_bs_xml=>s_type_xml_choice.
DATA: gv_t_xml_choice TYPE if_salv_bs_xml=>t_type_xml_choice.
DATA: gv_param_lvc TYPE if_salv_export=>s_type_param_lvc.
DATA: gv_data       TYPE REF TO data.
DATA: gv_result_data TYPE REF TO cl_salv_ex_result_data_table.
DATA: gv_flavour TYPE string.
DATA: gv_version TYPE string.
DATA:

Similar Messages

  • To download data into csv file format

    Hi All
    I have to download data into csv file format. I use the FM
    GUI_DOWNLOAD and gave the filename text.csv. But data is stored in excel
    file in place of csv file.
    Can anyone tell me what should i do to load the data into csv file or any other function module should used?
    Regards

    see this sample code
    REPORT  YSG_MATSTK_REPT    LINE-SIZE 220
                               LINE-COUNT 50(5).
    *&                       DATA DECLARATION                              *
    TABLES: MARA,                      "GENERAL MASTER DATA
            MARC,                      "PLANT DATA FOR MATERIAL
            MARD,                      "STORAGE LOCATION DATA FOR MATERIAL
            MVKE,                      "SALES DATA FOR MATERIAL
            MAKT,                      "MATERIAL DESCRIPTION
            EKKO,                      "PURCHASING DOCUMENT HEADER
            EKPO,                      "PURCHASING DOCUMENT ITEM
            VBAK,                      "SALES DOCUMENT HEADER DATA
            VBAP.                      "SALES DOCUMENT ITEM DATA
    TYPE-POOLS : SLIS.
    DATA: VT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
          V_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          V_LAYOUT TYPE SLIS_LAYOUT_ALV,
          BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
          BEGIN OF I_MARA OCCURS 0,
             MATNR LIKE MARA-MATNR,  "MATERIAL NUMBER
             MBRSH LIKE MARA-MBRSH,  "INDUSTRY SECTOR
             MEINS LIKE MARA-MEINS,  "BASE UNIT OF MEASURE
             MATKL LIKE MARA-MATKL,  "MATERIAL GROUP
          END OF I_MARA,
          BEGIN OF I_MARC OCCURS 0,
             MATNR LIKE MARC-MATNR,  "MATERIAL NUMBER
             WERKS LIKE MARC-WERKS,  "PLANT
             LVORM LIKE MARC-LVORM,  "FLAG MATERIAL FOR DELETION AT PLANT
                                     "LEVEL
             DISPO LIKE MARC-DISPO,  "MRP CONTROLLER
          END OF I_MARC,
          BEGIN OF I_MAKT OCCURS 0,
             MATNR LIKE MAKT-MATNR,  "MATERIAL NUMBER
             MAKTX LIKE MAKT-MAKTX,  "MATERIAL DESCRIPTION
             SPRAS LIKE MAKT-SPRAS,  "LANGUAGE KEY
          END OF I_MAKT,
          BEGIN OF I_MVKE OCCURS 0,
             MATNR LIKE MVKE-MATNR,  "MATERIAL NUMBER
             VKORG LIKE MVKE-VKORG,  "SALES ORGANIZATION
             VTWEG LIKE MVKE-VTWEG,  "DISTRIBUTION CHANNEL
          END OF I_MVKE,
          BEGIN OF I_MARD OCCURS 0,
            MATNR LIKE MARD-MATNR,  "MATERIAL NUMBER
            LGORT LIKE MARD-LGORT,  "STORAGE LOCATION
            LABST LIKE MARD-LABST,  "VALUATED STOCK WITH UNRESTRICTED USE
          END OF I_MARD,
          BEGIN OF I_EKPO OCCURS 0,
            EBELN LIKE EKPO-EBELN,  "PURCHASING DOCUMENT NUMBER
            EBELP LIKE EKPO-EBELP,  "ITEM NUMBER OF PURCHASING DOCUMENT
            MATNR LIKE EKPO-MATNR,  "MATERIAL NUMBER
          END OF I_EKPO,
          BEGIN OF I_VBAP OCCURS 0,
            VBELN LIKE VBAP-VBELN,  "SALES DOCUMENT
            POSNR LIKE VBAP-POSNR,  "SALES DOCUMENT ITEM
            MATNR LIKE VBAP-MATNR,  "MATERIAL NUMBER
          END OF I_VBAP,
          BEGIN OF I_OUT OCCURS 0,
            MATNR LIKE MARC-MATNR,
            WERKS LIKE MARC-WERKS,
            LVORM LIKE MARC-LVORM,
            DISPO LIKE MARC-DISPO,
            MBRSH LIKE MARA-MBRSH,
            MEINS LIKE MARA-MEINS,
            MATKL LIKE MARA-MATKL,
            VKORG LIKE MVKE-VKORG,
            VTWEG LIKE MVKE-VTWEG,
            SPRAS LIKE MAKT-SPRAS,
            MAKTX LIKE MAKT-MAKTX,
            LGORT LIKE MARD-LGORT,
            LABST LIKE MARD-LABST,
            EBELN LIKE EKPO-EBELN,
            EBELP LIKE EKPO-EBELP,
            VBELN LIKE VBAP-VBELN,
            POSNR LIKE VBAP-POSNR,
          END OF I_OUT,
          BEGIN OF I_HEADING OCCURS 0,
            TEXT1(20),
            TEXT2(20),
            TEXT3(20),
            TEXT4(20),
            TEXT5(20),
            TEXT6(20),
            TEXT7(20),
            TEXT8(20),
            TEXT9(20),
            TEXT10(20),
            TEXT11(40),
            TEXT12(20),
            TEXT13(20),
            TEXT14(20),
            TEXT15(20),
            TEXT16(20),
            TEXT17(20),
          END OF I_HEADING.
    *&                   S E L E C T I O N - S C R E E N                   *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. "OBLIGATORY.
    PARAMETERS: P_WERKS LIKE MARC-WERKS. "OBLIGATORY.
    SELECT-OPTIONS: S_LGORT FOR MARD-LGORT,
                    S_DISPO FOR MARC-DISPO,
                    S_EBELN FOR EKPO-EBELN .
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
    PARAMETERS : RB1 RADIOBUTTON GROUP G1,
                 RB2 RADIOBUTTON GROUP G1,
                 RB3 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK B2.
    *&                  I N I T I A L I Z A T I O N                      *
    *INITIALIZATION.
    *&             S T A R T - O F - S E L E C T I O N                     *
    START-OF-SELECTION.
      SELECT MATNR WERKS LVORM DISPO FROM MARC
      INTO CORRESPONDING FIELDS OF TABLE I_MARC
                          WHERE MATNR IN S_MATNR
                          AND DISPO IN S_DISPO
                          AND WERKS = P_WERKS.
      IF I_MARC[] IS INITIAL.
        WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARC'.
        EXIT.
      ENDIF.
      PERFORM PURCHASEDATA_VALIDATION.
      PERFORM SALESDATA_VALIDATION.
      SELECT MATNR LGORT LABST FROM MARD INTO TABLE  I_MARD
                          FOR ALL ENTRIES IN I_MARC
                          WHERE MATNR = I_MARC-MATNR
                          AND WERKS EQ P_WERKS
                          AND LGORT IN S_LGORT.
      IF I_MARD[] IS INITIAL.
        WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARD'.
        EXIT.
      ENDIF.
      SELECT MATNR VKORG VTWEG FROM MVKE INTO TABLE I_MVKE
                          FOR ALL ENTRIES IN I_MARC
                          WHERE MATNR = I_MARC-MATNR.
      IF I_MVKE[] IS INITIAL.
        WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MVKE'.
        EXIT.
      ENDIF.
      LOOP AT I_MARC.
        MOVE-CORRESPONDING I_MARC TO I_OUT.
        CLEAR MARC.
        SELECT SINGLE MATNR MBRSH MEINS MATKL FROM MARA
                          INTO CORRESPONDING FIELDS OF MARA
                          WHERE MATNR = I_OUT-MATNR.
        IF SY-SUBRC = 0.
          MOVE: MARA-MBRSH TO I_OUT-MBRSH,
                MARA-MEINS TO I_OUT-MEINS,
                MARA-MATKL TO I_OUT-MATKL.
        ELSE.
          CONTINUE.
        ENDIF.
        SELECT SINGLE MATNR MAKTX SPRAS FROM MAKT
                        INTO  CORRESPONDING FIELDS OF MAKT
                        WHERE  MATNR = I_OUT-MATNR.
        IF SY-SUBRC = 0.
          MOVE: MAKT-MAKTX TO I_OUT-MAKTX,
                MAKT-SPRAS TO I_OUT-SPRAS.
        ELSE.
          CONTINUE.
        ENDIF.
        LOOP AT I_EKPO WHERE MATNR =  I_MARC-MATNR.
          MOVE: I_EKPO-EBELN TO I_OUT-EBELN,
                I_EKPO-EBELP TO I_OUT-EBELP.
        ENDLOOP.
        LOOP AT I_VBAP WHERE MATNR =  I_MARC-MATNR.
          MOVE: I_VBAP-VBELN TO I_OUT-VBELN,
                I_VBAP-POSNR TO I_OUT-POSNR.
        ENDLOOP.
        LOOP AT I_MARD WHERE MATNR = I_MARC-MATNR.
          MOVE: I_MARD-LABST TO I_OUT-LABST,
                I_MARD-LGORT TO I_OUT-LGORT.
        ENDLOOP.
        LOOP AT I_MVKE WHERE MATNR = I_MARC-MATNR.
          MOVE: I_MVKE-VKORG TO I_OUT-VKORG,
                I_MVKE-VTWEG TO I_OUT-VTWEG.
        ENDLOOP.
        APPEND I_OUT.
        CLEAR I_OUT.
      ENDLOOP.
      PERFORM OPTIONS.
                         FORM  OPTIONS                                *
    FORM OPTIONS.
      IF RB2 = 'X'.
        PERFORM FIELDCAT.
        PERFORM OUTPUT.
      ELSE.
        IF RB1 = 'X'.
          PERFORM HEADINGS.
          PERFORM DLOAD.
        ELSE.
          IF RB3 = 'X'.
            PERFORM HEADINGS.
            PERFORM DLOAD.
            PERFORM FIELDCAT.
            PERFORM OUTPUT.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    "OPTIONS
                         FORM  HEADINGS                               *
    FORM HEADINGS.
      I_HEADING-TEXT1 = 'MATNR'.
      I_HEADING-TEXT2 = 'WERKS'.
      I_HEADING-TEXT3 = 'LVORM'.
      I_HEADING-TEXT4 = 'DISPO'.
      I_HEADING-TEXT5 = 'MBRSH'.
      I_HEADING-TEXT6 = 'MEINS'.
      I_HEADING-TEXT7 = 'MATKL'.
      I_HEADING-TEXT8 = 'VKORG'.
      I_HEADING-TEXT9 = 'VTWEG'.
      I_HEADING-TEXT10 = 'SPRAS'.
      I_HEADING-TEXT11 = 'MAKTX'.
      I_HEADING-TEXT12 = 'LGORT'.
      I_HEADING-TEXT13 = 'LABST'.
      I_HEADING-TEXT14 = 'EBELN'.
      I_HEADING-TEXT15 = 'EBELP'.
      I_HEADING-TEXT16 = 'VBELN'.
      I_HEADING-TEXT17 = 'POSNR'.
      APPEND I_HEADING.
    ENDFORM.                    "HEADINGS
                         FORM  DLOAD                                  *
    FORM DLOAD.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME              = 'C:\MATSTK.csv'
          FILETYPE              = 'DAT'
          WRITE_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB              = I_HEADING
        EXCEPTIONS
          FILE_WRITE_ERROR      = 1.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME              = 'C:\MATSTK.csv'
          FILETYPE              = 'DAT'
          APPEND                = 'X'
          WRITE_FIELD_SEPARATOR = 'X'
        TABLES
          DATA_TAB              = I_OUT.
    ENDFORM.                    "DLOAD
                              FORM  FIELDCAT                          *
    FORM FIELDCAT.
      V_FIELDCAT-COL_POS = '1'.
      V_FIELDCAT-FIELDNAME     = 'MATNR'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-HOTSPOT = 'X'.
      V_FIELDCAT-REF_FIELDNAME = 'MATNR'.
      V_FIELDCAT-REF_TABNAME   = 'MARC'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '2'.
      V_FIELDCAT-FIELDNAME     = 'WERKS'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'WERKS'.
      V_FIELDCAT-REF_TABNAME   = 'MARC'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '3'.
      V_FIELDCAT-FIELDNAME     = 'LVORM'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'LVORM'.
      V_FIELDCAT-REF_TABNAME   = 'MARC'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '4'.
      V_FIELDCAT-FIELDNAME     = 'DISPO'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'DISPO'.
      V_FIELDCAT-REF_TABNAME   = 'MARC'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '5'.
      V_FIELDCAT-FIELDNAME     = 'MBRSH'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'MBRSH'.
      V_FIELDCAT-REF_TABNAME   = 'MARA'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '6'.
      V_FIELDCAT-FIELDNAME     = 'MEINS'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'MEINS'.
      V_FIELDCAT-REF_TABNAME   = 'MARA'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '7'.
      V_FIELDCAT-FIELDNAME     = 'MATKL'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'MATKL'.
      V_FIELDCAT-REF_TABNAME   = 'MARA'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '8'.
      V_FIELDCAT-FIELDNAME     = 'VKORG'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'VKORG'.
      V_FIELDCAT-REF_TABNAME   = 'MVKE'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '9'.
      V_FIELDCAT-FIELDNAME     = 'VTWEG'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'VTWEG'.
      V_FIELDCAT-REF_TABNAME   = 'MVKE'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '10'.
      V_FIELDCAT-FIELDNAME     = 'SPRAS'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'SPRAS'.
      V_FIELDCAT-REF_TABNAME   = 'MAKT'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '11'.
      V_FIELDCAT-FIELDNAME     = 'MAKTX'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'MAKTX'.
      V_FIELDCAT-REF_TABNAME   = 'MAKT'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '12'.
      V_FIELDCAT-FIELDNAME     = 'LGORT'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
    V_FIELDCAT-REF_FIELDNAME = 'LGORT'.
    V_FIELDCAT-REF_TABNAME   = 'MARD'.
      V_FIELDCAT-SELTEXT_L = 'STRG LOCT'.
      V_FIELDCAT-OUTPUTLEN = 10.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '13'.
      V_FIELDCAT-FIELDNAME     = 'LABST'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-SELTEXT_M = 'STOCK'.
      V_FIELDCAT-OUTPUTLEN = 15.
    V_FIELDCAT-REF_FIELDNAME = 'LABST'.
    V_FIELDCAT-REF_TABNAME   = 'MARD'.
      V_FIELDCAT-DO_SUM = 'X'.
      V_LAYOUT-TOTALS_TEXT = 'TOTAL STOCK:'.
      V_FIELDCAT-HOTSPOT = 'X'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '14'.
      V_FIELDCAT-FIELDNAME     = 'EBELN'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-HOTSPOT = 'X'.
      V_FIELDCAT-REF_FIELDNAME = 'EBELN'.
      V_FIELDCAT-REF_TABNAME   = 'EKPO'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '15'.
      V_FIELDCAT-FIELDNAME     = 'EBELP'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'EBELP'.
      V_FIELDCAT-REF_TABNAME   = 'EKPO'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '16'.
      V_FIELDCAT-FIELDNAME     = 'VBELN'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-HOTSPOT = 'X'.
      V_FIELDCAT-REF_FIELDNAME = 'VBELN'.
      V_FIELDCAT-REF_TABNAME   = 'VBAP'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
      V_FIELDCAT-COL_POS = '17'.
      V_FIELDCAT-FIELDNAME     = 'POSNR'.
      V_FIELDCAT-TABNAME = 'I_OUT'.
      V_FIELDCAT-REF_FIELDNAME = 'POSNR'.
      V_FIELDCAT-REF_TABNAME   = 'VBAP'.
      APPEND V_FIELDCAT TO VT_FIELDCAT1.
      CLEAR  V_FIELDCAT.
    ENDFORM.                      "FIELDCAT
                              FORM  OUTPUT                            *
    FORM OUTPUT.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          I_CALLBACK_TOP_OF_PAGE  = 'TOP-OF-PAGE'
          I_GRID_TITLE = 'CLICK ON MATERIAL/PURDOC/SALESDOC FOR DETAILS'
          I_CALLBACK_USER_COMMAND = 'DISPLAYDETAILS'
          IS_LAYOUT               = V_LAYOUT
          IT_FIELDCAT             = VT_FIELDCAT1
        TABLES
          T_OUTTAB                = I_OUT.
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    "OUTPUT
                            FORM  TOP-OF-PAGE                         *
    FORM TOP-OF-PAGE.
      DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
            WA_HEADER TYPE SLIS_LISTHEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = 'REPORT FOR : '.
      APPEND WA_HEADER TO T_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'S'.
      WA_HEADER-INFO = 'MATERIAL DETAILS'.
      APPEND WA_HEADER TO T_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'S'.
      WA_HEADER-INFO = 'PURCHASE ORDER DETAILS'.
      APPEND WA_HEADER TO T_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'S'.
      WA_HEADER-INFO = 'SALES ORDER DETAILS'.
      APPEND WA_HEADER TO T_HEADER.
      CLEAR WA_HEADER.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          I_LOGO             = 'GEAR'
          IT_LIST_COMMENTARY = T_HEADER.
    ENDFORM.                    "TOP-OF-PAGE
    *&                       FORM  DISPLAYDETAILS                          *
    FORM DISPLAYDETAILS USING UCOMM LIKE SY-UCOMM
          SELFIELD TYPE SLIS_SELFIELD.
      IF SELFIELD-FIELDNAME = 'EBELN'.
        IF UCOMM = '&IC1'.
          READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
          PERFORM PORECDNG.
          CLEAR BDCDATA[].
        ENDIF.
      ELSE.
        IF SELFIELD-FIELDNAME = 'MATNR'.
          IF UCOMM = '&IC1'.
            READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
            PERFORM MMRECDNG.
            CLEAR BDCDATA[].
          ENDIF.
        ELSE.
          IF SELFIELD-FIELDNAME = 'VBELN'.
            IF UCOMM = '&IC1'.
              READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
              PERFORM SALESRECDNG.
              CLEAR BDCDATA[].
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    "DISPLAYDETAILS
                        FORM PORECDNG                                   *
    FORM PORECDNG.
      PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0105'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RM06E-BSTNR'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'RM06E-BSTNR'
                                    I_OUT-EBELN.
      PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0120'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RM06E-BSTPO(01)'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=AH'.
      PERFORM BDC_FIELD       USING 'RM06E-EBELP'
                                    I_OUT-EBELP.
      PERFORM BDC_FIELD       USING 'RM06E-TCSELFLAG(01)'
                                    'X'.
      PERFORM BDC_TRANSACTION USING 'ME23'.
    ENDFORM.                    "PORECDNG
                        FORM MMRECDNG                                   *
    FORM MMRECDNG.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RMMG1-MATNR'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                    I_OUT-MATNR.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MSICHTAUSW-DYTXT(01)'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=ENTR'.
      PERFORM BDC_FIELD       USING 'MSICHTAUSW-KZSEL(01)'
                                    'X'.
      PERFORM BDC_TRANSACTION USING 'MM03'.
    ENDFORM.                    "MMRECDNG
                        FORM SALESRECDNG                                *
    FORM SALESRECDNG.
      PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'VBAK-VBELN'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                                    I_OUT-VBELN.
      PERFORM BDC_TRANSACTION USING 'VA03'.
    ENDFORM.                    "SALESRECDNG
                     FORM BDC_TRANSACTION                               *
    FORM BDC_TRANSACTION USING TCODE.
      CALL TRANSACTION TCODE USING BDCDATA MODE 'E'.
    ENDFORM.                    "BDC_TRANSACTION
                           FORM BDC_DYNPRO                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM = PROGRAM.
      BDCDATA-DYNPRO = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_DYNPRO
                           INSERT FIELD                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDCDATA.
      BDCDATA-FNAM = FNAM.
      BDCDATA-FVAL = FVAL.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_FIELD
    *&                  FORM  PURCHASEDATA_VALIDATION                      *
    FORM PURCHASEDATA_VALIDATION.
      SELECT EBELN EBELP MATNR
                 FROM EKPO
                 INTO TABLE I_EKPO
                 FOR ALL ENTRIES IN I_MARC
                 WHERE MATNR = I_MARC-MATNR
                 AND EBELN IN S_EBELN
                 AND WERKS EQ P_WERKS.
      IF I_EKPO[] IS INITIAL.
        WRITE:/ 'NO MATCHING DATA AVAILABLE FROM TABLE EKPO'.
        EXIT.
      ENDIF.
      DATA: T_EKPO LIKE I_EKPO OCCURS 0 WITH HEADER LINE.
      T_EKPO[] = I_EKPO[].
      REFRESH I_EKPO.
      FREE I_EKPO.
      LOOP AT T_EKPO.
        SELECT SINGLE EBELN FROM EKKO INTO EKPO-EBELN
        WHERE EBELN = T_EKPO-EBELN.
        IF SY-SUBRC = 0.
          MOVE-CORRESPONDING T_EKPO TO I_EKPO.
          APPEND I_EKPO.
          CLEAR I_EKPO.
        ELSE.
          CONTINUE.
        ENDIF.
      ENDLOOP.
      SORT I_EKPO.
    ENDFORM.                    "PURCHASEDATA_VALIDATION
    *&                  FORM  SALESDATA_VALIDATION                         *
    FORM SALESDATA_VALIDATION.
      SELECT VBELN POSNR MATNR
              FROM VBAP
              INTO CORRESPONDING FIELDS OF TABLE
              I_VBAP FOR ALL ENTRIES IN I_MARC
              WHERE MATNR = I_MARC-MATNR.
    IF I_VBAP[] IS INITIAL.
        WRITE:/ 'NO MATCHING DATA AVAILABLE FROM TABLE VBAP'.
        EXIT.
      ENDIF.
      DATA: T_VBAP LIKE I_VBAP OCCURS 0 WITH HEADER LINE.
      T_VBAP[] = I_VBAP[].
      REFRESH I_VBAP.
      FREE I_VBAP.
      LOOP AT T_VBAP.
        SELECT SINGLE VBELN FROM VBAK INTO VBAK-VBELN
        WHERE VBELN = T_VBAP-VBELN.
        IF SY-SUBRC = 0.
          MOVE-CORRESPONDING T_VBAP TO I_VBAP.
          APPEND I_VBAP.
          CLEAR I_VBAP.
        ELSE.
          CONTINUE.
        ENDIF.
      ENDLOOP.
      SORT I_VBAP.
    ENDFORM.                    "SALESDATA_VALIDATION
    regards,
    srinivas
    <b>*reward for useful answers*</b>

  • How to download data into  two different columns 2003 excel format in ole

    Hi ALL
    when we download data into excel using ole with delimiter it works fine in 2007 but when we check this with 2003 format
    both fields come in only one column .Can any one suggest  
      CONCATENATE WA_ALL-PERNR LV_ICNUM INTO WA_PERNR SEPARATED BY W_DELI   IN CHARACTER MODE.

    If you're already using OLE, you can fill in value for each cell separately instead of using a delimiter. Something like this fragment:
    FORM fill_cell USING p_row p_col p_value.
      CALL METHOD OF obj_excel 'CELLS' = obj_cell
        EXPORTING
        #1 = p_row
        #2 = p_col.
      SET PROPERTY OF obj_cell 'VALUE' = p_value.
    ENDFORM.                    "fill_cell

  • How to store data into log file(.doc) using CVI

    The purpose is to store the capture data(from my cvi program) and store into the log file (.doc). so at the end of the program run I can retrieve the doc file where the data  store to do my analysing .
    Why do this: I wanted to create my program into .exe file that why I need this method or do u have other method to intro?
    Any ideal or note or example to share? Pls help

    If you are explicitly trying to create a Microsoft Word document, then CVI comes with Word Report instrument that can be used to generate such files. The instrument is located in toolslib\activex\word\wordreport.fp, while a sample program can be found in samples\activex\word\wordrpt.cws.
    I suggest you take a look at the example program that illustrates the fundamentals of this instrument, next you can start designing your own application using that instrument.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • How to Download data into Chunks?

    Hi Guys,
                 Can anybody tell me How to download the data into chunks for ex consider BSEG table for this table ?how can we download the data into chunks from SAP Database?
                Can anybody tell me how to use Open Cursor and what is meant by Open Cursor?
    Thanks,
    Gopi.

    Hi Gopi,
    The only change that you have to do is vary the PACKAGE SIZE according to your need. Instead of 300,000 which is set right now, give the PACKAGE SIZE as 1,000,000. But that all depends upon your requirement.
    Now, I think your limit is 350,000. If that is the case, then give PACKAGE SIZE 350,000 and instead of writing open dataset outside SELECT, put in before ENDSELECT.
    i.e.
    DATA : it_bseg    TYPE TABLE OF bseg,
           v_size     TYPE i VALUE '350000',
           v_filename TYPE string VALUE give application server path + file name.
    SELECT *
      FROM bseg
      INTO TABLE it_bseg PACKAGE SIZE v_size
      WHERE condition.
    IF it_bseg[] IS NOT INITIAL.
      OPEN DATASET v_filename FOR APPENDING IN TEXT MODE ENCODING DEFAULT.
      SORT IT_BSEG BY BELNR.
      LOOP AT it_bseg INTO x_bseg
        TRANSFER x_bseg TO  v_filename.
      ENDLOOP.
      CLOSE DATASET v_filename.
    ENDIF.
    ENDSELECT.
    Reward points if the answer is helpful.
    Thankx,
    Mukul

  • Problem in Download data into Excel File

    Hi Friends,
    I have one doubt on WDJ.
             I have got the data from the Back and display the data into Table UI Element. Depending upon po_status equals to OA Pending that time conf_Ship_date Column is Empty. That time we can Select All Checkbox Click on Download Button Excel file is not download. Why it not download? Conf_Ship_date Column is Empty. Conf_Ship_date Column is data available that time data download into Excel File.
    My Req: if Conf_Ship_date Column is empty that time click on Download that data will download in to Excel. In Excel Conf_Ship_date Column will display in NULL or 00.00.0000 Like this also.
    Code:ExcelEle.setConf_Shp_Date(StockEle.getConf_Shp_Date()); 
    This means I am getting date from PoDetails_OutTab(StockEle)this node and add this date to PoDetails_ExcelData(ExcelEle) this node.Finally the date will available in PoDetails_ExcelData this node. By Using this node I will download data.
    How to do this work?
    Regards
    Vijay

    Hi Arun,
    For Example in Table 4 rows and 14 columns data is available. Select all check boxes click on download button total 4 rows and 14 columns data is downloaded.
    Table 4 rows and 14 columns data is available. But in some cells data not available in that time I m getting null values from ECC System. That time I am not able to download.
    In Particularly this problem I am getting only date colums.
    So now I have develop this code
    public void onActiondownloadToExcel(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActiondownloadToExcel(ServerEvent)
         IPrivatePO_Details_ResultView.IPoDetails_ExcelDataNode ExcelNode = wdContext.nodePoDetails_ExcelData();
         IPrivatePO_Details_ResultView.IPoDetails_ExcelDataElement ExcelEle; 
         IPrivatePO_Details_ResultView.IPoDetails_OutTabNode StockNode = wdContext.nodePoDetails_OutTab();
         IPrivatePO_Details_ResultView.IPoDetails_OutTabElement StockEle ;
         for(int i = 0 ;i<StockNode.size();i++)
         StockEle = StockNode.getPoDetails_OutTabElementAt(i);
         if(StockEle.getCheckBox()== true)
         ExcelEle = ExcelNode.createPoDetails_ExcelDataElement();// Create Element
         if(StockEle.getConf_Shp_Date()==null)
         java.sql.Date deliverydate1=new java.sql.Date(0,0,0);
         ExcelEle.setConf_Shp_Date(deliverydate1);
         else
         ExcelEle.setConf_Shp_Date(StockEle.getConf_Shp_Date()); 
    By using this code i have to download total Records but in this Conf_Shp_Date colums i am getting 31-12.1899 this output in Excel. But i need in Excel to print Null or 00.00.0000 like
         ExcelEle.setQuantity(StockEle.getQuantity());
         ExcelEle.setDeliv_Date(StockEle.getDeliv_Date());
         if(StockEle.getExpt_Shp_Date()==null)
         java.sql.Date deliverydate2=new java.sql.Date(0,0,0);
         ExcelEle.setExpt_Shp_Date(deliverydate2);
         else
         ExcelEle.setExpt_Shp_Date(StockEle.getExpt_Shp_Date());
         ExcelEle.setVendor_Material(StockEle.getVendor_Material());
         ExcelNode.addElement(ExcelEle);
         if(ExcelNode.size()>0)
         wdThis.wdGetCO_POPendingController().downloadData(wdContext.nodePoDetails_ExcelData());// This is for Downalod data Method
         wdThis.wdGetCO_POPendingController().DownLoadToExcel();// This is for Open Popup Window
         wdContext.nodePoDetails_ExcelData().invalidate();
         else
         wdComponentAPI.getMessageManager().reportException("Please select any one po item from the table",true);
        //@@end
    Regards
    Vijay
    Edited by: KalluriVijay on May 18, 2010 10:05 AM

  • How to download data into one cell of excel in different lines

    Hi All,
    My Report downloads data from R/3 to excel. Now one particular field contains multiple lines, which i needs to download into different lines into that particular cell(of excel). how can i do this.
    I found one method for this and that is cl_abap_char_utilities=>newline.But this is in abap version 6.0.
    But i am working in version 4.6c. do we have any method or anything that meets my requirement in 4.6c.
    Please let me know.
    Thanx in Advance
    Subhani.

    why do you split them to the internal table ,then download it?
    Is you special field long text?
    If is ,you can use FM READ_TEXT to put it into an internal table ,then download it.

  • How to store data into a file from a host VI developed for Compact RIO

    Hi,
    I am new to the CompactRIo.I have developed a VI which runs on the FPGA(CompactRIO) which continuously monitors tha data from a system and i have developed a host VI to read the data and i am successfully getting the data into my computer and i want that data to store into a file.When i use the write to spreadsheet VI for writing into a file.The data is not written into file can anybody tell me why this is happening?

    Hi,
    The last one you said is working when i conected through it is working, whatever files i have  used earlier are there.Thanks  for that but i have few queries please answer me so that i acn proceed in my  project.
    1.As you said to connect to ftp://xx.xx.xx.xx i have seen some extra files along with my files waht are they? waether my data files are stored in flash memory of RT controller?if so, how to clear those files?
    2.Suppose i want to clean up the flash memory of RT contrller i.e suppose i have deployed some file earlier , now i want to cleanup those i dumped into the memory how to do that?
    3.How to disable the Application running on the RT controller when it powers on? i.e. when i switch on the power it should be connected but nothing hould be running on.
    4.I mean at the end of the experiment when i stopped the host VI by pressing stop button weather application running on the RT controller will stop and weather FPGA VI runnibg on that also stop if not how to stop?
    5.Suppose next time when i connect to ftp://xx.xx.xx.xx i dont want to keep earlier files there how to delete them?Because my doubt is if i am using the file name which is same as the prevoius one there is aproblem of appending the new data to the old file.?
    Regards,
    Vishnu

  • How to extract data into excel file from more than one internal table

    Hi Guys
                 I want to extract the data from module pool screen.
                 In screen there are two internal tables
                      1. header
                      2. items.
                 I want to extract the data as same format looking in the screen.
                 With simple Download FM we cannot do this one, because in this we   will display as continuous rows.
    <b> But my requirement is saving as table with heading, date, header details</b>
    Note that it is not the simple down load . Suggest me with example  coding

    Hi Guys,
      I think it depends on which software you will use to see the result.
      If U are using Excel, it's very easy to achieve it.
      1. Define a structure as string, the lenth depend on your need.And use the structure to define a internal table, supposed is as A..
      2. Concatenate the head data using some separator, for ex. a comma; and then add this into A.
      3. The above step's concatenate is depend on your format for request;For ex, you want to place the date at the 4th cell in excel, that means you should put three separator before the date field.
      4 Concatenate the item data into the download table.
      5. Download the table to file.
      6. Display the file, using your defined separator.
    Hope this helpful.
    Bob

  • How to download data into excel by displaying field names in top 2 rows

    Hi experts,
             i am trying to download an internal table data into excel(open office) by reserving top 2 rows. In 1st row i want to display tech.name where as in 2nd row i want to display discription of tech name of the fields. Well, i tried with FM gui_upload and used fieldnames  parameter and even its working too but i'm unable to work with 2nd col.
    Please help me out....
    with regards.
    Praveen.

    Try this code:
    If IT_FINAL is the internal table containing the data that you want to download :
    IF IT_FINAL[] IS INITIAL.
        WRITE : 'No Data Fetched'.
      ELSE.
      Build header table Field catelague
        PERFORM UR_FIELDCAT_BUILD USING G_F_REPNM
                                        'IT_FINAL'
                                 CHANGING IT_FCAT_001.
        DATA: L_F_LINES TYPE I,
              L_F_FROM TYPE I,
              L_F_TO TYPE I,
              L_F_DIFF TYPE I,
              L_TEMP_FINAL LIKE TABLE OF IT_FINAL.
        DESCRIBE TABLE IT_FINAL LINES L_F_LINES.
        IF L_F_LINES > 16000.
          L_F_FROM = 1.
          L_F_TO = 16000.
          DO.
            APPEND LINES OF IT_FINAL FROM L_F_FROM
                                              TO L_F_TO TO L_TEMP_FINAL.
            PERFORM DOWNLOAD_DATA_HEADER TABLES L_TEMP_FINAL
                                                   IT_FCAT_001
                                             USING GF_FILE1.
            IF L_F_TO >= L_F_LINES.
              EXIT.
            ENDIF.
            L_F_FROM = L_F_TO + 1.
            L_F_DIFF = L_F_LINES - L_F_TO.
            IF L_F_DIFF >= 16000.
              L_F_TO = L_F_TO + 16001.
            ELSE.
              L_F_TO = L_F_LINES.
            ENDIF.
            REFRESH: L_TEMP_FINAL.
         ENDDO.
       ELSE.
         PERFORM DOWNLOAD_DATA_HEADER TABLES IT_FINAL
                                         IT_FCAT_001
                                  USING GF_FILE1.
       ENDIF.
    ENDIF.
    FORM UR_FIELDCAT_BUILD
                 USING P_REPID
                       P_TABNAM
    CHANGING C_T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
       REFRESH C_T_FIELDCAT.
       CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
            EXPORTING
                 I_PROGRAM_NAME         = P_REPID
                 I_INTERNAL_TABNAME     = P_TABNAM
               I_STRUCTURE_NAME       = 'TY_FLODAT'
                 I_INCLNAME             = P_REPID
                 I_BYPASSING_BUFFER     = 'X'
            CHANGING
                 CT_FIELDCAT            = C_T_FIELDCAT
            EXCEPTIONS
                 INCONSISTENT_INTERFACE = 1
                 PROGRAM_ERROR          = 2
                 OTHERS                 = 3.
    ENDFORM.
    FORM DOWNLOAD_DATA_HEADER
                  TABLES T_OUTTAB
                  T_FIELDCAT
                  USING P_FILENAM.
       TYPE-POOLS: SLIS.
       REPLACE 'YYYYMMDD' WITH SY-DATUM INTO P_FILENAM.
       DATA: T_GXXLT_O    TYPE TABLE OF GXXLT_O WITH HEADER LINE,
             T_GXXLT_H    TYPE TABLE OF GXXLT_H WITH HEADER LINE,
             T_GXXLT_H_TEMP TYPE TABLE OF GXXLT_H WITH HEADER LINE,
             T_GXXLT_P    TYPE TABLE OF GXXLT_P WITH HEADER LINE,
             T_GXXLT_S    TYPE TABLE OF GXXLT_S WITH HEADER LINE,
             T_GXXLT_V    TYPE TABLE OF GXXLT_V WITH HEADER LINE,
             L_S_FIELDCAT TYPE SLIS_FIELDCAT_ALV..
       DATA: F_FILE       TYPE GXXLT_F-FILE,
             F_ATT_COLS   TYPE I,
             F_HRZ_KEYS   TYPE I,
             F_VRT_KEYS   TYPE I.
    TYPES: BEGIN OF TY_FLDNM,
               FIELDNAME(30) TYPE C,
            END   OF TY_FLDNM.
    DATA : L_T_FLDNAME TYPE TABLE OF TY_FLDNM,
            L_R_FLDNAME TYPE TY_FLDNM.
    REFRESH:  L_T_FLDNAME.
    LOOP AT T_FIELDCAT INTO L_S_FIELDCAT .
       CLEAR L_R_FLDNAME.
       CONCATENATE  L_S_FIELDCAT-SELTEXT_S  '_'
                    L_S_FIELDCAT-FIELDNAME
        INTO L_R_FLDNAME-FIELDNAME.
       APPEND L_R_FLDNAME TO L_T_FLDNAME.
    ENDLOOP.
    IF T_OUTTAB[] IS INITIAL.
       WRITE : /'No data Fetch !'.
    ELSE.
       DESCRIBE TABLE T_FIELDCAT LINES F_ATT_COLS.
       LOOP AT T_FIELDCAT INTO L_S_FIELDCAT.
         T_GXXLT_H-COL_NO        = L_S_FIELDCAT-COL_POS.
         T_GXXLT_H-ROW_NO        = 1.
         T_GXXLT_H-COL_NAME      = L_S_FIELDCAT-FIELDNAME.
         APPEND T_GXXLT_H.
         CLEAR T_GXXLT_S.
         T_GXXLT_S-COL_NO        = L_S_FIELDCAT-COL_POS.
         T_GXXLT_S-COL_OPS       = 'NOP'.
         T_GXXLT_S-COL_SRC       = L_S_FIELDCAT-COL_POS.
         CASE L_S_FIELDCAT-INTTYPE.
           WHEN 'Z' OR 'P' OR 'I' OR 'F'.
             T_GXXLT_S-COL_TYP   = 'NUM'.
           WHEN 'C' OR 'X' OR 'T' OR 'N'.
             T_GXXLT_S-COL_TYP   = 'STR'.
           WHEN 'D'.
             T_GXXLT_S-COL_TYP   = 'DAT'.
          WHEN OTHERS.
            T_GXXLT_S-COL_TYP   = 'STR'.
        ENDCASE.
        APPEND T_GXXLT_S.
        IF L_S_FIELDCAT-KEY EQ 'X'.
          CLEAR T_GXXLT_H.
          T_GXXLT_H-COL_NO     = L_S_FIELDCAT-COL_POS.
          T_GXXLT_H-ROW_NO     = 1.
          T_GXXLT_H-COL_NAME   = L_S_FIELDCAT-FIELDNAME.
          APPEND T_GXXLT_H.
        ENDIF.
      ENDLOOP.
      MOVE P_FILENAM TO F_FILE.
      LOOP AT T_FIELDCAT INTO L_S_FIELDCAT.
        READ TABLE T_GXXLT_H WITH KEY COL_NAME = L_S_FIELDCAT-FIELDNAME.
        IF SY-SUBRC EQ 0.
          T_GXXLT_H_TEMP-COL_NO = T_GXXLT_H-COL_NO.
          T_GXXLT_H_TEMP-ROW_NO = 2.
          T_GXXLT_H_TEMP-COL_NAME =  L_S_FIELDCAT-SELTEXT_S.
          APPEND T_GXXLT_H_TEMP TO T_GXXLT_H.
          CLEAR T_GXXLT_H.
          ENDIF.
        ENDLOOP.
        CALL FUNCTION 'XXL_FULL_API'
             EXPORTING
                  FILENAME          = F_FILE
                  NO_START          = ''
                  N_ATT_COLS        = F_ATT_COLS
                  N_HRZ_KEYS        = F_HRZ_KEYS
                  N_VRT_KEYS        = F_VRT_KEYS
                  SEMA_TYPE         = ''
                  SO_TITLE          = ''
             TABLES
                  DATA              = T_OUTTAB
                  HKEY              = T_GXXLT_H
                  ONLINE_TEXT       = T_GXXLT_O
                  PRINT_TEXT        = T_GXXLT_P
                  SEMA              = T_GXXLT_S
                  VKEY              = T_GXXLT_V
             EXCEPTIONS
                  CANCELLED_BY_USER = 1
                  DATA_TOO_BIG      = 2
                  DIM_MISMATCH_DATA = 3
                  DIM_MISMATCH_SEMA = 4
                  DIM_MISMATCH_VKEY = 5
                ERROR_IN_HKEY     = 6
                ERROR_IN_SEMA     = 7
                FILE_OPEN_ERROR   = 8
                FILE_WRITE_ERROR  = 9
                INV_DATA_RANGE    = 10
                INV_WINSYS        = 11
                INV_XXL           = 12
                OTHERS            = 13.
      ENDIF.
    ENDFORM.

  • How to input data into Pdf file

    I am not too sure if I am posting my question in the right forum.
    I would like to know what version of Adobe acrobat can allow me to create a document, where clients can input data into it?
    Here is an online example
    http://www.uscis.gov/files/form/N-400.pdf
    Thanks.
    Oceans

    If your users will be using Reader and you want your users to be able to save the form or email it, you will need to apply 'Extended Form Rights' (version 8 Provessional or Version 9 Standard or better) and for signatures you will need to apply 'Signature Rights' using an Adobe server product.

  • How to write data into a file

    Hi
    I want to write data from a string into a file. I am created a directory and a .doc file . But when i write this data from a string into .doc file , its give an error : File not found exception
    But, when i check in my directory, a file is created with blank.
    My code is:
    import java.io.*;
    import java.util.*;
    import java.lang.*;
    class createFile {
         public static void main(String[] args) {
    try {
         String mss = "This is for dedo";
         FileInputStream fis;
         FileOutputStream fos;
    File file = new File("C:\\JD\\m4.rtf");
    // Create file if it does not exist
    boolean success = file.createNewFile();
         success = true;
    if (success) {
                   System.out.println("suc");     
                   fis = new FileInputStream(mss);
                   System.out.println(fis);
              fos = new FileOutputStream(file);
              int c;
                   while ((c = fis.read()) != -1) {
         fos.write(c);
                   System.out.println("mss");
              fis.close();
              fos.close();
         System.out.println("created");
    // File did not exist and was created
    } else {
    // File already exists
    } catch (IOException e) {
         System.out.println(e);
    regards
    madhu

    InputStream inputStream = new ByteArrayInputStream(mss.getBytes());Use this to push into the file>
    Ummm.... no. InputStreams are for reading, not for writing.
    Anyway, OP, you're making a mistake. You're trying to open a stream to a file called "This is for dedo". Use FileOutputStream(File file) constructor or FileOutputStream(String pathToFile). You can then wrap that stream with a PrintWriter or whatever you need.

  • Error while downloading data into excel file.

    Hi,
        I have a requirement to download data available in xstring to excel file.
    I have a RFC which has export parameter 'file_data' of type xstring. When i call RFC
    from web dynpro abap application it gives data out pout in xstring format.
    I am opening excel file using that xstring data as below
    cl_wd_runtime_services=>attach_file_to_response(
    i_filename = 'file.xls'
    i_content = ls_data_source-data_source   ***[xstring data from RFC]
    i_mime_type = 'x-excel/application'
    i_in_new_window = abap_true ).
    But excel file not coming in correct format. its  giving an error while download
    excel file
    Error is
          " the file you are trying to open , 'file[1].xls', is in a different format than
    specified by the file extension. Verify that the file is not corrupted and is from
    a trusted source before opening the file. Do you want to open the file now? "
    If i click on 'YES' button file opening but not in proper excel format. Data is coming
    in tab delimiter format in excel file.
    Please suggest any solution for this problem.
    Thanks,
    Venkat.

    Hi Thomas,
    Following is the logic implemented in RFC which is giving XSTRING as export parameter
    STEP1      create a dynamic internal table
               Create field catalog for the table   using LVC_FIELDCATALOG_MERGE
                   CALL METHOD cl_alv_table_create=>create_dynamic_table
                        EXPORTING
                           it_fieldcatalog = it_fieldcat
                         IMPORTING
                           ep_table        = dyn_table.
                  CREATE  EXCEL SHEET BY SENDING FIELD CATALOG AND DATA TAB
    STEP2 # Convert text table to xstring.
            CALL FUNCTION 'SCMS_TEXT_TO_XSTRING'
              IMPORTING
                buffer   = l_content
              TABLES
                text_tab = lt_data_tab
              EXCEPTIONS
                failed   = 1
                OTHERS   = 2.
    STEP3  *# Psss Data to Netweaver
              PERFORM pass_data_to_nw USING is_import
                                      CHANGING es_attachment_metadata.

  • Function module to download data into excel file

    Hi Friends,
    Please tell me the function module name which popsup a popup box to specify a filename and the location and when clicking on the OK button, the file should be downloaded to the specified location.
    I need it ASAP.
    Thanks,
    Jaffer Ali.S

    Hi Shamshudeen,
    You have to use two funtion modules to acheive this.
    1. To get the file path from user.
    2. To download the excel sheet in prescribed path.
    For 1 use following code
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fpath .
        CALL FUNCTION 'F4_FILENAME'
         EXPORTING
           program_name        = syst-cprog
           dynpro_number       = syst-dynnr
      FIELD_NAME          = ' '
         IMPORTING
           file_name           = p_fpath  .
    The file path will be stored in p_fpath.
    Now use GUI_DOWNLOAD function module and pass the file name p_fpath to it along with filetype as .xls
    Hope this helps you.
    Thanks,
    Arun

  • How to download data into a text file format ?

    Hi, all.
    My situation now is: I have a report pogram which can retrieve data from database, and I would like to export or download those data to outside as a text file (.txt) in my local computer.
    So, does anyone know how to do it? i mean my report coding should add on or enhance with what coding in order to do like that.
    Thanks in advance.

    Hi,
    Use GUI_DOWNLOAD Function module.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                  =
        filename                      = 'FILEPATH'* 
    FILETYPE                      = 'ASC'
      APPEND                        = ' '
       WRITE_FIELD_SEPARATOR         = 'X'  (Field separator )
      HEADER                        = '00'
      TRUNC_TRAILING_BLANKS         = ' '
      WRITE_LF                      = 'X'
      COL_SELECT                    = ' '
      COL_SELECT_MASK               = ' '
      DAT_MODE                      = ' '
      CONFIRM_OVERWRITE             = ' '
      NO_AUTH_CHECK                 = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      WRITE_BOM                     = ' '
    IMPORTING
      FILELENGTH                    =
      tables
        data_tab                      = t_customer ( give internal tablename )
    EXCEPTIONS
       FILE_WRITE_ERROR              = 1
       NO_BATCH                      = 2
       GUI_REFUSE_FILETRANSFER       = 3
       INVALID_TYPE                  = 4
       NO_AUTHORITY                  = 5
       UNKNOWN_ERROR                 = 6
       HEADER_NOT_ALLOWED            = 7
       SEPARATOR_NOT_ALLOWED         = 8
       FILESIZE_NOT_ALLOWED          = 9
       HEADER_TOO_LONG               = 10
       DP_ERROR_CREATE               = 11
       DP_ERROR_SEND                 = 12
       DP_ERROR_WRITE                = 13
       UNKNOWN_DP_ERROR              = 14
       ACCESS_DENIED                 = 15
       DP_OUT_OF_MEMORY              = 16
       DISK_FULL                     = 17
       DP_TIMEOUT                    = 18
       FILE_NOT_FOUND                = 19
       DATAPROVIDER_EXCEPTION        = 20
       CONTROL_FLUSH_ERROR           = 21
       OTHERS                        = 22 .
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.                                 " IF SY-SUBRC

Maybe you are looking for