2008 Apr 07 6:29 AM
Hi Gurus,
I want to download my internal table to a text file as CSV (Comma Separated Values).
But the FM . GUI_DOWNLOAD downloads the data in Tab separated fields.
so any one please tell me how to download as CSV.
2008 Apr 07 6:34 AM
Use the Function Module SAP_CONVERT_TO_CSV_FORMAT to convert the internal table into Comma seperated format then download this
internal table using the Function Module GUI_DOWNLOAD.
I hope that it helps u.
Regards,
Venkat.O
REPORT zvenkat_test2.
TYPE-POOLS: truxs.
TYPES:
BEGIN OF t_line,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
END OF t_line.
DATA:w_line TYPE t_line.
DATA:itab TYPE STANDARD TABLE OF t_line.
DATA:itab1 TYPE truxs_t_text_data.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
PARAMETERS p_file TYPE localfile DEFAULT 'C:\Test.txt'.
SELECTION-SCREEN END OF BLOCK b1.
*---------------------------------------------------------------------
"At selection-screen on value-request for p_file.
*---------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_help.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
PERFORM convert_to_csv.
PERFORM download_data.
*&---------------------------------------------------------------------*
*& Form f4_help
*&---------------------------------------------------------------------*
FORM f4_help .
DATA:
l_file_name LIKE ibipparms-path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = l_file_name.
p_file = l_file_name.
ENDFORM. " f4_help
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
SELECT
vbeln
posnr
UP TO 10 ROWS
FROM vbap
INTO TABLE itab.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form convert_to_csv
*&---------------------------------------------------------------------*
FORM convert_to_csv .
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = ';'
TABLES
i_tab_sap_data = itab
CHANGING
i_tab_converted_data = itab1
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " convert_to_csv
*&---------------------------------------------------------------------*
*& Form download_data
*&---------------------------------------------------------------------*
FORM download_data .
DATA l_filename TYPE string.
l_filename = p_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_filename
TABLES
data_tab = itab1
EXCEPTIONS
OTHERS = 1.
ENDFORM. " download_data
Hi Gurus,
I want to download my internal table to a text file as CSV (Comma Separated Values).
But the FM . GUI_DOWNLOAD downloads the data in Tab separated fields.
so any one please tell me how to download as CSV.
2008 Apr 07 6:34 AM
Use the Function Module SAP_CONVERT_TO_CSV_FORMAT to convert the internal table into Comma seperated format then download this
internal table using the Function Module GUI_DOWNLOAD.
I hope that it helps u.
Regards,
Venkat.O
REPORT zvenkat_test2.
TYPE-POOLS: truxs.
TYPES:
BEGIN OF t_line,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
END OF t_line.
DATA:w_line TYPE t_line.
DATA:itab TYPE STANDARD TABLE OF t_line.
DATA:itab1 TYPE truxs_t_text_data.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
PARAMETERS p_file TYPE localfile DEFAULT 'C:\Test.txt'.
SELECTION-SCREEN END OF BLOCK b1.
*---------------------------------------------------------------------
"At selection-screen on value-request for p_file.
*---------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_help.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
PERFORM convert_to_csv.
PERFORM download_data.
*&---------------------------------------------------------------------*
*& Form f4_help
*&---------------------------------------------------------------------*
FORM f4_help .
DATA:
l_file_name LIKE ibipparms-path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = l_file_name.
p_file = l_file_name.
ENDFORM. " f4_help
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
SELECT
vbeln
posnr
UP TO 10 ROWS
FROM vbap
INTO TABLE itab.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form convert_to_csv
*&---------------------------------------------------------------------*
FORM convert_to_csv .
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = ';'
TABLES
i_tab_sap_data = itab
CHANGING
i_tab_converted_data = itab1
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " convert_to_csv
*&---------------------------------------------------------------------*
*& Form download_data
*&---------------------------------------------------------------------*
FORM download_data .
DATA l_filename TYPE string.
l_filename = p_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_filename
TABLES
data_tab = itab1
EXCEPTIONS
OTHERS = 1.
ENDFORM. " download_data
2008 Apr 07 6:45 AM
Hi venkat,
ThankQ very much,
Now i need the text fields with double quotes
2008 Apr 07 6:36 AM
Hi
TYPE-POOLS: truxs.
TYPES:
BEGIN OF ty_Line,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
END OF ty_Line.
ty_Lines TYPE STANDARD TABLE of ty_Line WITH DEFAULT KEY.
DATA: itab TYPE ty_Lines.
DATA: itab1 TYPE truxs_t_text_data.
SELECT
vbeln
posnr
UP TO 10 ROWS
FROM vbap
INTO TABLE itab.
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = ';'
TABLES
i_tab_sap_data = itab
CHANGING
i_tab_converted_data = itab1
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\TEMP\test.txt'
TABLES
data_tab = itab1
EXCEPTIONS
OTHERS = 1.
Plz Don't forget to reward points.....
Regards,
Sreenivasa sarma K.
2008 Apr 07 6:40 AM
Kindly reward points if useful and thios close this thread if u feel satisfied
The coding is as follows
* types declaration of ty_tab
TYPES : BEGIN OF ty_tab,
bukrs TYPE anla-bukrs,
anln1 TYPE anla-anln1,
anln2 TYPE anla-anln2,
anlkl TYPE anla-anlkl,
END OF ty_tab.
* data declaration for ty_tab
DATA : it_tab TYPE TABLE OF ty_tab INITIAL SIZE 0,
is_tab TYPE ty_tab.
* data declaration to upload excel file to internal table
DATA : it_data TYPE TABLE OF alsmex_tabline INITIAL SIZE 0,
is_data TYPE alsmex_tabline.
* selection screen
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK b1.
* at selection screen on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_file.
* start of selection
START-OF-SELECTION.
* sub routine to upload data from excel sheet to internal table
PERFORM upload_data.
*&---------------------------------------------------------------------*
*& Form upload_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM upload_data.
IF NOT p_file IS INITIAL.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = 1
i_begin_row = 1
i_end_col = 256
i_end_row = 65536
TABLES
intern = it_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
IF NOT it_data[] IS INITIAL.
LOOP AT it_data INTO is_data.
AT NEW row.
CLEAR : is_tab.
ENDAT.
IF is_data-col = '001'.
MOVE is_data-value TO is_tab-bukrs.
ENDIF.
IF is_data-col = '002'.
MOVE is_data-value TO is_tab-anln1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_tab-anln1
IMPORTING
output = is_tab-anln1.
ENDIF.
IF is_data-col = '003'.
MOVE is_data-value TO is_tab-anln2.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_tab-anln2
IMPORTING
output = is_tab-anln2.
ENDIF.
IF is_data-col = '004'.
MOVE is_data-value TO is_tab-anlkl.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_tab-anlkl
IMPORTING
output = is_tab-anlkl.
ENDIF.
AT END OF row.
APPEND is_tab TO it_tab.
ENDAT.
CLEAR : is_data.
ENDLOOP.
ENDIF.
ENDFORM. " upload_data
2008 Apr 07 6:41 AM
Hi ,
Try this.
The program below demonstrates the above functionality. Here, we are reading data from table EKKO and downloading the data as '|' delimited file.
Editor's note: This tip works on SAP versions 4.6 or higher.
Code
REPORT y_ss_test_ekko .
To hold selection data
DATA: i_ekko TYPE STANDARD TABLE OF ekko.
To hold converted text data
DATA: i_text(4096) TYPE c OCCURS 0.
Selection Screen
PARAMETERS: p_ebeln LIKE ekko-ebeln.
Select data into an ITAB based on the selection Criteria
SELECT * FROM ekko
INTO TABLE i_ekko
WHERE ebeln = p_ebeln.
Process further only if found some data
IF NOT i_ekko[] IS INITIAL.
Convert data in internal table to a delimited text data
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
i_field_seperator = '|'
TABLES
i_tab_sap_data = i_ekko
CHANGING
i_tab_converted_data = i_text
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE: / 'Program failed to Convert data.'.
ELSE.
Download convert data to Presentation Server
CALL FUNCTION 'DOWNLOAD'
TABLES
data_tab = i_text
EXCEPTIONS
OTHERS = 8.
IF sy-subrc <> 0.
WRITE: / 'Program failed to download data.'.
ENDIF.
ENDIF.
ENDIF.
Regards
Sourabh Verma
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |