PP-BOM批量修改PP-(开发笔记)

*&---------------------------------------------------------------------*
*& Report ZMMR110
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPPR016.
TABLES:SSCRFIELDS.
TYPE-POOLS:SLIS.

"定义ALV输出所需变量
DATAS_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATALS_STYLE TYPE LVC_S_STYL,
      LT_STYLE TYPE TABLE OF LVC_S_STYL.

DATA RETURN    LIKE BAPIRET2 OCCURS WITH HEADER LINE.
DATA GT_EXDATA TYPE ALSMEX_TABLINE OCCURS WITH HEADER LINE.
DATA IW_CELLCOLOR TYPE LVC_T_SCOL WITH HEADER LINE.
DATA L_FILENAME TYPE STRING .
DATA L_MUBAN TYPE STRING .
DATA GV_FULLPATH TYPE STRING .
DATA GV_PATH TYPE STRING .
DATA GV_NAME TYPE STRING .
DATA:MESSAGE TYPE BAPI_MSG .
DATA:SUBRC   LIKE SYST-SUBRC .
DATA:FLAG    TYPE C .
DATA:KSTBM   TYPE KSTBM .
DATA:MESSTAB LIKE  BDCMSGCOLL OCCURS WITH HEADER LINE.
DATA:LV_DATUV TYPE CSAP_MBOM-DATUV.

TYPESBEGIN OF GTS_DATA,
         WERKS    TYPE MAST-WERKS"工厂
         MATNR    TYPE MARA-MATNR"父件物料
         STLAN    TYPE MAST-STLAN"BOM用途
         STLAL    TYPE MAST-STLAL"可选的BOM
         POSNR    TYPE STPO-POSNR"子件项目
         IDNRK    TYPE STPO-IDNRK"子件物料
         MEINS    TYPE STPO-MEINS"组件计量单位
         MENGE    TYPE STPO-MENGE"组件数量
         AUSCH    TYPE STPO-AUSCH"组件报废百分比
         DATUM    TYPE SYST-DATUM"BOM日期

         TYPBOD   TYPE  CHAR4,                   "消息图标
         MESSAGED TYPE  BAPI_MSG,                "报错信息
         TYPBO    TYPE  CHAR4,                   "消息图标
         MESSAGE  TYPE  BAPI_MSG,                "报错信息
         STYLE    TYPE  LVC_T_STYL,              "控制不可编辑
       END OF GTS_DATA.

DATAFLAG1     TYPE C.
DATALV_MODE   TYPE C.
DATAGT_DATA   TYPE TABLE OF GTS_DATA WITH HEADER LINE.
DATAGT_DATA_A TYPE TABLE OF GTS_DATA WITH HEADER LINE.

SELECTION-SCREENFUNCTION KEY 1.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERSP_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN END OF BLOCK B1.

IF P_FILE IS INITIAL .
  MESSAGE  '没有选择文件!TYPE 'E'.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      MASK             ',Excel Files,*.xls,All Files,*.*.'(101)
      TITLE            '选择文件'(100)
    IMPORTING
      FILENAME         P_FILE
    
EXCEPTIONS
      INV_WINSYS       1
      NO_BATCH         2
      SELECTION_CANCEL 3
      SELECTION_ERROR  4
      OTHERS           5.
  IF SY-SUBRC <> AND SY-SUBRC <> 3.
    MESSAGE  '选择文件出错!TYPE 'E'.
  ENDIF.

*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .

  DATA LV_MARC TYPE MARC .
  DATA LV_MVKE TYPE MVKE .
  DATA LV_KNVV TYPE KNVV .
  DATA LV_MARA TYPE MARA .
  DATA LV_MARM TYPE MARM .
  DATA LV_A305 TYPE A305 .
  DATA LV_A601 TYPE A601 .
  DATA LV_KONP TYPE KONP .

  CLEAR GT_EXDATA[].
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'    "读取excel文件中的内容
    EXPORTING
      FILENAME    P_FILE
      I_BEGIN_COL 
