FORM get_excel .
* DATA : LT_INTERN TYPE KCDE_CELLS OCCURS 0 WITH HEADER LINE.
data: lt_intern like alsmex_tabline occurs 0 with header line.
data : ld_index type i.
field-symbols : <fs>.
clear : it_data.
refresh : it_data.
clear : lt_intern.
refresh : lt_intern.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = pr_file
i_begin_col = p_scol
i_begin_row = p_srow
i_end_col = p_ecol
i_end_row = p_erow
tables
intern = lt_intern
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
if lt_intern[] is initial.
format color col_background intensified.
write:/ 'No data in your file to upload'.
exit.
else.
sort lt_intern by row col.
loop at lt_intern.
move lt_intern-col to ld_index.
assign component ld_index of structure it_data to <fs>.
move lt_intern-value to <fs>.
at end of row.
append it_data.
clear it_data.
endat.
endloop.
endif.
endform.
form display_data.
perform fill_layout_structure.
perform fill_field_catalog_table using :
'SALDOC'(001) 'IT_RESULT' 10 'Sales Order No.' ' ' ' ',
'ITMNUM' 'IT_RESULT' 4 'Order Item' ' ' ' ',
'ERRMSG' 'IT_RESULT' 30 'Result Message' ' ' ' ',
'MATERI' 'IT_RESULT' 5 'Material No.' ' ' ' ',
'ITMPLA' 'IT_RESULT' 5 'Plant' ' ' ' ',
'STOLOC' 'IT_RESULT' 12 'Storage Location' ' ' ' ',
'ORDQTY' 'IT_RESULT' 8 'Order Qty' ' ' ' ',
'REJREA' 'IT_RESULT' 5 'Reject Reason' ' ' ' ',
'PARROL' 'IT_RESULT' 5 'Partner Role' ' ' ' ',
'PARTNO' 'IT_RESULT' 5 'Partner No.' ' ' ' ',
'SCHITM' 'IT_RESULT' 5 'Schedule In Item No.' ' ' ' ',
'SCHLIN' 'IT_RESULT' 10 'Schedule Line Item' ' ' ' ',
'SHIDAT' 'IT_RESULT' 5 'Estimate Ship Date' ' ' ' ',
'DATTYP' 'IT_RESULT' 10 'Date Type' ' ' ' ',
'SCHQTY' 'IT_RESULT' 5 'Ship Qty' ' ' ' '.
perform call_alv_function.
endform. " DISPLAY_DATA
form fill_layout_structure .
data: i_events type slis_alv_event.
data : line type slis_listheader.
data : h_sydate like sy-datum.
clear layout.
layout-colwidth_optimize = 'X'.
layout-f2code = '&ETA'.
layout-zebra = 'X'.
layout-detail_popup = 'X'.
clear i_events.
clear line.
line-typ = 'H'.
append line to heading.
endform. " FILL_LAYOUT_STRUCTURE
form fill_field_catalog_table using f t o d h tl .
data l_fieldcat type slis_fieldcat_alv.
clear l_fieldcat.
statics pos like sy-index value 20.
pos = pos + 1.
clear t_fld.
move 1 to t_fld-row_pos.
move pos to t_fld-col_pos.
move f to l_fieldcat-fieldname.
move t to l_fieldcat-tabname.
move o to l_fieldcat-outputlen.
move d to l_fieldcat-seltext_m.
move h to l_fieldcat-hotspot.
move tl to l_fieldcat-do_sum.
append l_fieldcat to fieldcat.
endform. " FILL_FIELD_CATALOG_TABLE
form call_alv_function .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = v_repid
i_structure_name = 'IT_RESULT'
it_fieldcat = fieldcat
it_sort = sort
it_events = events
tables
t_outtab = it_result.
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. " CALL_ALV_FUNCTION