Downloading Internal table data into Excel
Downloading Internal table data into Excel :
*&---------------------------------------------------------------------*
*& Report ZVB_E070
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_e070.
TYPE-POOLS: slis.
TABLES:e070,e07t,user_addr.
TYPES:BEGIN OF ty_E070,
trkorr TYPE e070-trkorr,
trstatus TYPE e070-trstatus,
as4user TYPE e070-as4user,
as4date TYPE e070-as4date,
as4time TYPE e070-as4time,
strkorr TYPE e070-strkorr,
END OF ty_E070.
TYPES: BEGIN OF ty_E07T,
trkorr TYPE e07t-trkorr,
as4text TYPE e07t-as4text,
END OF ty_E07T.
TYPES:BEGIN OF ty_USER_ADDR,
bname TYPE user_addr-bname,
name_textc TYPE user_addr-name_textc,
END OF ty_USER_ADDR.
TYPES: BEGIN OF ty_final,
trkorr TYPE e070-trkorr,
trstatus TYPE e070-trstatus,
as4user TYPE e070-as4user,
name_textc TYPE user_addr-name_textc,
as4date TYPE e070-as4date,
as4time TYPE e070-as4time,
strkorr TYPE e070-strkorr,
as4text TYPE e07t-as4text,
END OF ty_final.
DATA: iw_e070 TYPE ty_e070,
iw_e07t TYPE ty_e07t,
iw_user_addr TYPE ty_user_addr,
iw_final TYPE ty_final,
it_e070 TYPE TABLE OF ty_e070,
it_e07t TYPE TABLE OF ty_e07t,
it_user_addr TYPE TABLE OF ty_user_addr,
it_final TYPE TABLE OF ty_final.
DATA:it_fcat TYPE slis_t_fieldcat_alv,
iW_fcat TYPE slis_fieldcat_alv.
DATA:iw_layout TYPE slis_layout_alv.
DATA: g_str1 TYPE string VALUE '.xls',
g_str TYPE string,
g_str2 TYPE string.
DATA : BEGIN OF it_header OCCURS 0,
line(50) TYPE c,
END OF it_header.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:s_trkorr FOR e070-trkorr,
s_date FOR e070-as4date.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2.
PARAMETERS:p_alv RADIOBUTTON GROUP g1 USER-COMMAND usr DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_down RADIOBUTTON GROUP g1.
SELECTION-SCREEN COMMENT 3(29) TEXT-002.
PARAMETERS:p_file TYPE rlgrap-filename MODIF ID sc1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
CHANGING
file_name = P_file.
AT SELECTION-SCREEN OUTPUT.
IF p_ALV EQ 'X'.
LOOP AT SCREEN.
IF screen-name = 'P_FILE'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
SELECT trkorr
trstatus
as4user
as4date
as4time
strkorr
FROM e070
INTO TABLE it_e070
WHERE trkorr IN s_trkorr
AND as4date IN s_date
AND trstatus = 'R'.
IF it_e070 IS NOT INITIAL.
SELECT bname name_textc
FROM user_addr
INTO TABLE it_user_addr
FOR ALL ENTRIES IN it_e070
WHERE bname = it_e070-as4user.
SELECT trkorr as4text
FROM e07t
INTO TABLE it_e07t
FOR ALL ENTRIES IN it_e070
WHERE trkorr = it_e070-trkorr
AND langu = sy-langu.
ELSE.
MESSAGE 'No data for the selection criteria' TYPE 'E'.
ENDIF.
LOOP AT it_e070 INTO iw_e070.
iw_final-trkorr = iw_e070-trkorr.
iw_final-trstatus = iw_e070-trstatus.
iw_final-as4user = iw_e070-as4user.
iw_final-as4date = iw_e070-as4date.
iw_final-as4time = iw_e070-as4time.
iw_final-strkorr = iw_e070-strkorr.
READ TABLE it_user_addr INTO iw_user_addr WITH KEY bname = iw_e070-as4user.
IF sy-subrc = 0.
iw_final-name_textc = iw_user_addr-name_textc.
ENDIF.
READ TABLE it_e07t INTO iw_e07t WITH KEY trkorr = iw_e070-trkorr.
IF sy-subrc = 0.
iw_final-as4text = iw_e07t-as4text.
ENDIF.
APPEND iw_final TO it_final.
ENDLOOP.
IF p_alv = 'X'.
iw_layout-colwidth_optimize = 'X'.
iw_layout-zebra = 'X'.
REFRESH:it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 1.
iw_fcat-fieldname = 'TRKORR'.
iw_fcat-seltext_m = 'Request/Task'.
* iw_fcat-outputlen = '15'.
iw_fcat-key = 'X'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 2.
iw_fcat-fieldname = 'TRSTATUS'.
iw_fcat-seltext_m = 'Status'.
* iw_fcat-outputlen = '10'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 3.
iw_fcat-fieldname = 'AS4USER'.
iw_fcat-seltext_m = 'Owner'.
* iw_fcat-outputlen = '15'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 3.
iw_fcat-fieldname = 'NAME_TEXTC'.
iw_fcat-seltext_m = 'Owner Full Name'.
* iw_fcat-outputlen = '15'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 4.
iw_fcat-fieldname = 'AS4DATE'.
iw_fcat-seltext_m = 'Last Changed On'.
* iw_fcat-outputlen = '10'.
iw_fcat-icon = 'X'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 5.
iw_fcat-fieldname = 'AS4TIME'.
iw_fcat-seltext_m = 'Last Changed At'.
* iw_fcat-outputlen = '10'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 6.
iw_fcat-fieldname = 'STRKORR'.
iw_fcat-seltext_m = 'Parent Req'.
* iw_fcat-outputlen = '10'.
APPEND iw_fcat TO it_fcat.
CLEAR:iw_fcat.
iw_fcat-col_pos = 7.
iw_fcat-fieldname = 'AS4TEXT'.
iw_fcat-seltext_m = 'Short Desc.'.
* iw_fcat-outputlen = '10'.
APPEND iw_fcat TO it_fcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = iw_layout
it_fieldcat = it_fcat
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
ELSE.
it_header-line = 'Requset/Task'.
APPEND it_header.
it_header-line = 'Status'.
APPEND it_header.
it_header-line = 'Owner'.
APPEND it_header.
it_header-line = 'Owner Full Name'.
APPEND it_header.
it_header-line = 'Last Changed On'.
APPEND it_header.
it_header-line = 'Last Changed At'.
APPEND it_header.
it_header-line = 'Parent Req'.
APPEND it_header.
it_header-line = 'Short Desc'.
APPEND it_header.
IF p_file NS '.xls'.
g_str = p_file.
CONCATENATE g_str g_str1 INTO g_str2.
ELSE.
g_str2 = p_file.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = g_str2
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = it_FINAL
fieldnames = it_header.
ENDIF.
Input Screen:
Output:
Comments
Post a Comment