'1'
      I_BEGIN_ROW '3'
      I_END_COL   '50'
      I_END_ROW   '5000'
    TABLES
      INTERN      GT_EXDATA[].
  SORT GT_EXDATA BY ROW COL VALUE.

**---整理到内表数据
  CLEAR GT_DATA[] .
  LOOP AT GT_EXDATA.

    CLEAR FLAG .
    AT END OF ROW .
      FLAG 'X'.
    ENDAT .

    CASE GT_EXDATA-COL.
      WHEN 1.
        GT_DATA-WERKS GT_EXDATA-VALUE.
      WHEN 2.
        GT_DATA-MATNR GT_EXDATA-VALUE.
      WHEN 3.
        GT_DATA-STLAN GT_EXDATA-VALUE.
      WHEN 4.
        GT_DATA-STLAL GT_EXDATA-VALUE.
      WHEN 5.
        GT_DATA-POSNR GT_EXDATA-VALUE.
      WHEN 6.
        GT_DATA-IDNRK GT_EXDATA-VALUE.
      WHEN 7.
        GT_DATA-MEINS GT_EXDATA-VALUE.
      WHEN 8.
        GT_DATA-MENGE GT_EXDATA-VALUE.
      WHEN 9.
        GT_DATA-AUSCH GT_EXDATA-VALUE.
      WHEN 10.
        GT_DATA-DATUM GT_EXDATA-VALUE.
*      WHEN 11.
*        GT_DATA-BSTDK = GT_EXDATA-VALUE.
*      WHEN 12.
*        GT_DATA-POSNR = GT_EXDATA-VALUE.
*      WHEN 13.
*        GT_DATA-MATNR = GT_EXDATA-VALUE.
*      WHEN 14.
*        GT_DATA-KWMENG = GT_EXDATA-VALUE.
*      WHEN 15.
*        GT_DATA-VRKME = GT_EXDATA-VALUE.
*      WHEN 16.
*        GT_DATA-ETDAT = GT_EXDATA-VALUE.
*      WHEN 17.
*        GT_DATA-PLTYP = GT_EXDATA-VALUE.
*      WHEN 18.
*        GT_DATA-WERKS = GT_EXDATA-VALUE.
    ENDCASE.

    IF FLAG IS NOT INITIAL.
      APPEND GT_DATA."append要加在最后一列.
      CLEAR GT_DATA.
    ENDIF.

  ENDLOOP.

  LOOP AT GT_DATA.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  GT_DATA-STLAL
      
IMPORTING
        OUTPUT GT_DATA-STLAL.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  GT_DATA-POSNR
      
IMPORTING
        OUTPUT GT_DATA-POSNR.

    CLEAR LT_STYLE[] .
    IF GT_DATA-WERKS IS INITIAL
      OR GT_DATA-MATNR IS INITIAL
      OR GT_DATA-STLAN IS INITIAL
      OR GT_DATA-STLAL IS INITIAL
      OR GT_DATA-POSNR IS INITIAL
      OR GT_DATA-IDNRK IS INITIAL
      OR GT_DATA-MEINS IS INITIAL
      OR GT_DATA-MENGE IS INITIAL
      OR GT_DATA-AUSCH IS INITIAL
      .
      GT_DATA-TYPBOD '@0A@'.
      LS_STYLE-FIELDNAME 'TYPBOD'.
      LS_STYLE-STYLE CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
      APPEND LS_STYLE TO LT_STYLE.
      GT_DATA-STYLE LT_STYLE.
      GT_DATA-MESSAGED =  '存在未被填写的必输字段!'.
      MODIFY GT_DATA.
      CLEAR GT_DATA .
      CONTINUE.
    ENDIF.

    IF  GT_DATA-DATUM IS INITIAL .
      GT_DATA-DATUM SY-DATUM.
    ENDIF.

    GT_DATA-TYPBOD '@08@'.
    LS_STYLE-FIELDNAME 'TYPBOD'.
    LS_STYLE-STYLE CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
    APPEND LS_STYLE TO LT_STYLE.
    GT_DATA-STYLE LT_STYLE.
    GT_DATA-MESSAGED =  '数据准备完毕!'.
    MODIFY GT_DATA.
    CLEAR GT_DATA .
  ENDLOOP.


