Code: Alles auswählen.
* event handler for data retrieval
DATA: wa_OrderList LIKE LINE OF ts_OrderList,
file TYPE XString,
content_length TYPE String,
numC1 TYPE STRING,
numC2 TYPE STRING,
tempStr TYPE STRING,
TAB(1) type c,
CRLF(1) type c.
* define special chars
TAB = CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
CRLF = CL_ABAP_CHAR_UTILITIES=>NEWLINE.
* call function RFC: get orderlist
CALL FUNCTION 'ZORDERLIST_GETDATA'
TABLES
ITVALUES = ts_OrderList.
* concatenate table into tempStr: Format for MS-Excel
LOOP AT ts_OrderList INTO wa_OrderList.
CONCATENATE
tempStr
wa_OrderList-SD_DOC
TAB
wa_OrderList-CREATION_DATE
TAB
wa_OrderList-Plant
TAB
wa_OrderList-Short_Text
TAB
wa_OrderList-Currency
CRLF
INTO tempStr.
ENDLOOP.
* convert tempString to binary
DATA: conv TYPE REF TO CL_ABAP_CONV_OUT_CE.
* convert tempString to binary
conv = CL_ABAP_CONV_OUT_CE=>CREATE( ).
CALL METHOD conv->write( data = tempStr ).
* get binary file from buffer
file = conv->get_buffer( ).
content_length = xstrlen( file ).
* set response data to be the file content
runtime->server->response->set_data( file ).
* set the mime-type and file size in the response
runtime->server->response->set_header_field(
name = 'Content-Type'
value = 'application/vnd.ms-excel' ).
runtime->server->response->set_header_field(
name = 'Content-Length'
value = content_length ).
runtime->server->response->delete_header_field(
name = 'Cache-Control' ).
runtime->server->response->delete_header_field(
name = 'Expires' ).
* response data is complete don't call onLayout method
navigation->response_complete( ).