阿宝
找工作中,求帮助,谢谢!!! QQ:810487238

START-OF-SELECTION.
  PERFORM GET_EXCEL.
  SORT IT_DATA BY  ITMPLA STOLOC MATERI .
  PERFORM PROCESS_DATA. "处理数据
  PERFORM DISPLAY_DATA.

 

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

 

 

posted on 2012-03-29 10:22  阿宝兴荣  阅读(742)  评论(0编辑  收藏  举报