导入会计 、成本 视图(开发笔记)

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

"定义ALV输出所需变量
DATAS_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA RETURN           LIKE BAPIRET2 OCCURS WITH HEADER LINE.
DATAGT_EXDATA TYPE ALSMEX_TABLINE OCCURS WITH HEADER LINE.
DATAIW_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:FLAG    TYPE C .

TYPESBEGIN OF GTS_DATA,
         MATNR     TYPE  MARC-MATNR,                      "物料编码
         WERKS     TYPE  MARC-WERKS,                      "工厂
         MTART     TYPE  MARA-MTART,                      "物料类型

*会计 1视图字段如下
*评估分类BKLAS、标准价格、周期单位价格、价格单位PEINH、价格控制VPRSV
         BKLAS     TYPE  MBEW-BKLAS,                      "评估分类
         STPRS     TYPE  MBEW-STPRS,                      "标准价格
         VERPR     TYPE  MBEW-VERPR,                      "周期单位价格
         PEINH     TYPE  MBEW-PEINH,                      "价格单位
         VPRSV     TYPE  MBEW-VPRSV,                      "价格控制指示符

*成本 1视图字段如下
*不计算成本NCOST、用QS的成本核算EKALR、物料来源HKMAT、成本核算批量LOSGR
         NCOST     TYPE  MARC-NCOST,                      "不计算成本
         EKALR     TYPE  MBEW-EKALR,                      "QS的成本核算
         HKMAT     TYPE  MBEW-HKMAT,                      "物料来源
         LOSGR     TYPE  MARC-LOSGR,                      "成本核算批量

*成本核算2视图字段如下
*计划价格 1 ZPLP1、计划价格 2 ZPLP1、计划价格 3 ZPLP1ZPLD1ZPLD2ZPLD3
         ZPLP1     TYPE  MBEW-ZPLP1,                      "未来计划价格1
         ZPLP2     TYPE  MBEW-ZPLP2,                      "未来计划价格2
         ZPLP3     TYPE  MBEW-ZPLP3,                      "未来计划价格3
         ZPLD1     TYPE  MBEW-ZPLD1,                      "未来计划价格 1 的生效日期
         ZPLD2     TYPE  MBEW-ZPLD2,                      "计划价格 2 开始有效的日期
         ZPLD3     TYPE  MBEW-ZPLD3,                      "计划价格 3 开始有效的日期

         CF1       TYPE  CHAR4,                           "发料异常警示
         MESSAGE   TYPE  BAPI_MSG,                        "报错信息
         CELLCOLOR TYPE  LVC_T_SCOL,                      "单元格颜色
       END OF GTS_DATA.

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.

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_UPDATA .

  CLEAR GT_EXDATA[].
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'    "读取excel文件中的内容
    EXPORTING
      FILENAME    P_FILE
      I_BEGIN_COL 
