zoukankan      html  css  js  c++  java
  • 物料批量盘点,调用其中两个BAPI BAPI_MATPHYSINV_COUNT BAPI_MATPHYSINV_CHANGECOUNT

    涉及两个BAPI:录入数量BAPI_MATPHYSINV_COUNT

    修改数量:BAPI_MATPHYSINV_CHANGECOUNT

    REPORT  ZSC_133 NO STANDARD PAGE HEADING
                           MESSAGE-ID zsc.

    TABLES:
      ISEG,IKPF.

    type-pools: slis.
    DATA:g_variant LIKE disvariant.
    DATA: it_alv         TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    DATA gt_fieldcat TYPE lvc_t_fcat .
    DATA ls_fcat TYPE lvc_s_fcat .
    DATA: g_status_set   TYPE slis_formname,
          g_layout       TYPE slis_layout_alv,           " alv layout
          g_sort         TYPE slis_t_sortinfo_alv,       " ALV sort table
          g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
          g_events       TYPE slis_t_event.
    *ALV相关声明
    TYPE-POOLS: slis.
    DATA: wcl_container TYPE REF TO cl_gui_custom_container, "一个容器
          wcl_alv TYPE REF TO cl_gui_alv_grid. "一个ALV对象
    DATA gs_layout TYPE lvc_s_layo .
    *data:count type i.
    DATA: INPUT TYPE KCDE_INTERN_STRUC OCCURS 100 WITH HEADER LINE.
    DATA: begin of t_itab.
            INCLUDE STRUCTURE ISEG.  "atflv
    DATA: NAME1 TYPE t001w-NAME1.
    DATA: LGOBE TYPE t001l-LGOBE.
    DATA: MAKTX TYPE MAKT-MAKTX.
    DATA: TDATE(10TYPE C.
    DATA: end of t_itab.
    DATA: BEGIN OF T_HEAD.
    data: IBLNR LIKE IKPF-IBLNR.
    DATA: GJAHR LIKE IKPF-GJAHR.
    DATA: ZLDAT LIKE IKPF-ZLDAT.
    DATA: END OF T_HEAD.
    DATA: gt_output LIKE TABLE OF t_itab.
    DATA: gt_head like TABLE OF t_head.
    DATA: GT_UP LIKE ISEG OCCURS WITH HEADER LINE.
    DATA: GT_UPDATE LIKE ISEG OCCURS WITH HEADER LINE.
    DATA: GT_UPHEAD LIKE IKPF OCCURS WITH HEADER LINE.
    DATA: T_DATE LIKE ISEG-ZLDAT.
    DATA: T_I TYPE I.
    data: T_IBLNR LIKE IKPF-IBLNR.
    data: T_ZSTAT LIKE IKPF-ZSTAT.
    DATA: T_XZAEL LIKE ISEG-XZAEL.
    DATA: T_MESSAGE TYPE BAPIRET2-MESSAGE.
    data: ITEMS LIKE BAPI_PHYSINV_ITEM OCCURS WITH HEADER LINE.
    data: C_ITEMS LIKE BAPI_PHYSINV_COUNT_ITEMS OCCURS WITH HEADER LINE.
    DATA: HEAD LIKE BAPI_PHYSINV_HEAD OCCURS WITH HEADER LINE.
    DATA: RETURN LIKE BAPIRET2 OCCURS WITH HEADER LINE.
    DATA: SERIALNUMBERS LIKE BAPI_PHYSINV_SERIALNUMBERS OCCURS 0.
    DATA: T_UNIT TYPE ISEG-ERFME.
    DATA: T_P TYPE I.
    *****************************
    *----------------------------------------------------------------------*
    * INTERNAL TABLES AND WORK AREAS                                       *
    *----------------------------------------------------------------------*


    *----------------------------------------------------------------------*
    * GLOBAL VARIABLES                                                     *
    *----------------------------------------------------------------------*


    *----------------------------------------------------------------------*
    * PARAMETERS AND SELECT-OPTIONS                                        *
    *----------------------------------------------------------------------*
    SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:
      P_IBLNR FOR ISEG-IBLNR,
      P_GJAHR FOR ISEG-GJAHR DEFAULT SY-DATUM+0(4).
    PARAMETERS: r1 RADIOBUTTON GROUP rad1 DEFAULT 'X',
                r2 RADIOBUTTON GROUP rad1,
                r3 RADIOBUTTON GROUP rad1 .
    PARAMETERS: P_LFILE LIKE RLGRAP-FILENAME .
    SELECTION-SCREEN END OF BLOCK rad1.

    ************************************************************************
    * MAIN PROCESS                                                         *
    ************************************************************************
    *----------------------------------------------------------------------*
    * INITIALIZATION                                                       *
    *----------------------------------------------------------------------*
    *INITIALIZATION.


    **----------------------------------------------------------------------
    * START-OF-SELECTION                                                   *
    *----------------------------------------------------------------------*
    *****取数
    if r1 'X'.
      if P_IBLNR[] is INITIAL or P_GJAHR[] is INITIAL.
        MESSAGE i000 WITH '查询条件:凭证、年度不能为空!'.
        STOP.
      endif.
      PERFORM  get_data.
    endif.
    ***导入
    if r2 'X'OR r3 'X'.
      PERFORM GET_FILENAME USING P_LFILE
                           CHANGING P_LFILE.
      if p_lfile <> ''.
        PERFORM up_data.
      endif.
    endif.
    *&---------------------------------------------------------------------*
    *&      Form  GET_DATA
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM GET_DATA .
      select ISEG~IBLNR ISEG~GJAHR
        ISEG~WERKS T001W~NAME1
        ISEG~LGORT t001l~LGOBE
        ISEG~ZEILI ISEG~MATNR MAKT~MAKTX
        ISEG~CHARG ISEG~BSTAR
        ISEG~MENGE ISEG~MEINS ISEG~ERFMG ISEG~ERFME
        ISEG~ZLDAT
        ISEG~XZAEL
    *    ISEG~ZLDAT AS TDATE
      INTO CORRESPONDING FIELDS OF TABLE GT_OUTPUT
      FROM ISEG
      JOIN T001W ON ISEG~WERKS T001W~WERKS
      JOIN T001L ON ISEG~WERKS T001L~WERKS AND ISEG~LGORT T001L~LGORT
      JOIN MAKT ON ISEG~MATNR MAKT~MATNR
      WHERE ISEG~IBLNR IN P_IBLNR AND
            ISEG~GJAHR IN P_GJAHR AND
            MAKT~SPRAS 1.

      LOOP AT GT_OUTPUT INTO T_ITAB.
        IF T_ITAB-ZLDAT <> '' AND T_ITAB-ZLDAT <> '00000000'.
          T_ITAB-TDATE T_ITAB-ZLDAT.
          replace all occurrences of '-' in T_ITAB-TDATE with space.
          replace all occurrences of '.' in T_ITAB-TDATE with space.
          condense T_ITAB-TDATE no-gaps.
          MODIFY GT_OUTPUT FROM T_ITAB.
        ENDIF.
      ENDLOOP.
    ***呈现
      PERFORM display_data.

    ENDFORM.                    " GET_DATA

    FORM display_data.
      IF gt_output[] is INITIAL.
        return.
      ENDIF.
    *  sort gt_display by PRUEFLOS MERKNR.
      PERFORM display_alv TABLES gt_output USING '库存盘点信息'.
    ENDFORM.                    "DISPLAY_DATA

    FORM build_fieldcat.

      REFRESH it_alv.
      PERFORM alv_append USING 'IBLNR' '盘点凭证' .
      PERFORM alv_append USING 'GJAHR' '年度' .
      PERFORM alv_append USING 'WERKS' '工厂' .
      PERFORM alv_append USING 'NAME1' '工厂名称' .
      PERFORM alv_append USING 'LGORT' '库存地点' .
      PERFORM alv_append USING 'LGOBE' '库存名称'.
      PERFORM alv_append USING 'ZEILI' '行号'.

      PERFORM alv_append USING 'MATNR' '产品代码' .
      PERFORM alv_append USING 'MAKTX' '产品名称' .

      PERFORM alv_append USING 'CHARG' '批次' .
      PERFORM alv_append USING 'BSTAR' '存货类型' .
      PERFORM alv_append USING 'ERFMG' '盘点数量' .
      PERFORM alv_append USING 'ERFME' '盘点单位' .
    *  PERFORM alv_append USING 'ZLDAT' '盘点日期'.
      PERFORM alv_append USING 'TDATE' '盘点日期'.
      PERFORM alv_append USING 'XZAEL' '盘点标记'.
    *  PERFORM alv_append USING 'MENGE' '基本数量' .
    *  PERFORM alv_append USING 'MEINS' '基本单位'.
    ENDFORM.                    " file_upload

    *&---------------------------------------------------------------------*
    *&  incluede FORM display_ALV                                          *
    *&---------------------------------------------------------------------*
    FORM display_ALV TABLES it_data USING title.

      PERFORM build_fieldcat.
      g_layout-colwidth_optimize 'X'.

      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program sy-repid
          it_fieldcat        it_alv[]
          is_variant         g_variant
          i_save             'X'
          is_layout          g_layout
          i_grid_title       title
        TABLES
          t_outtab           it_data
        EXCEPTIONS
          program_error      1
          OTHERS             2.

    ENDFORM.


    *&--------------------------------------------------------------------*
    *&      Form  alv_append
    *&--------------------------------------------------------------------*
    *       text
    *---------------------------------------------------------------------*
    *      -->FIELDNAME  text
    *      -->SELTEXT_1  text
    *---------------------------------------------------------------------*
    FORM alv_append USING fieldname seltext_1.
      CLEAR it_alv.
      it_alv-fieldname   fieldname.
      it_alv-seltext_l   seltext_1.
      APPEND it_alv.
    ENDFORM.                    "alv_append
    *&---------------------------------------------------------------------*
    *&      Form  UP_DATA
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM UP_DATA .
      CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
        EXPORTING
          FILENAME                P_LFILE
          I_BEGIN_COL             1
          I_BEGIN_ROW             1
          I_END_COL               256
          I_END_ROW               65536
        TABLES
          INTERN                  INPUT
        EXCEPTIONS
          INCONSISTENT_PARAMETERS 1
          UPLOAD_OLE              2
          OTHERS                  3.
      IF SY-SUBRC <> 0.
        MESSAGE E000(zscWITH '文件路径有误!'.
      ENDIF.

      LOOP AT INPUT.
        IF input-row '0001'.
          CONTINUE.             "第一行是字段名,直接跳过
        ELSE.

          CASE INPUT-COL.
            WHEN '0001'.
              GT_UP-IBLNR INPUT-VALUE.  "盘点凭证
            WHEN '0002'.
              GT_UP-GJAHR INPUT-VALUE.  "年度
            WHEN '003'.
              GT_UP-WERKS INPUT-VALUE.
            WHEN '005'.
              GT_UP-LGORT INPUT-VALUE.
            WHEN '0007'.
              GT_UP-ZEILI INPUT-VALUE.  "行号
            WHEN '0008'.
              GT_UP-MATNR INPUT-VALUE.  "
            WHEN '0010'.
              GT_UP-CHARG INPUT-VALUE.  "
            WHEN '0012'.
              GT_UP-ERFMG INPUT-VALUE.  "盘点数量
              GT_UP-MENGE INPUT-VALUE.  "基本数量
            WHEN '0014'.
              GT_UP-ZLDAT INPUT-VALUE.  "盘点日期
          ENDCASE.

          AT END OF ROW.
            APPEND GT_UP.
            CLEAR GT_UP.
          ENDAT.

        ENDIF.

      ENDLOOP.
    ***做处理
      CLEAR:GT_UPDATE.
      CLEAR:ITEMS.
      T_I 0.
      LOOP AT GT_UP.
    ****盘点标记
        SELECT SINGLE DSTAT
        INTO T_ZSTAT
        FROM IKPF
        WHERE IKPF~IBLNR GT_UP-IBLNR AND
              IKPF~GJAHR GT_UP-GJAHR .
        IF T_ZSTAT 'X'.
          CONCATENATE '凭证号:' GT_UP-IBLNR '年度:' GT_UP-GJAHR '提示:已经全部过账,不允许再导入!'  INTO T_MESSAGE.
          CONDENSE T_MESSAGE.
          MESSAGE I000(zscWITH T_MESSAGE.
          STOP.
        ENDIF.

        SELECT SINGLE XDIFF
        INTO T_XZAEL
        FROM ISEG
        WHERE ISEG~IBLNR GT_UP-IBLNR AND
              ISEG~GJAHR GT_UP-GJAHR AND
              ISEG~ZEILI GT_UP-ZEILI.
        IF T_XZAEL 'X'.
          CONCATENATE '凭证号:' GT_UP-IBLNR '年度:' GT_UP-GJAHR '项目号:' GT_UP-ZEILI '提示:已经过账,不允许再导入!'  INTO T_MESSAGE.
          CONDENSE T_MESSAGE.
          MESSAGE I000(zscWITH T_MESSAGE.
          STOP.
        ENDIF.

    ***检测日期
    *    replace all occurrences of '-' in GT_UP-ZLDAT with space.
    *    condense GT_UP-ZLDAT no-gaps.
        IF GT_UP-ZLDAT ''OR GT_UP-ZLDAT '00000000'.
          MESSAGE I000(zscWITH '盘点日期不能为空,请核对导入文件!'.
          STOP.
        ENDIF.
        IF T_I 0.
          T_DATE GT_UP-ZLDAT.
          T_I T_I + 1.
        ELSE.
          IF GT_UP-ZLDAT <> T_DATE.
            MESSAGE I000(zscWITH '盘点日期不一致,请核对导入文件!'.
            STOP.
          ENDIF.
        ENDIF.
        SELECT *
        INTO CORRESPONDING FIELDS OF GT_UPDATE
        FROM ISEG
        WHERE ISEG~IBLNR GT_UP-IBLNR AND
              ISEG~GJAHR GT_UP-GJAHR AND
              ISEG~ZEILI GT_UP-ZEILI.
        ENDSELECT.

        IF SY-SUBRC 0.
          IF R2 'X' AND GT_UPDATE-XZAEL 'X'.
            CONCATENATE '凭证号:' GT_UP-IBLNR '年度:' GT_UP-GJAHR '项目号:' GT_UP-ZEILI '提示:已经盘点过,请选择批量修改!'  INTO T_MESSAGE.
            CONDENSE T_MESSAGE.
            MESSAGE I000(zscWITH T_MESSAGE.
            STOP.
          ENDIF.
          IF R3 'X' AND GT_UPDATE-XZAEL ''.
            CONCATENATE '凭证号:' GT_UP-IBLNR '年度:' GT_UP-GJAHR '项目号:' GT_UP-ZEILI '提示:还未盘点,请选择批量输入!'  INTO T_MESSAGE.
            CONDENSE T_MESSAGE.
            MESSAGE I000(zscWITH T_MESSAGE.
            STOP.
          ENDIF.
    ***检测明细项目
          if GT_UP-MATNR GT_UPDATE-MATNR AND GT_UP-WERKS GT_UPDATE-WERKS AND GT_UPDATE-LGORT GT_UP-LGORT AND GT_UP-CHARG GT_UPDATE-CHARG.

          ELSE.
            CONCATENATE '凭证号:' GT_UP-IBLNR '年度:' GT_UP-GJAHR '项目号:' GT_UP-ZEILI '提示:物料、工厂、库存、批次有不对,请核对!'  INTO T_MESSAGE.
            CONDENSE T_MESSAGE.
            MESSAGE I000(zscWITH T_MESSAGE.
            STOP.
          ENDIF.
    *      IF GT_UP-ERFMG <> ''.
    ***    调BAPI 2013.4.19 jwy add
    *        ITEMS-PHYSINVENTORY = GT_UPDATE-IBLNR.
    *        ITEMS-FISCALYEAR = GT_UPDATE-GJAHR.
    *        ITEMS-ITEM = GT_UPDATE-ZEILI.
    *        ITEMS-MATERIAL = GT_UPDATE-MATNR.
    *        ITEMS-PLANT = GT_UPDATE-WERKS.
    *        ITEMS-STGE_LOC = GT_UPDATE-LGORT.
    *        ITEMS-BATCH = GT_UPDATE-CHARG.
    *        ITEMS-SPEC_STOCK = GT_UPDATE-SOBKZ.
    *        ITEMS-STOCK_TYPE = GT_UPDATE-BSTAR.
    *        ITEMS-SALES_ORD = GT_UPDATE-KDAUF.
    *        ITEMS-S_ORD_ITEM = GT_UPDATE-KDPOS.
    *        ITEMS-SCHED_LINE = GT_UPDATE-KDEIN.
    *        ITEMS-VENDOR = GT_UPDATE-LIFNR.
    *        ITEMS-CUSTOMER = GT_UPDATE-KUNNR.
    *        ITEMS-PRODBINLOC = GT_UPDATE-

          GT_UPDATE-ERFMG GT_UP-ERFMG.
          GT_UPDATE-MENGE GT_UP-MENGE.
          GT_UPDATE-USNAZ SY-UNAME.
          GT_UPDATE-ZLDAT GT_UP-ZLDAT.
          GT_UPDATE-XZAEL 'X'.

          T_HEAD-IBLNR GT_UP-IBLNR.
          T_HEAD-GJAHR GT_UP-GJAHR.
          T_HEAD-ZLDAT GT_UP-ZLDAT.
          APPEND T_HEAD TO GT_HEAD.
          CLEAR T_HEAD.

          APPEND GT_UPDATE.
          CLEAR:GT_UPDATE.
    *      ENDIF.
    *      MODIFY GT_UPDATE.
        ENDIF.
      ENDLOOP.

    ***处理抬头
      T_P 0.
      CLEAR:GT_UPHEAD.
      sort GT_HEAD by IBLNR GJAHR.
      DELETE ADJACENT DUPLICATES FROM GT_HEAD COMPARING ALL FIELDS.
      CLEAR:HEAD,ITEMS,C_ITEMS.
    *** 2013.4.19 取盘点项目数据
      LOOP AT GT_HEAD INTO T_HEAD.
        T_I 0.
        CALL FUNCTION 'BAPI_MATPHYSINV_GETDETAIL'
          EXPORTING
            PHYSINVENTORY T_HEAD-IBLNR
            FISCALYEAR    T_HEAD-GJAHR
          IMPORTING
            HEAD          HEAD
          TABLES
            ITEMS         ITEMS
            RETURN        RETURN
          EXCEPTIONS
            OTHERS        01.

        if SY-SUBRC <> 0.
          MESSAGE I000(zscWITH '取数失败!'.
          STOP.
        endif.

    ****处理
        REFRESH C_ITEMS.
        CLEAR:C_ITEMS.
        LOOP AT GT_UPDATE WHERE IBLNR T_HEAD-IBLNR AND GJAHR T_HEAD-GJAHR.
    *        READ TABLE ITEMS WITH KEY PHYSINVENTORY = GT_UPDATE-IBLNR AND FISCALYEAR = GT_UPDATE-
          C_ITEMS-ITEM GT_UPDATE-ZEILI.
          C_ITEMS-MATERIAL GT_UPDATE-MATNR.
          C_ITEMS-BATCH GT_UPDATE-CHARG.
          C_ITEMS-ENTRY_QNT GT_UPDATE-ERFMG.
          C_ITEMS-ENTRY_UOM GT_UPDATE-ERFME.
          if GT_UPDATE-ERFMG 0.
            C_ITEMS-ZERO_COUNT 'X'.
          endif.
    ****单位转换
          CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
            EXPORTING
              INPUT          T_UNIT
              LANGUAGE       sy-langu
            IMPORTING
              OUTPUT         GT_UPDATE-ERFME
            EXCEPTIONS
              UNIT_NOT_FOUND 1
              OTHERS         2.

          IF SY-SUBRC <> 0.
            C_ITEMS-ENTRY_UOM T_UNIT.
          ELSE.
    *         MESSAGE I000(zsc) WITH '单位转换出错!'.
    *         STOP.
          ENDIF.
          APPEND C_ITEMS.
          CLEAR: C_ITEMS.
        ENDLOOP.
    ****单位转换

    ****修改数量MI05
    *    CALL FUNCTION 'BAPI_MATPHYSINV_CHANGECOUNT'
    *    EXPORTING
    *      PERCENTAGE_VARIANCE = T_HEAD-IBLNR
    *      FISCALYEAR = T_HEAD-GJAHR
    **      PHYSINVENTORY = OBJECT-KEY-PHYSINVENTORY
    *    TABLES
    *      ITEMS = C_ITEMS
    *      RETURN = RETURN
    *      SERIALNUMBERS = SERIALNUMBERS
    *    EXCEPTIONS
    *      OTHERS = 01.
    ****录入数量MI04
        if r2 'X'.
          CALL FUNCTION 'BAPI_MATPHYSINV_COUNT'
            EXPORTING
              PHYSINVENTORY       T_HEAD-IBLNR
              FISCALYEAR          T_HEAD-GJAHR
    *         PERCENTAGE_VARIANCE = PERCENTAGE_VARIANCE
              COUNT_DATE          T_HEAD-ZLDAT
            TABLES
              ITEMS               C_ITEMS
              RETURN              RETURN
    *         SERIALNUMBERS       = SERIALNUMBERS
    *         EXTENSIONIN         = EXTENSIONIN
            EXCEPTIONS
              OTHERS              1.
        endif.
        if r3 'X'.
          CALL FUNCTION 'BAPI_MATPHYSINV_CHANGECOUNT'
            EXPORTING
              PHYSINVENTORY       T_HEAD-IBLNR
              FISCALYEAR          T_HEAD-GJAHR
    *         PERCENTAGE_VARIANCE = PERCENTAGE_VARIANCE
            TABLES
              ITEMS               C_ITEMS
              RETURN              RETURN
    *         SERIALNUMBERS       = SERIALNUMBERS
    *         EXTENSIONIN         = EXTENSIONIN
            EXCEPTIONS
              OTHERS              1.
        endif.

        LOOP AT RETURN WHERE TYPE 'E'.
          CONCATENATE T_MESSAGE ',' RETURN-MESSAGE INTO T_MESSAGE.
          CONDENSE T_MESSAGE.
          T_I 1.
        ENDLOOP.
        IF T_I 0.
          COMMIT WORK.
          IF SY-SUBRC 0.
            T_P 1.
    *        MESSAGE S000(zsc) WITH '数据上传成功!'.
          ELSE.
            MESSAGE S000(zscWITH '数据上传失败!'.
            STOP.
          ENDIF.
        ELSE.
          MESSAGE I000(zscWITH T_MESSAGE.
          STOP.
        ENDIF.
        REFRESH return.
        CLEAR:return.
      ENDLOOP.
      IF T_P 1.
        MESSAGE S000(zscWITH '数据上传成功!'.
      ENDIF.


    *  IF GT_UPDATE[] IS INITIAL.
    *    MESSAGE I000(zsc) WITH '不存在需要修改的记录行,请核对导入文件!'.
    *  ELSE.
    *    MODIFY ISEG FROM TABLE GT_UPDATE.
    *
    *    IF SY-SUBRC = 0.
    **      MESSAGE S000(zsc) WITH '数据上传成功!'.
    *    ELSE.
    *      MESSAGE E000(zsc) WITH '数据上传失败!'.
    *    ENDIF.
    *  ENDIF.
    *  LOOP AT GT_HEAD INTO T_HEAD.
    *    SELECT *
    *    INTO CORRESPONDING FIELDS OF GT_UPHEAD
    *    FROM IKPF
    *    WHERE IKPF~IBLNR = T_HEAD-IBLNR AND
    *          IKPF~GJAHR = T_HEAD-GJAHR .
    *    ENDSELECT.
    *    IF SY-SUBRC = 0.
    *      GT_UPHEAD-ZLDAT = T_HEAD-ZLDAT.
    *****判断是否全部盘点
    *      SELECT SINGLE IBLNR INTO T_IBLNR
    *      FROM ISEG
    *      WHERE ISEG~IBLNR = T_HEAD-IBLNR AND
    *        ISEG~GJAHR = T_HEAD-GJAHR AND
    *        ISEG~XZAEL <> 'X'.
    *      IF SY-SUBRC = 0.
    *        GT_UPHEAD-ZSTAT = 'A'.
    *      ELSE.
    *        GT_UPHEAD-ZSTAT = 'X'.
    *      ENDIF.
    *      APPEND GT_UPHEAD.
    *      CLEAR:GT_UPHEAD.
    *    ENDIF.
    *  ENDLOOP.
    *
    *  IF GT_UPHEAD[] IS INITIAL.
    *    MESSAGE I000(zsc) WITH '不存在需要修改的记录行,请核对导入文件!'.
    *  ELSE.
    *    MODIFY IKPF FROM TABLE GT_UPHEAD.
    *    IF SY-SUBRC = 0.
    *      MESSAGE S000(zsc) WITH '数据上传成功!'.
    *    ELSE.
    *      MESSAGE E000(zsc) WITH '数据上传失败!'.
    *      STOP.
    *    ENDIF.
    *  ENDIF.
    ****
    *  PERFORM  get_data.
    ENDFORM.                    " UP_DATA


    *&---------------------------------------------------------------------*
    *&      Form  get_filename
    *&---------------------------------------------------------------------*
    FORM GET_FILENAME   USING  P_PATH    LIKE RLGRAP-FILENAME
                            CHANGING P_FILE  LIKE RLGRAP-FILENAME.
      DATA:L_WRK_FILENAME LIKE RLGRAP-FILENAME,
           L_WRK_MASK     LIKE LGRWO-EXP_FILE.
    * mask
      L_WRK_MASK ',*.xls,*.xls.'.

    * get file name
      CALL FUNCTION 'WS_FILENAME_GET'
        EXPORTING
          DEF_PATH         P_FILE
          MASK             L_WRK_MASK
          MODE             'O'
        IMPORTING
          FILENAME         L_WRK_FILENAME
        EXCEPTIONS
          INV_WINSYS       01
          NO_BATCH         02
          SELECTION_CANCEL 03
          SELECTION_ERROR  04
          OTHERS           05.

      IF SY-SUBRC 0.
        P_FILE L_WRK_FILENAME.
      ELSE.
      ENDIF.
    ENDFORM.                    " get_filename

  • 相关阅读:
    传统IO拷贝与零拷贝技术比较
    NIO编程之多客户端聊天系统
    NIO编程模式示例
    java.nio.channels.IllegalBlockingModeException
    NIO之Buffer操作示例
    NIO之FileChannel操作示例
    Flask学习笔记04之路由重定向
    python对象之__call__方法
    在Android Studio中找不到AppCompatActivity解决方案
    信息反馈-冲刺04
  • 原文地址:https://www.cnblogs.com/rockyzjut/p/3169567.html
Copyright © 2011-2022 走看看