ENDFORM.

FORM FOM_UPDATA .
  DATA:T_STPO TYPE STANDARD TABLE OF STPO_API02 WITH HEADER LINE.

  LOOP AT GT_DATA.

    CLEAR LV_DATUV.
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
      EXPORTING
        DATE_INTERNAL            GT_DATA-DATUM
      
IMPORTING
        DATE_EXTERNAL            LV_DATUV
      
EXCEPTIONS
        DATE_INTERNAL_IS_INVALID 1
        OTHERS                   2.


    CLEAR T_STPO[].
    CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
      EXPORTING
        MATERIAL    GT_DATA-MATNR
        PLANT       
GT_DATA-WERKS
        BOM_USAGE   
'1'
        ALTERNATIVE GT_DATA-STLAL
        VALID_FROM  
LV_DATUV
      
TABLES
        T_STPO      T_STPO[]
      
EXCEPTIONS
        ERROR       1
        OTHERS      2.

    READ TABLE T_STPO WITH KEY ITEM_NO GT_DATA-POSNR.

    IF SY-SUBRC 0.

      T_STPO-COMPONENT  GT_DATA-IDNRK ."子件物料
      T_STPO-COMP_UNIT  GT_DATA-MEINS ."组件计量单位
      T_STPO-COMP_QTY   GT_DATA-MENGE ."组件数量
      T_STPO-COMP_SCRAP GT_DATA-AUSCH ."组件报废百分比

      CALL FUNCTION 'CSAP_BOM_ITEM_MAINTAIN'
        EXPORTING
          I_STPO T_STPO
        
EXCEPTIONS
          ERROR  1
          OTHERS 2.

      IF SY-SUBRC OR SY-SUBRC 2.
*        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
        GT_DATA-TYPBO '@0A@'.
        CLEAR LT_STYLE[] .
        LS_STYLE-FIELDNAME 'TYPBO'.
        LS_STYLE-STYLE CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
        APPEND LS_STYLE TO LT_STYLE.
        GT_DATA-STYLE LT_STYLE.
        GT_DATA-MESSAGE 'BOM' && GT_DATA-MATNR && '更改失败,' && '组件&& T_STPO-COMPONENT && '异常.
        MODIFY GT_DATA.
        CLEAR GT_DATA.
      ELSEIF SY-SUBRC 0.
*        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*          EXPORTING
*            WAIT = 'X'.
        GT_DATA-TYPBO '@08@'.
        CLEAR LT_STYLE[] .
        LS_STYLE-FIELDNAME 'TYPBO'.
        LS_STYLE-STYLE CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
        APPEND LS_STYLE TO LT_STYLE.
        GT_DATA-STYLE LT_STYLE.
        GT_DATA-MESSAGE 'BOM' && GT_DATA-MATNR && '组件&& T_STPO-COMPONENT && '更改成功'.
        MODIFY GT_DATA.
        CLEAR GT_DATA.
      ENDIF.

      CALL FUNCTION 'CSAP_MAT_BOM_CLOSE'
        EXCEPTIONS
          ERROR  1
          OTHERS 2.

    ELSE.
      GT_DATA-TYPBO '@0A@'.
      CLEAR LT_STYLE[] .
      LS_STYLE-FIELDNAME 'TYPBO'.
      LS_STYLE-STYLE CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
      APPEND LS_STYLE TO LT_STYLE.
      GT_DATA-STYLE LT_STYLE.
      GT_DATA-MESSAGE '物料&& GT_DATA-MATNR && 工厂'  && GT_DATA-WERKS && 'BOM中不含项目&& GT_DATA-POSNR .
      MODIFY GT_DATA.
      CLEAR GT_DATA.
    ENDIF.

  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY .
  CLEAR S_LAYOUT.
  S_LAYOUT-ZEBRA 'X'.
  S_LAYOUT-COLWIDTH_OPTIMIZE 'X'.
  S_LAYOUT-COLTAB_FIELDNAME 'CELLCOLOR'"单元格颜色内表字段
