内表数据保存到本地EXCEL



EXCEL_OLE_STANDARD_DAT

FORM frm_batch_output  TABLES   pt_out STRUCTURE gt_out.
  DATA:l_filename TYPE string,
       l_path TYPE string,
       l_fullpath TYPE string,
       l_title TYPE string,
       l_x_filename LIKE rlgrap-filename.


  DATABEGIN OF lt_field OCCURS 0,
         fname(40TYPE ,
       END OF lt_field.
  DATABEGIN OF lt_tab OCCURS 0,
          matnr(18),
          maktx(40),
          werks(4),
          lgort(4),
          lgort1(20),
          lgort2(20),
        END OF lt_tab.

  IF pt_out[] IS INITIAL.
    MESSAGE s208 WITH '查无需要下载的数据' DISPLAY LIKE 'I'.
    RETURN.
  ENDIF.


  CONCATENATE '补充库位下载_' sy-datum '_' sy-uzeit INTO l_title.
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title         l_title
*     default_extension    = 'xlsx'
      default_file_name    l_title
      file_filter          '(电子表格EXCEL)'
    CHANGING
      filename             l_filename
      path                 l_path
      fullpath             l_fullpath
    EXCEPTIONS
      cntl_error           1
      error_no_gui         2
      not_supported_by_gui 3
      OTHERS               4.
  IF sy-subrc NE 0.
    MESSAGE s398 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
    LEAVE SCREEN.
  ELSEIF l_fullpath IS INITIAL.
    MESSAGE s208 WITH '请选择保存路径' DISPLAY LIKE 'E'.
    LEAVE SCREEN.
  ENDIF.

  lt_field-fname '物料编号'.
  APPEND lt_field.
  CLEAR lt_field.

  lt_field-fname '物料描述'.
  APPEND lt_field.
  CLEAR lt_field.

  lt_field-fname '工厂'.
  APPEND lt_field.
  CLEAR lt_field.

  lt_field-fname '库位'.
  APPEND lt_field.
  CLEAR lt_field.

  lt_field-fname '补充库位一'.
  APPEND lt_field.
  CLEAR lt_field.

  lt_field-fname '补充库位二'.
  APPEND lt_field.
  CLEAR lt_field.

  LOOP AT pt_out.
    MOVE-CORRESPONDING pt_out TO lt_tab.
    APPEND lt_tab.
    CLEAR lt_tab.
  ENDLOOP.

  l_x_filename l_fullpath.
  CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
    EXPORTING
      file_name                 l_x_filename
*     create_pivot              = 0
*     DATA_SHEET_NAME           = ' '
*     PIVOT_SHEET_NAME          = ' '
*     PASSWORD                  = ' '
*     PASSWORD_OPTION           = 0
    TABLES
*     PIVOT_FIELD_TAB           =
      data_tab                  lt_tab
      fieldnames                lt_field
    EXCEPTIONS
      file_not_exist            1
      filename_expected         2
      communication_error       3
      ole_object_method_error   4
      ole_object_property_error 5
      invalid_pivot_fields      6
      download_problem          7
      OTHERS                    8.
  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.                    " FRM_BATCH_OUTPUT

猜你喜欢

转载自blog.csdn.net/linmingqiang506/article/details/43272229