REPORT ZTEST_DOWNLOAD_TEMP.
*----------------------------------------------------------------------*
* TABLES AND VARIABLES
*----------------------------------------------------------------------*
TABLES: sscrfields. "+ch001
TYPES:BEGIN OF T_DATATAB,
WERKS(8) TYPE C,
MATNR(50) TYPE C,"material no
CHARG(50) TYPE C,"batch
VALUE(50) TYPE C,"batch grade value
END OF T_DATATAB.
*----------------------------------------------------------------------*
* SELECTION-SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK RAD1 WITH FRAME TITLE TEXT-T01.
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK RAD1.
SELECTION-SCREEN BEGIN OF LINE.
* Add buttons to application toolbar
SELECTION-SCREEN FUNCTION KEY 1. "Will have a function code of 'FC01'
SELECTION-SCREEN END OF LINE.
PARAMETER: p_ucomm LIKE sy-ucomm NO-DISPLAY.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
*+ch001 additional button to download template start
INITIALIZATION.
* Add displayed text string to buttons
MOVE 'Download Template' TO sscrfields-functxt_01.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
* Check if button have been selected or not
IF sscrfields-ucomm EQ 'FC01'.
p_ucomm = 'BUTN1'.
ELSE.
CLEAR p_ucomm.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
IF p_ucomm = 'BUTN1'.
PERFORM download_template1.
ENDIF.
*+ch001 additional button to download template end
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------------------------------------------------------*
*END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form DOWNLOAD_TEMPLATE1 ++ch001
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM download_template1 .
*TYPES:BEGIN OF T_DATATAB,
* WERKS(8) TYPE C,
* MATNR(50) TYPE C,"material no
* CHARG(50) TYPE C,"batch
* VALUE(50) TYPE C,"batch grade value
* END OF T_DATATAB.
DATA: t_templt type T_DATATAB OCCURS 0 WITH HEADER LINE.
REFRESH t_templt.
t_templt-werks = 'Plant'.
t_templt-matnr = 'Material no'.
t_templt-charg = 'Batch'.
t_templt-value = 'batch grade value'.
APPEND t_templt.
CLEAR t_templt.
DATA: lv_rc TYPE i,
lt_filetable TYPE filetable.
DATA: v_path TYPE string.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Please Select File'
default_extension = 'XLS'
CHANGING
file_table = lt_filetable
rc = lv_rc.
IF sy-subrc <> 0.
MESSAGE 'Can not get file path' TYPE 'E'.
ELSEIF lv_rc = 1.
READ TABLE lt_filetable INTO v_path INDEX 1.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = v_path
filetype = 'DAT'
codepage = '8400'
TABLES
data_tab = t_templt
* FIELDNAMES =
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.
ENDFORM. " DOWNLOAD_TEMPLATE1
Post a Comment