*  s_layout-box_fieldname    = 'BOX'.
  PERFORM FRM_FILL_FIELD .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      IS_LAYOUT                S_LAYOUT
      IT_FIELDCAT              
GT_FIELDCAT
      I_CALLBACK_PROGRAM       
SY-REPID
      I_CALLBACK_PF_STATUS_SET 
'PF_STATUS_SET'
*     i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_USER_COMMAND  'USER_COMMAND'
    TABLES
      T_OUTTAB                 GT_DATA[].
ENDFORM.

FORM FRM_FILL_FIELD .
  DATA:  WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
  DEFINE FILL_FIELD.
    WA_FIELDCAT-FIELDNAME &1.
    WA_FIELDCAT-SELTEXT_L &2.
*    IF WA_FIELDCAT-FIELDNAME =  'MSLJH' OR WA_FIELDCAT-FIELDNAME =  'WCBJH'.
*      WA_FIELDCAT-EMPHASIZE = 'C600'. "设置字段的颜色
*    ENDIF.

*    IF WA_FIELDCAT-FIELDNAME =  'MSLMB' OR WA_FIELDCAT-FIELDNAME =  'WCBMB'.
*      WA_FIELDCAT-EMPHASIZE = 'C710'. "设置字段的颜色
*    ENDIF.l
    IF WA_FIELDCAT-FIELDNAME 'TYPBO'
     OR WA_FIELDCAT-FIELDNAME 'TYPAI'
      .
      WA_FIELDCAT-ICON 'X'.
      WA_FIELDCAT-OUTPUTLEN '13'.
    ENDIF.
    IF WA_FIELDCAT-FIELDNAME 'PLNBEZ' OR WA_FIELDCAT-FIELDNAME 'MATNR' .
      WA_FIELDCAT-REF_TABNAME 'MARA'.
      WA_FIELDCAT-REF_FIELDNAME 'MATNR'.
    ENDIF.

    IF WA_FIELDCAT-FIELDNAME 'ARKTX' OR WA_FIELDCAT-FIELDNAME 'WAKTX' .
      WA_FIELDCAT-REF_TABNAME 'VBAP'.
      WA_FIELDCAT-REF_FIELDNAME 'ARKTX'.
    ENDIF.

    IF WA_FIELDCAT-FIELDNAME 'AUFNR' .
      WA_FIELDCAT-REF_TABNAME 'AUFK'.
      WA_FIELDCAT-REF_FIELDNAME 'AUFNR'.
    ENDIF.

    APPEND WA_FIELDCAT TO GT_FIELDCAT.
    CLEAR WA_FIELDCAT.
  END-OF-DEFINITION.
  FILL_FIELD :
        'WERKS'    '工厂',
        'MATNR'    '父件物料',
        'STLAN'    'BOM用途',
        'STLAL'    '可选的BOM',
        'POSNR'    '子件项目',
        'IDNRK'    '子件物料',
        'MEINS'    '组件计量单位',
        'MENGE'    '组件数量',
        'AUSCH'    '组件报废百分比',
        'DATUM'    'BOM日期',

        'TYPBOD'   '是否成功',
        'MESSAGED' '报错信息',
        'TYPBO'    '是否成功',
        'MESSAGE'  '信息'.
ENDFORM.

FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                    IS_SELFIELD 
TYPE SLIS_SELFIELD.
  DATAREF TYPE REF TO CL_GUI_ALV_GRID.
  DATA LV_STABLE TYPE LVC_S_STBL.   "刷新稳定性
  RANGESL_WERKS FOR T001W-WERKS.
  RANGESL_MATNR FOR MARA-MATNR.
  DATA:L_BUKRS TYPE T001K-BUKRS.

  LV_STABLE-ROW '1'.
  LV_STABLE-COL '1'.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID REF.
  CALL METHOD REF->CHECK_CHANGED_DATA.

  CASE I_UCOMM.
    WHEN 'GO'."表示双击
      CLEAR FLAG1 .
      LOOP AT GT_DATA.
        IF GT_DATA-TYPBOD '@0A@'.
          FLAG1 'X'.
          EXIT .
        ENDIF.
        CLEAR GT_DATA .
      ENDLOOP.
      IF FLAG1 IS INITIAL.
        PERFORM FOM_UPDATA.
      ELSE .
        MESSAGE '数据存在问题,请检查!TYPE 'S' DISPLAY LIKE 'E'.
      ENDIF.

    WHEN 'POST_T'.
  ENDCASE.

  CALL METHOD REF->REFRESH_TABLE_DISPLAY
    
EXPORTING
      IS_STABLE LV_STABLE.
ENDFORM.

*--------------------------------------------------------------------*
*       获取下载到本地的路径
*--------------------------------------------------------------------*
FORM FRM_GET_FULLPATH   CHANGING PV_FULLPATH TYPE STRING
                                 PV_PATH     
TYPE STRING
                                 PV_NAME     
TYPE STRING.

  DATALV_INIT_PATH  TYPE STRING,
        LV_INIT_FNAME TYPE STRING,
        LV_PATH       TYPE STRING,
        LV_FILENAME   TYPE STRING,
        LV_FULLPATH   TYPE STRING.

*&---初始名称(输出的文件名称)
*  concatenate 'Material_Doc_' SY-DATUM '.xslx' into L_INIT_FNAME.
  LV_INIT_FNAME L_FILENAME.

获取桌面路径
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_DESKTOP_DIRECTORY
    
CHANGING
      DESKTOP_DIRECTORY    LV_INIT_PATH
    
EXCEPTIONS
      CNTL_ERROR           1
      ERROR_NO_GUI         2
      NOT_SUPPORTED_BY_GUI 3
      OTHERS               4.
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.

*&---用户选择名称、路径
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    
EXPORTING
*     window_title         = '指定保存文件名'
*     default_extension    = 'DOC'
      DEFAULT_FILE_NAME    LV_INIT_FNAME
      FILE_FILTER          
CL_GUI_FRONTEND_SERVICES=>FILETYPE_EXCEL
*     FILE_FILTER          = CL_GUI_FRONTEND_SERVICES=>FILETYPE_WORD
      INITIAL_DIRECTORY    LV_INIT_PATH
      PROMPT_ON_OVERWRITE  
'X'
    CHANGING
      FILENAME             LV_FILENAME
      PATH                 
LV_PATH
      FULLPATH             
LV_FULLPATH
*     USER_ACTION          =
*     FILE_ENCODING        =
    EXCEPTIONS
      CNTL_ERROR           1
      ERROR_NO_GUI         2
      NOT_SUPPORTED_BY_GUI 3
      OTHERS               4.
  IF SY-SUBRC 0.
    PV_FULLPATH LV_FULLPATH.
    PV_PATH     LV_PATH.
  ENDIF.

ENDFORM.

*--------------------------------------------------------------------*
*       下载文件
*--------------------------------------------------------------------*
FORM FRM_DOWN  USING PR_FILENAME.
  DATALV_OBJDATA     LIKE WWWDATATAB,
        LV_MIME        LIKE W3MIME,
        LV_DESTINATION LIKE RLGRAP-FILENAME,
        LV_OBJNAM      TYPE STRING,
        LV_RC          LIKE SY-SUBRC,
        LV_ERRTXT      TYPE STRING.

  DATALV_FILENAME TYPE STRING,
        LV_RESULT,
        LV_SUBRC    TYPE SY-SUBRC.

  DATALV_OBJID TYPE WWWDATATAB-OBJID .


  LV_OBJID L_MUBAN.  "上传的模版名称

