华风 发表于 2015-9-20 09:19:19

SAP批量上传EXCEL

  START-OF-SELECTION.
PERFORM GET_EXCEL.
SORT IT_DATA BYITMPLA STOLOC MATERI .
PERFORM PROCESS_DATA. "处理数据
PERFORM DISPLAY_DATA.
  
  FORM get_excel .
*DATA : LT_INTERN TYPEKCDE_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.
      clearit_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_tableusingf 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 fto l_fieldcat-fieldname.
move tto l_fieldcat-tabname.
move oto l_fieldcat-outputlen.
move dto l_fieldcat-seltext_m.
move hto 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
  
  
页: [1]
查看完整版本: SAP批量上传EXCEL