lw_file_table TYPE file_table.
DATA: l_rc TYPE i.
DATA: lv_pathname LIKE rlgrap-filename.
DATA: lt_intern TYPE STANDARD TABLE OF alsmex_tabline,
lw_intern TYPE alsmex_tabline.
DATA: lt_save_data TYPE STANDARD TABLE OF spfli,
lw_save_data TYPE spfli.
DATA: ls_db_data TYPE spfli.
DATA: lv_col TYPE i.
FIELD-SYMBOLS: <fs>.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = '選擇文件'
* default_extension =
default_filename = '*.xls'
* file_filter = '*.xls'
* with_encoding =
* initial_directory =
* multiselection =
CHANGING
file_table = lt_file_table
rc = l_rc
* user_action =
* file_encoding =
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CHECK l_rc = 1.
READ TABLE lt_file_table INTO lw_file_table INDEX 1.
lv_pathname = lw_file_table-filename.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = lv_pathname
i_begin_col = 1
i_begin_row = 2
i_end_col = 4
i_end_row = 9999
TABLES
intern = lt_intern
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CHECK lt_intern IS NOT INITIAL.
SORT lt_intern BY row col.
LOOP AT lt_intern INTO lw_intern.
lv_col = lw_intern-col + 1.
ASSIGN COMPONENT lv_col OF STRUCTURE lw_save_data TO <fs>.
<fs> = lw_intern-value.
AT END OF row.
APPEND lw_save_data TO lt_save_data.
CLEAR lw_save_data.
ENDAT.
CLEAR: lw_intern.
UNASSIGN <fs>.
ENDLOOP.
*補零
* LOOP AT lt_save_data INTO lw_save_data.
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = lw_save_data-nc_code
* IMPORTING
* output = lw_save_data-nc_code.
* MODIFY lt_save_data FROM lw_save_data.
* CLEAR: lw_save_data.
* ENDLOOP.
MODIFY spfli FROM TABLE lt_save_data.
IF sy-subrc = 0.
MESSAGE s002(zmsg_fi_nc).
ELSE.
MESSAGE s003(zmsg_fi_nc) DISPLAY LIKE 'E'.
ENDIF.