'1'
      I_BEGIN_ROW '2'
      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-MATNR GT_EXDATA-VALUE.
      WHEN 2.
        GT_DATA-WERKS GT_EXDATA-VALUE.
      WHEN 3.
        GT_DATA-BKLAS GT_EXDATA-VALUE.
      WHEN 4.
        GT_DATA-STPRS GT_EXDATA-VALUE.
      WHEN 5.
        GT_DATA-VERPR GT_EXDATA-VALUE.
      WHEN 6.
        GT_DATA-PEINH GT_EXDATA-VALUE.
      WHEN 7.
        GT_DATA-VPRSV GT_EXDATA-VALUE.
      WHEN 8.
        GT_DATA-NCOST GT_EXDATA-VALUE.
      WHEN 9.
        GT_DATA-EKALR GT_EXDATA-VALUE.
      WHEN 10.
        GT_DATA-HKMAT GT_EXDATA-VALUE.
      WHEN 11.
        GT_DATA-LOSGR GT_EXDATA-VALUE.
      WHEN 12.
        GT_DATA-ZPLP1 GT_EXDATA-VALUE.
      WHEN 13.
        GT_DATA-ZPLP2 GT_EXDATA-VALUE.
      WHEN 14.
        GT_DATA-ZPLP3 GT_EXDATA-VALUE.
      WHEN 15.
        GT_DATA-ZPLD1 GT_EXDATA-VALUE.
      WHEN 16.
        GT_DATA-ZPLD2 GT_EXDATA-VALUE.
      WHEN 17.
        GT_DATA-ZPLD3 GT_EXDATA-VALUE.
    ENDCASE.

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

  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_POST
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_POST .
数据声明
  DATACLIDAINP           LIKE  BAPI_MARA_GA"客户端层次物料数据
        CLIDAOUT           LIKE  BAPI_MARA,    "客户端层次物料数据
        CLIDAOUTX          LIKE  BAPI_MARAX,   "BAPI_MARA 的复选框结构
        HEADDATA           LIKE  BAPIMATHEAD,  "带有控制信息的表头段
        RETURN             LIKE  BAPIRET2,     "返回参数
        CLIENTDATA         TYPE  BAPI_MARA,
        CLIENTDATAX        TYPE  BAPI_MARAX,
        PLANTDATA          TYPE  BAPI_MARC,
        PLANTDATAX         TYPE  BAPI_MARCX,
        VALUATIONDATA      LIKE  BAPI_MBEW,
        VALUATIONDATAX     LIKE  BAPI_MBEWX,
        SALESDATA          TYPE  BAPI_MVKE,
        SALESDATAX         TYPE  BAPI_MVKEX,
        TAXCLASSIFICATIONS LIKE  BAPI_MLAN OCCURS WITH HEADER LINE,
        RETURNMES          LIKE  BAPI_MATRETURN2 OCCURS WITH HEADER LINE.

  LOOP AT GT_DATA.
    SELECT SINGLE MTART INTO GT_DATA-MTART FROM MARA
      
WHERE MATNR GT_DATA-MATNR
      
.

* Header segment with control information
    CLEAR HEADDATA .
    HEADDATA-MATERIAL_LONG     GT_DATA-MATNR.     "物料
    HEADDATA-MATL_TYPE         GT_DATA-MTART.     "物料类型
    HEADDATA-BASIC_VIEW        'X'.               "基本视图
    HEADDATA-ACCOUNT_VIEW      'X'.               "会计视图
    HEADDATA-COST_VIEW         'X'.               "成本视图

* Plant-specific material data
    CLEAR PLANTDATA .
    PLANTDATA-PLANT            GT_DATA-WERKS.     "工厂
    PLANTDATA-NO_COSTING       GT_DATA-NCOST.     "不计算成本
    PLANTDATA-LOT_SIZE         GT_DATA-LOSGR.     "成本核算批量
    CLEAR PLANTDATAX .
    PLANTDATAX-PLANT           GT_DATA-WERKS.     "工厂
    PLANTDATAX-NO_COSTING      'X'.               "不计算成本
    PLANTDATAX-LOT_SIZE        'X'.               "成本核算批量

* Valuation data
    CLEAR VALUATIONDATA .
    VALUATIONDATA-VAL_AREA     GT_DATA-WERKS.     "估价范围
    VALUATIONDATA-VAL_CLASS    GT_DATA-BKLAS.     "评估分类
    VALUATIONDATA-STD_PRICE    GT_DATA-STPRS.     "标准价格
    VALUATIONDATA-MOVING_PR    GT_DATA-VERPR.     "周期单位价格
    VALUATIONDATA-PRICE_UNIT   GT_DATA-PEINH.     "价格单位
    VALUATIONDATA-PRICE_CTRL   GT_DATA-VPRSV.     "价格控制指示符
    VALUATIONDATA-QTY_STRUCT   GT_DATA-EKALR.     "物料来源
    VALUATIONDATA-ORIG_MAT     GT_DATA-HKMAT.     "QS的成本核算
    VALUATIONDATA-PLNDPRICE1   GT_DATA-ZPLP1.     "未来计划价格1
    VALUATIONDATA-PLNDPRICE2   GT_DATA-ZPLP2.     "未来计划价格2
    VALUATIONDATA-PLNDPRICE3   GT_DATA-ZPLP3.     "未来计划价格3
    VALUATIONDATA-PLNDPRDATE1  GT_DATA-ZPLD1.     "未来计划价格 1 的生效日期
    VALUATIONDATA-PLNDPRDATE2  GT_DATA-ZPLD2.     "计划价格 2 开始有效的日期
    VALUATIONDATA-PLNDPRDATE3  GT_DATA-ZPLD3.     "计划价格 3 开始有效的日期
    CLEAR VALUATIONDATAX .
    VALUATIONDATAX-VAL_AREA    GT_DATA-WERKS.     "估价范围
    VALUATIONDATAX-VAL_CLASS   'X'.               "评估分类
    VALUATIONDATAX-STD_PRICE   'X'.               "标准价格
    VALUATIONDATAX-MOVING_PR   'X'.               "周期单位价格
    VALUATIONDATAX-PRICE_UNIT  'X'.               "价格单位
    VALUATIONDATAX-PRICE_CTRL  'X'.               "价格控制指示符
    VALUATIONDATAX-QTY_STRUCT  'X'.               "物料来源
    VALUATIONDATAX-ORIG_MAT    'X'.               "QS的成本核算
    VALUATIONDATAX-PLNDPRICE1  'X'.               "未来计划价格1
    VALUATIONDATAX-PLNDPRICE2  'X'.               "未来计划价格2
    VALUATIONDATAX-PLNDPRICE3  'X'.               "未来计划价格3
    VALUATIONDATAX-PLNDPRDATE1 'X'.               "未来计划价格 1 的生效日期
    VALUATIONDATAX-PLNDPRDATE2 'X'.               "计划价格 2 开始有效的日期
    VALUATIONDATAX-PLNDPRDATE3 'X'.               "计划价格 3 开始有效的日期


    CLEAR RETURNMES[].
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        HEADDATA           HEADDATA
        PLANTDATA          