*&---查找文件是否存在。
  SELECT SINGLE RELID OBJID
    
FROM WWWDATA
    
INTO CORRESPONDING FIELDS OF LV_OBJDATA
    
WHERE SRTF2    0
      AND RELID    'MI'
      AND OBJID    LV_OBJID.

*&---判断模版不存在则报错
  IF SY-SUBRC NE OR LV_OBJDATA-OBJID EQ SPACE.
    CONCATENATE '模板文件:LV_OBJID '不存在,请用TCODESMW0进行加载'
    INTO LV_ERRTXT.
    MESSAGE LV_ERRTXT TYPE 'E'.
  ENDIF.

  LV_FILENAME PR_FILENAME.

  "判断本地地址是否已经存在此文件。
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST
    
EXPORTING
      FILE                 LV_FILENAME
    RECEIVING
      RESULT               
LV_RESULT
    
EXCEPTIONS
      CNTL_ERROR           1
      ERROR_NO_GUI         2
      WRONG_PARAMETER      3
      NOT_SUPPORTED_BY_GUI 4
      OTHERS               5.
  IF SY-SUBRC <> 0.
    CASE SY-SUBRC.
      WHEN 1.
      WHEN 2.
      WHEN OTHERS.
    ENDCASE.
  ENDIF.

  IF LV_RESULT EQ 'X'.  "如果存在则删除原始文件,重新覆盖
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_DELETE
      
EXPORTING
        FILENAME             LV_FILENAME
      
CHANGING
        RC                   LV_SUBRC
      
EXCEPTIONS
        FILE_DELETE_FAILED   1
        CNTL_ERROR           2
        ERROR_NO_GUI         3
        FILE_NOT_FOUND       4
        ACCESS_DENIED        5
        UNKNOWN_ERROR        6
        NOT_SUPPORTED_BY_GUI 7
        WRONG_PARAMETER      8
        OTHERS               9.

    IF SY-SUBRC <> 0.
      CASE SY-SUBRC.
        WHEN 1.
        WHEN 2.
        WHEN OTHERS.
      ENDCASE.
    ENDIF.

    IF LV_SUBRC <> 0"如果删除失败,则报错。
      CONCATENATE '同名EXCEL文件已打开' '请关闭该EXCEL后重试。'
      INTO LV_ERRTXT.
      MESSAGE LV_ERRTXT TYPE 'E'.
    ENDIF.
  ENDIF.

  LV_DESTINATION   PR_FILENAME.

*&---下载模版。
  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      KEY         LV_OBJDATA
      DESTINATION 
LV_DESTINATION
    
IMPORTING
      RC          LV_RC.
  IF LV_RC NE 0.
    CONCATENATE '模板文件' '下载失败INTO LV_ERRTXT.
    MESSAGE LV_ERRTXT TYPE 'E'.
  ENDIF.
ENDFORM.

INITIALIZATION.
  SSCRFIELDS-FUNCTXT_01 '@49@ 模板下载'.

AT SELECTION-SCREEN .
  CASE SSCRFIELDS-UCOMM.
    WHEN 'FC01'.
      L_FILENAME 'BOM批量修改模板.xls'.
      L_MUBAN 'ZMMR135'.
*&---下载模板
      PERFORM FRM_GET_FULLPATH CHANGING GV_FULLPATH GV_PATH GV_NAME.
*&---路径为空则退出
      IF GV_FULLPATH IS INITIAL.
        MESSAGE '用户取消操作TYPE 'S'.
        RETURN.
      ENDIF.
      PERFORM FRM_DOWN USING GV_FULLPATH.
    WHEN OTHERS.
  ENDCASE.

START-OF-SELECTION.
  PERFORM FOM_GETDATA.
  PERFORM FRM_DISPLAY.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值