ABAP 选择屏幕excel上传及文件路径选择,

PARAMETERS: p_file LIKE rlgrap-filename MODIF ID md3 .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. “文件F4帮助事件
  PERFORM select_file.

START-OF-SELECTION.

        PERFORM frm_file_upload.

 

FORM frm_file_upload .
  DATA: BEGIN OF iexcel OCCURS 0.
          INCLUDE STRUCTURE alsmex_tabline.
  DATA: END OF iexcel.
  DATA: l_end_col TYPE i.
  l_end_col = 40.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_file
      i_begin_col             = 1
      i_begin_row             = 2
      i_end_col               = l_end_col
      i_end_row               = 99999
    TABLES
      intern                  = iexcel
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.
  IF sy-subrc <> 0.
    MESSAGE 'upload failed' TYPE 'S' DISPLAY LIKE 'E'.
  ELSE.

    LOOP AT iexcel INTO iexcel.
      CASE iexcel-col.
        WHEN '0001'. “按照单元格一一对应放到内表中,记得需要加前导零的字段,加前导零
*          ls_new-vkorg = iexcel-value.
*          PERFORM frm_check_authority USING ls_new-vkorg.
          gs_out-vbeln = iexcel-value.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = gs_out-vbeln
            IMPORTING
              output = gs_out-vbeln.

        WHEN '0002'.
          gs_out-posnr = iexcel-value.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = gs_out-posnr
            IMPORTING
              output = gs_out-posnr.
        WHEN '0003'.
          gs_out-vbeln_cso = iexcel-value.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = gs_out-vbeln_cso
            IMPORTING
              output = gs_out-vbeln_cso.
        WHEN '0004'.
          gs_out-posnr_cso = iexcel-value.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = gs_out-posnr_cso
            IMPORTING
              output = gs_out-posnr_cso.
        WHEN '0005'.
          gs_out-pikmg = iexcel-value.
        WHEN '0006'.
          gs_out-route = iexcel-value.

        WHEN '0007'.
          gs_out-name_a = iexcel-value.
        WHEN '0008'.
          gs_out-street = iexcel-value.
        WHEN '0009'.
          gs_out-city = iexcel-value.

        WHEN '0010'.
          gs_out-remark = iexcel-value.
        WHEN '0011'.
          gs_out-tel_number = iexcel-value.
      ENDCASE.
      AT END OF row.
        APPEND gs_out TO gt_out.
        CLEAR gs_out.
      ENDAT.
    ENDLOOP.

  ENDIF.
ENDFORM.                    " FRM_FILE_UPLOAD

 

FORM select_file .
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_path         = 'C:\'
*     mask             = ',Text Files,*.txt;*.prn,All Files,*.*.'(101)
      mask             = ',*.xls,*.*.' " upload for excel
      title            = 'Select File'(100)
    IMPORTING
      filename         = p_file
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.
  IF sy-subrc <> 0 AND sy-subrc <> 3.
*    MESSAGE e001(00) WITH 'Error Selecting File'(007).
    MESSAGE e008(ytr).
  ENDIF.
ENDFORM.                    " SELECT_FILE

posted @ 2021-03-17 14:00  闫默涵  阅读(1040)  评论(0)    收藏  举报