PLANTDATA
        PLANTDATAX         
PLANTDATAX
        VALUATIONDATA      
VALUATIONDATA
        VALUATIONDATAX     
VALUATIONDATAX
      
IMPORTING
        RETURN             RETURN
      TABLES
        TAXCLASSIFICATIONS TAXCLASSIFICATIONS[]
        RETURNMESSAGES     
RETURNMES[].

    DELETE RETURNMES[] WHERE TYPE <> 'E' .

    IF RETURNMES[] IS NOT INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      SORT RETURNMES[] BY MESSAGE .
      DELETE ADJACENT DUPLICATES FROM RETURNMES[] COMPARING MESSAGE.
      LOOP AT RETURNMES.
        GT_DATA-MESSAGE GT_DATA-MESSAGE && ';' && RETURNMES-MESSAGE.
        GT_DATA-CF1 '@0A@'.
        CLEAR RETURNMES .
      ENDLOOP.
    ELSE .
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT 'X'.
      GT_DATA-MESSAGE '操作成功!.
      GT_DATA-CF1 '@08@'.
    ENDIF.

    MODIFY GT_DATA.
    CLEAR GT_DATA.
  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.

    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.

    IF WA_FIELDCAT-FIELDNAME 'CF1'
     OR WA_FIELDCAT-FIELDNAME 'CF2'
     OR WA_FIELDCAT-FIELDNAME 'CF3'
     OR WA_FIELDCAT-FIELDNAME 'CF4'
      .
      WA_FIELDCAT-ICON 'X'.
    ENDIF.

    APPEND WA_FIELDCAT TO GT_FIELDCAT.
    CLEAR WA_FIELDCAT.
  END-OF-DEFINITION.
  FILL_FIELD :
        'MATNR'    '物料编码',
        'WERKS'    '工厂',
        'MTART'    '物料类型',
        'BKLAS'    '评估分类',
        'STPRS'    '标准价格',
        'VERPR'    '周期单位价格',
        'PEINH'    '价格单位',
        'VPRSV'    '价格控制指示符',
        'NCOST'    '不计算成本',
        'EKALR'    'QS的成本核算',
        'HKMAT'    '物料来源',
        'LOSGR'    '成本核算批量',
        'ZPLP1'    '未来计划价格1',
        'ZPLP2'    '未来计划价格2',
        'ZPLP3'    '未来计划价格3',
        'ZPLD1'    '未来计划价格 1 的生效日期',
        'ZPLD2'    '计划价格 2 开始有效的日期',
        'ZPLD3'    '计划价格 3 开始有效的日期',
        'CF1'      '执行结果',
        '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 '&IC1'."表示双击

    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 '视图导入模板.xls'.
      L_MUBAN 'ZFIR010'.
*&---下载模板
      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_UPDATA.
  PERFORM FOM_POST.
  PERFORM FRM_DISPLAY.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值