on 06-17-2013 5:00 PM
Hi Guys:
. I display the data as a step loop style and want to download data from ITS.
Can anybody tell me how to download as a txt or excel file?
many thanks !
Regards!
Jay
Dear Jay,
you have to use the mime-download :
* Declaration
TYPES: BEGIN OF tys_data_tab,
wa_data_tab(1) TYPE c,
END OF tys_data_tab.
TYPES: tyt_data_tab TYPE TABLE OF tys_data_tab.
data:
LWA_DATA_TAB(350) TYPE C,
LT_DATA_TAB LIKE TABLE OF LWA_DATA_TAB,
LWA_DATA_OUT(1) TYPE C,
LT_DATA_OUT TYPE TYT_DATA_TAB,
LV_COUNT TYPE I,
lv_conttype type AVWCTXCONT.
* Set:
lv_conttype = 'application/vnd.ms-excel'.
* Build up the datatab from your internal table as
concatenate lwa_datatab field1
INTO LWA_DATA_TAB
SEPARATED BY CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB..
CONDENSE LWA_DATA_TAB.
* This is important to get the fields in separet cells in your excel.
* When all your fields are included
append lwa_datatab to lt_data_tab.
* Now get the data length
LOOP AT LT_DATA_TAB INTO LWA_DATA_TAB.
CLEAR LV_COUNT. " counter
DO.
* copy each sign to output table
* offset
* counter = sy-index
WRITE LWA_DATA_TAB+LF_COUNT(1) TO LWA_DATA_OUT.
APPEND LWA_DATA_OUT TO LT_DATA_OUT.
ADD 1 TO LV_COUNT.
IF LF_COUNT GE 346.
CLEAR LV_COUNT .
EXIT.
ENDIF.
ENDDO.
.
* Hexadecimal conversion off line feed
PERFORM DOWNLOAD_UMBURCH CHANGING LT_DATA_OUT.
ENDLOOP.
******************************
FORM DOWNLOAD_UMBURCH CHANGING pt_data_out TYPE tyt_data_tab..
DATA: lwa_data_out(1) TYPE c.
CLASS cl_abap_conv_in_ce DEFINITION LOAD.
TRY.
CALL METHOD cl_abap_conv_in_ce=>uccp
EXPORTING
uccp = '000D'
RECEIVING
char = lwa_data_out.
CATCH cx_sy_conversion_codepage .
sy-subrc = 0.
CATCH cx_parameter_invalid_type .
sy-subrc = 0.
CATCH cx_sy_codepage_converter_init .
sy-subrc = 0.
ENDTRY.
* 2. Teil
APPEND lwa_data_out TO pt_data_out.
CLEAR lwa_data_out.
TRY.
CALL METHOD cl_abap_conv_in_ce=>uccp
EXPORTING
uccp = '000A'
RECEIVING
char = lwa_data_out.
CATCH cx_sy_conversion_codepage .
sy-subrc = 0.
CATCH cx_parameter_invalid_type .
sy-subrc = 0.
CATCH cx_sy_codepage_converter_init .
sy-subrc = 0.
ENDTRY.
APPEND lwa_data_out TO pt_data_out.
ENDFORM
****************************************
* Now get the length
CLEAR L_DATA_LEN.
LOOP AT LT_DATA_OUT INTO LWA_DATA_OUT.
ADD 2 TO L_DATA_LEN. " each row 2 signs (Hexa code)
ENDLOOP.
LT_DATA_TAB[] = LT_DATA_OUT[].
* Now you neet the correct hexa tab
PERFORM CHANGE_HEX_CHAR CHANGING
LT_DATATAB.
*----------------------------------------------------------------------*
FORM change_hex_char CHANGING pt_datatab TYPE tyt_data_tab.
TYPES: BEGIN OF type_hextab,
line(2) TYPE x,
END OF type_hextab.
DATA: lv_char TYPE c,
lv_hex(2) TYPE x.
DATA: lt_out TYPE TABLE OF type_hextab WITH HEADER LINE.
DATA: lt_help TYPE TABLE OF type_hextab WITH HEADER LINE,
ls_datatab TYPE tys_data_tab,
ls_out TYPE type_hextab.
DATA: lv_count TYPE i.
* Changing c(1) in H(2) --> pt_datatab -->lt_out
LOOP AT pt_datatab INTO ls_datatab.
TRY.
CALL METHOD cl_abap_conv_out_ce=>uccp
EXPORTING
char = ls_datatab-wa_data_tab
RECEIVING
uccp = ls_out-line.
CATCH cx_sy_conversion_codepage .
sy-subrc = 0.
CATCH cx_sy_codepage_converter_init .
sy-subrc = 0.
CATCH cx_parameter_invalid_range .
sy-subrc = 0.
ENDTRY.
APPEND ls_out TO lt_out.
ENDLOOP.
MOVE lt_out[] TO lt_help[].
CLEAR lt_out. REFRESH lt_out.
CLEAR lv_count.
LOOP AT lt_help.
MOVE lt_help-line+1 TO lt_out-line+lv_count.
ADD 1 TO lv_count.
IF lv_count GE 2.
APPEND lt_out.
CLEAR lv_count.
CLEAR lt_out.
ENDIF.
ENDLOOP.
IF NOT lv_count IS INITIAL.
APPEND lt_out.
CLEAR lv_count.
CLEAR lt_out.
ENDIF.
CLEAR lt_help. REFRESH lt_help.
REFRESH pt_datatab.
* Changing hexa 2 to char 1 h(2) --> c(1)
CLEAR ls_out.
LOOP AT lt_out INTO ls_out.
TRY.
CALL METHOD cl_abap_conv_in_ce=>uccp
EXPORTING
uccp = ls_out-line
RECEIVING
char = ls_datatab-wa_data_tab.
CATCH cx_sy_conversion_codepage .
sy-subrc = 0.
CATCH cx_parameter_invalid_type .
sy-subrc = 0.
CATCH cx_sy_codepage_converter_init .
sy-subrc = 0.
ENDTRY.
APPEND ls_datatab TO pt_datatab.
ENDLOOP.
ENDFORM. " CHANGE_HEX_CHAR
*--------------------------------------------------------------------------------------------------------
* CALL
CALL FUNCTION 'ALEWEB_DOWNLOAD'
EXPORTING
DATA_LEN = l_data_len
MIME_TYPE = lv_conttype
DATA_TYPE = 'RAW'
TABLES
DATA_TAB = lt_data_tab
EXCEPTIONS
ITS_NOT_AVAILABLE = 1
OTHERS = 2
.
may this will help you. I'll use this techinque in sevaral ITS Applications.
Best regards
Thorsten
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear Jay,
you can use the following menupoints for download:
"Menu -> System -> List -> Save -> Local File"
OR
"List -> Export -> Spreadsheet"
BR
Zoltan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
78 | |
10 | |
7 | |
6 | |
6 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.