zoukankan      html  css  js  c++  java
  • abap 超大数据量上传至内表

    每次上传9999,循环十次99990数据量,根据实际需求设置循环次数。

    REPORT ztest22.
    
    TYPE-POOLS:slis.
    DATA:BEGIN OF it_fname OCCURS 0,
      name TYPE char255,
    END OF it_fname.
    
    DATA:g_begin_row TYPE i,
          g_end_row   TYPE i.
    DATA:git_temp TYPE TABLE OF alsmex_tabline,
          gwa_temp TYPE alsmex_tabline.
    
    TYPES:BEGIN OF ty_tab,
      aufnr TYPE aufnr,       "工单
      jx_matnr TYPE matnr,    "机型
      wl_matnr TYPE matnr,    "物料
      mng01 TYPE i,       "数量
      podate  TYPE string,    "日期
    END OF ty_tab.
    
    DATA:gt_itab TYPE TABLE OF ty_tab WITH NON-UNIQUE KEY aufnr jx_matnr,
          wa_itab TYPE  ty_tab.
    
    SELECTION-SCREEN BEGIN OF BLOCK blk_001 WITH FRAME TITLE text-001 . "选择文件路径
    PARAMETERS:p_file LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK blk_001.
    
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file  .
      PERFORM open_file.
    
    START-OF-SELECTION.
      PERFORM upload_file.      "上传数据
    
    *&---------------------------------------------------------------------*
    *&      Form  open_file
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    FORM open_file.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          program_name  = syst-repid
          dynpro_number = syst-dynnr
          mask          = '*.xlsx,*.xls'
          static        = 'X'
        CHANGING
          file_name     = p_file.
    ENDFORM.                    "vq_fn
    
    *&---------------------------------------------------------------------*
    *&      Form  upload_file
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    FORM upload_file .
      g_begin_row = 2.                 "从第几行开始
      g_end_row = g_begin_row + 10000. "列数
    
      DO 10 TIMES.
        REFRESH:git_temp.
    *   Get EXCEL-Sheet in internal table
        CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
          EXPORTING
            filename                = p_file
            i_begin_col             = '1'
            i_begin_row             = g_begin_row
            i_end_col               = 10
            i_end_row               = g_end_row
          TABLES
            intern                  = git_temp
          EXCEPTIONS
            inconsistent_parameters = 1
            upload_ole              = 2
            OTHERS                  = 3.
        IF git_temp[] IS INITIAL.
          EXIT.
        ELSE.
          LOOP AT git_temp INTO gwa_temp.
            AT NEW row.
              CLEAR wa_itab.
            ENDAT.
            CASE gwa_temp-col.
              WHEN '1'.
                wa_itab-aufnr = gwa_temp-value.
              WHEN '2'.
                wa_itab-jx_matnr = gwa_temp-value.
              WHEN '3'.
                wa_itab-wl_matnr = gwa_temp-value.
              WHEN '4'.
                wa_itab-mng01 = gwa_temp-value.
              WHEN '5'.
                wa_itab-podate = gwa_temp-value.
            ENDCASE.
            AT END OF row.
              APPEND wa_itab TO gt_itab.
            ENDAT.
          ENDLOOP.
          g_begin_row = g_end_row + 1.
          g_end_row   = g_begin_row + 10000.
        ENDIF.
      ENDDO.
    ENDFORM.                    " UPLOAD_FILE
    *&---------------------------------------------------------------------*
    *&      Form  append_filename
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *      -->P_NAME     text
    *----------------------------------------------------------------------*
    FORM append_filename USING p_name .
      it_fname-name = p_name.
      APPEND it_fname.
      CLEAR it_fname.
    ENDFORM.                    "append_filename
    abap菜鸟,记录学习笔记。才疏学浅,如有错误,请直接在评论区留言。
  • 相关阅读:
    树莓派pwm驱动好盈电调及伺服电机
    wiringPi库的pwm配置及使用说明
    未能加载文件或程序集“**, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
    poj 1700 Crossing River(贪心)
    前缀 树 背单词(Remember the Word,LA 3942)
    c/c++ double的数字 转成字符串后 可以有效的避免精度要求不高的数
    hdu acm 2154(多解取一解)
    hdu 5104 Primes Problem(prime 将三重循环化两重)
    hdu 2203亲和串 (kmp)
    hdu 2519 新生晚会 排列组合
  • 原文地址:https://www.cnblogs.com/freeandeasy/p/12216846.html
Copyright © 2011-2022 走看看