HR-部门内部调动报表
阅读原文时间:2023年07月15日阅读:1

*&---------------------------------------------------------------------*
*& Report  ZHRPA038
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZHRPA038.
TABLES:PERNR.
INFOTYPES:0000,0001,0002.
INFOTYPES:0008.

TYPES:BEGIN OF TY_RESULT,
        CHANGE_TYPE TYPE C LENGTH 30, "异动类型
        DTEXT       TYPE UTEXT,       "变动范围  Add by xpf 20160506
        SITE_YN     TYPE C LENGTH 6,    "SITE是否变更  Add by cx 20160106
        GO_OR_NOT   TYPE C LENGTH 6,  "是否需要改签合同
        BEGDA       TYPE PA0001-BEGDA, "生效日期
        SAP_NUMBER  TYPE PA0001-PERNR, "SAP编号
        NUMBER      TYPE C LENGTH 20, "工号    “根据SAP编号从IT0002取出调动后原工号
        ENAME       TYPE PA0001-ENAME, "姓名
        FIRST_NAME  TYPE C LENGTH 10, "姓拼音
        LAST_NAME   TYPE C LENGTH 30, "名拼音
        NEW_SITE    TYPE C LENGTH 40,    "现SITE  Add by cx 20160106 (根据调动后人事范围对应调动后SITE)
        NEW_HETONG  TYPE C LENGTH 40, "现劳动合同
        NEW_OBJID_1 TYPE C LENGTH 40, "现一级部门
        NEW_OBJID_2 TYPE C LENGTH 40, "现二级部门
        NEW_OBJID_3 TYPE C LENGTH 40, "现三级部门
        NEW_OBJID_4 TYPE C LENGTH 40, "现四级部门
        NEW_OBJID_5 TYPE C LENGTH 40, "现部门编码
        NEW_PLANS   TYPE C LENGTH 80, "现职位
        ZZ_BZ       TYPE C LENGTH 40,    "备注    Add by cx 20160106 (P0008-ZZ_BZ)
        ZZ_ORI_NO   TYPE C LENGTH 40,    "原工号  Add by cx 20160106 (P0002-ZZ_ORI_NO)
        OLD_SITE    TYPE C LENGTH 40,    "原SITE  Add by cx 20160106 (Site划分配置表:Z02_T_DEPTSITE)[???]
        OLD_HETONG  TYPE C LENGTH 40, "原劳动合同公司
        OLD_OBJID_1 TYPE C LENGTH 40, "原一级部门
        OLD_OBJID_2 TYPE C LENGTH 40, "原二级部门
        OLD_OBJID_3 TYPE C LENGTH 40, "原三级部门
        OLD_OBJID_4 TYPE C LENGTH 40, "原四级部门
        OLD_PLANS   TYPE C LENGTH 80, "原职位
      END OF TY_RESULT.
DATA:G_O1 TYPE HRP1000-SHORT,
     G_O2 TYPE HRP1000-SHORT,
     G_O3 TYPE HRP1000-SHORT,
     G_O4 TYPE HRP1000-SHORT.
DATA:GT_RESULT TYPE STANDARD TABLE OF TY_RESULT,
     GW_RESULT TYPE TY_RESULT.
DATA:GT_T530T TYPE STANDARD TABLE OF T530T,
     GW_T530T TYPE T530T,
     GT_T588T TYPE STANDARD TABLE OF T588T,   "Add by xpf 20160506
     GW_T588T TYPE T588T,                     "Add by xpf 20160506
     GT_T500P TYPE STANDARD TABLE OF T500P,
     GW_T500P TYPE T500P.
DATA:G_DAT LIKE SY-DATUM.
DATA:GW_P0001 TYPE P0001.
DATA:GDF_PATH     TYPE STRING, "add by shikai.liao
     GDF_FILENAME TYPE STRING,
     GDF_FULLPATH TYPE STRING.

INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.

START-OF-SELECTION.
  SELECT *
    FROM T500P
  INTO CORRESPONDING FIELDS OF TABLE GT_T500P.
  IF SY-LANGU = '1'.
    SELECT *
      FROM T530T
      INTO CORRESPONDING FIELDS OF TABLE GT_T530T
      WHERE ( MASSN = 'ZC' OR MASSN = 'ZS' OR MASSN = 'ZT' )  "Add by xpf 20160318增加跨薪资范围调动
        AND SPRSL = SY-LANGU.
*&->add by cx 20170106 增加“ZA员工雇用”且操作原因为“A1 TCL内调”的员工
    SELECT *
      FROM T530T
 APPENDING CORRESPONDING FIELDS OF TABLE GT_T530T
     WHERE MASSN = 'ZA'
       AND MASSG = 'A1'
       AND SPRSL = SY-LANGU.
*&->end add.
  ELSE.
    SELECT *
    FROM T530T
    INTO CORRESPONDING FIELDS OF TABLE GT_T530T
    WHERE ( MASSN = 'ZC' OR MASSN = 'ZS' OR MASSN = 'ZT' )  "Add by xpf 20160318增加跨薪资范围调动
    AND SPRSL = 'E'.
*&->add by cx 20170106 增加“ZA员工雇用”且操作原因为“A1 TCL内调”的员工
    SELECT *
      FROM T530T
 APPENDING CORRESPONDING FIELDS OF TABLE GT_T530T
     WHERE MASSN = 'ZA'
       AND MASSG = 'A1'
       AND SPRSL = 'E'.
*&->end add.

*&+get SITE.

ENDIF.
*-------------Add by xpf 20160506取变动范围文本----------------*Begin
  CLEAR GT_T588T.
  IF SY-LANGU = '1'.
    SELECT *
      FROM T588T
      INTO CORRESPONDING FIELDS OF TABLE GT_T588T
      WHERE SPRSL = SY-LANGU
        AND MNTYP = 'G'
        AND ( MENUE = 'ZC' OR MENUE = 'ZS' OR MENUE = 'ZT'   OR MENUE = 'ZA')."add by cx on 20160107 add员工雇用操作取值
  ELSE.
    SELECT *
    FROM T588T
    INTO CORRESPONDING FIELDS OF TABLE GT_T588T
    WHERE SPRSL = 'E'
        AND MNTYP = 'G'
        AND ( MENUE = 'ZC' OR MENUE = 'ZS' OR MENUE = 'ZT'   OR MENUE = 'ZA')."add by cx on 20160107 add员工雇用操作取值
  ENDIF.
*-------------Add by xpf 20160506取变动范围文本----------------*End
  GET PERNR.
  SORT P0000[] BY BEGDA.
*--------Modified by xpf 20160318---------*Begin
  DELETE  P0000[] WHERE MASSN NE 'ZC' AND MASSN NE 'ZS' AND MASSN NE 'ZT' AND  MASSN NE 'ZA'."AND MASSG NE 'A1' ).
*&->add
  DELETE  P0000[] WHERE MASSN = 'ZA' AND MASSG NE 'A1' .

DELETE  P0000[] WHERE BEGDA < PN-BEGDA OR BEGDA > PN-ENDDA .
*  DELETE  p0000[] WHERE massn <> 'ZC' OR ( begda < pn-begda OR begda > pn-endda ).
*--------Modified by xpf 20160318---------*End
  LOOP AT P0000.
    READ TABLE GT_T530T INTO GW_T530T WITH KEY MASSG = P0000-MASSG.
    IF SY-SUBRC EQ 0.
      GW_RESULT-CHANGE_TYPE = GW_T530T-MGTXT.
    ENDIF.
*-------------Add by xpf 20160506取变动范围文本----------------*Begin
    CLEAR GW_T588T.
    READ TABLE GT_T588T INTO GW_T588T WITH KEY MENUE = P0000-MASSN.
    IF SY-SUBRC EQ 0.
      GW_RESULT-DTEXT = GW_T588T-DTEXT.
    ENDIF.
*-------------Add by xpf 20160506取变动范围文本----------------*End
    GW_RESULT-BEGDA = P0000-BEGDA.
    G_DAT = P0000-BEGDA - 1.
    GW_RESULT-GO_OR_NOT = 'N'.
*&->Add cx xpf 20170106 SITE是否变更
    GW_RESULT-SITE_YN = 'N'.
*&->end add

READ TABLE P0001 INTO GW_P0001 WITH KEY ENDDA = G_DAT.
    
IF SY-SUBRC EQ 0."之前的组织信息
      
CLEAR:G_O4,G_O3,G_O2,G_O1.
      
CALL FUNCTION 'ZHR_GET_STRUC'
        
EXPORTING
          ORGEH  
= GW_P0001-ORGEH
          BEGDA  
= GW_P0001-ENDDA
          ENDDA  
= GW_P0001-ENDDA
        
IMPORTING
          SHORT1 
= G_O1
          SHORT2 
= G_O2
          SHORT3 
= G_O3
          SHORT4 
= G_O4.
      GW_RESULT
-OLD_OBJID_1 = G_O1.
      GW_RESULT
-OLD_OBJID_2 = G_O2.
      GW_RESULT
-OLD_OBJID_3 = G_O3.
      GW_RESULT
-OLD_OBJID_4 = G_O4.
      
"取得长文本(职位)
      
SELECT SINGLE STEXT
        
INTO GW_RESULT-OLD_PLANS
        
FROM HRP1000
        
WHERE PLVAR = '01'
        
AND OTYPE = 'S'
        
AND OBJID = GW_P0001-PLANS
        
AND BEGDA <= G_DAT          AND ENDDA >= G_DAT
      
AND LANGU = '1'.

*&->add by cx on 20170106 +取得原SITE

*PERSA  人事范围

*BTRTL  人事子范围
      
SELECT SINGLE SITE
        
INTO GW_RESULT-OLD_SITE
        
FROM Z02_T_DEPTSITE
       
WHERE PERSA = GW_P0001-WERKS
         
AND BTRTL = GW_P0001-BTRTL
         
AND BEGDA <= G_DAT           AND ENDDA >= G_DAT.

READ TABLE GT_T500P INTO GW_T500P WITH KEY PERSA = GW_P0001-WERKS.
      
IF SY-SUBRC EQ 0.
        GW_RESULT
-OLD_HETONG = GW_T500P-NAME1.
      
ENDIF.
      
READ TABLE P0001 WITH KEY BEGDA = P0000-BEGDA."目前的信息
      
IF SY-SUBRC EQ 0.

CLEAR:G_O4,G_O3,G_O2,G_O1.
        
CALL FUNCTION 'ZHR_GET_STRUC'
          
EXPORTING
            ORGEH  
= P0001-ORGEH
            BEGDA  
= P0001-BEGDA
            ENDDA  
= P0001-BEGDA
          
IMPORTING
            SHORT1 
= G_O1
            SHORT2 
= G_O2
            SHORT3 
= G_O3
            SHORT4 
= G_O4.
        GW_RESULT
-NEW_OBJID_1 = G_O1.
        GW_RESULT
-NEW_OBJID_2 = G_O2.
        GW_RESULT
-NEW_OBJID_3 = G_O3.
        GW_RESULT
-NEW_OBJID_4 = G_O4.
        GW_RESULT
-NEW_OBJID_5 = P0001-ORGEH.

*& 现职位
        
SELECT SINGLE STEXT
     
INTO GW_RESULT-NEW_PLANS
     
FROM HRP1000
     
WHERE PLVAR = '01'
     
AND OTYPE = 'S'
     
AND OBJID = P0001-PLANS
     
AND BEGDA <= P0001-BEGDA       AND ENDDA >= P0001-BEGDA
   
AND LANGU = '1'.

*&add by cx on 20160106 +现SITE
        
SELECT SINGLE SITE
          
INTO GW_RESULT-NEW_SITE
          
FROM Z02_T_DEPTSITE
         
WHERE PERSA = P0001-WERKS
           
AND BTRTL = P0001-BTRTL
           
AND BEGDA <= P0001-BEGDA             AND ENDDA >= P0001-BEGDA.

* if GW_RESULT-SITE_NOW NE SPAEC.
        
IF GW_RESULT-NEW_SITE NE GW_RESULT-OLD_SITE.
          GW_RESULT
-SITE_YN = 'Y'.
        
ELSE.
          GW_RESULT
-SITE_YN = 'N'.
        
ENDIF.

READ TABLE GT_T500P INTO GW_T500P WITH KEY PERSA = P0001-WERKS.
        
IF SY-SUBRC EQ 0.
          GW_RESULT
-NEW_HETONG = GW_T500P-NAME1.
          
IF GW_P0001-WERKS <> P0001-WERKS.
            GW_RESULT
-GO_OR_NOT = 'Y'.
          
ENDIF.
        
ENDIF.
      
ENDIF.

ENDIF.

LOOP AT P0002 WHERE BEGDA <= P0000-BEGDA AND ENDDA >= P0000-BEGDA.
      GW_RESULT
-SAP_NUMBER = P0000-PERNR.
      GW_RESULT
-ENAME = P0002-NACHN.
      GW_RESULT
-FIRST_NAME = P0002-INITS.
      GW_RESULT
-LAST_NAME = P0002-VORNA.
      GW_RESULT
-NUMBER = P0002-ZZ_ORI_NO.
      
EXIT.
    
ENDLOOP.

*&->add by cx on 20170106 原工号

*  GW_RESULT-ZZ_ORI_NO = P0002-ZZ_ORI_NO.
    
LOOP AT P0002 WHERE ENDDA <= P0000-BEGDA.
      GW_RESULT
-ZZ_ORI_NO = P0002-ZZ_ORI_NO.
      
EXIT.
    
ENDLOOP.

* SELECT SINGLE

*&->end add.

*&->add by cx on 20170106 find 备注
    
LOOP AT P0008 WHERE BEGDA <= P0000-BEGDA AND ENDDA >= P0000-BEGDA.
      GW_RESULT
-ZZ_BZ = P0008-ZZ_BZ.
      
EXIT.
    
ENDLOOP.

APPEND GW_RESULT TO GT_RESULT.
    
CLEAR GW_RESULT.

ENDLOOP.

END-OF-SELECTION.
  
PERFORM FRM_EXPORT_DATA.

FORM FRM_EXPORT_DATA .
  
DATA:LDF_PATH TYPE LOCALFILE.
  
.
  
"弹出路径框
  
CLEAR: GDF_PATH,
         GDF_FILENAME
,
         GDF_FULLPATH
.
  
PERFORM FRM_GET_PATH_038 CHANGING GDF_PATH GDF_FILENAME GDF_FULLPATH .
  
IF GDF_FULLPATH IS INITIAL .
    
MESSAGE '请选择要保存的文件夹和输入文件名' TYPE 'I'.
  
ELSE.
    
CLEAR LDF_PATH.
    
MOVE GDF_FULLPATH TO LDF_PATH.

PERFORM FRM_OUTPUT_EXCEL_38 TABLES GT_RESULT USING 'ZHRPA038' LDF_PATH .

*    PERFORM FRM_OUTPUT_EXCEL_38 TABLES GT_RESULT USING 'zhrpa038_C1' LDF_PATH .
  
ENDIF.

ENDFORM.                    " FRM_EXPORT_DATA

FORM FRM_GET_PATH_038 CHANGING:FU_PATH
                           FU_FILENAME
                           FU_FULLPATH

.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    
EXPORTING
      WINDOW_TITLE              
= 'Select Folder and Enter Filename to Save File'
      DEFAULT_EXTENSION         
= 'xls' "'xlsx'

*     DEFAULT_FILE_NAME         =

*     WITH_ENCODING             =
      FILE_FILTER               
= '*.xls' "'*.xlsx'

*     INITIAL_DIRECTORY         =

*     PROMPT_ON_OVERWRITE       = 'X'
    
CHANGING
      FILENAME                  
= FU_FILENAME
      PATH                      
= FU_PATH
      FULLPATH                  
= FU_FULLPATH

*     USER_ACTION               =

*     FILE_ENCODING             =
    
EXCEPTIONS
      CNTL_ERROR                
= 1
      ERROR_NO_GUI              
= 2
      NOT_SUPPORTED_BY_GUI      
= 3
      INVALID_DEFAULT_FILE_NAME 
= 4
      
OTHERS                    = 5.
  
IF SY-SUBRC <> 0.

*   Implement suitable error handling here
  
ENDIF.

*   CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG

*     EXPORTING

*       WINDOW_TITLE         = 'Select Folder to Save File'

*    CHANGING

*       SELECTED_FOLDER      = gdf_path

*     EXCEPTIONS

*       CNTL_ERROR           = 1

*       ERROR_NO_GUI         = 2

*       NOT_SUPPORTED_BY_GUI = 3

*       OTHERS               = 4.

*   IF SY-SUBRC <> 0.

*

*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*  ENDIF.

ENDFORM.                    " FRM_GET_PATH

FORM FRM_OUTPUT_EXCEL_38 TABLES PT_EXCEL TYPE STANDARD TABLE
                                    
USING PV_TEMPLATE TYPE BDS_PROPVA
                                          PV_FILE     
TYPE LOCALFILE.

DATA:L_IREF_TEMPLATE    TYPE REF TO CL_BDS_DOCUMENT_SET,
       L_OREF_CONTAINER   
TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
       L_IREF_CONTROL     
TYPE REF TO I_OI_CONTAINER_CONTROL,
       L_IREF_ERROR       
TYPE REF TO I_OI_ERROR,
       L_IREF_DOCUMENT    
TYPE REF TO I_OI_DOCUMENT_PROXY,
       L_IREF_SPREADSHEET 
TYPE REF TO I_OI_SPREADSHEET,
       L_RETCODE          
TYPE SOI_RET_STRING.

DATA: LT_SIGNATURE TYPE SBDST_SIGNATURE,
        LW_SIGNATURE 
TYPE BAPISIGNAT,
        LT_URI       
TYPE SBDST_URI,
        LW_URI       
TYPE BAPIURI,
        LT_SHEET     
TYPE SOI_SHEETS_TABLE,
        L_DOC        
TYPE CNTL_HANDLE ,
        L_APL        
TYPE OBJ_RECORD ,
        LW_SHEET     
TYPE SOI_SHEETS.

DATA: LT_FIELDS   TYPE STANDARD TABLE OF RFC_FIELDS,
        LS_FIELDS   
TYPE RFC_FIELDS,
        LV_LAST_ROW 
TYPE I,
        LV_LAST_COL 
TYPE I.
  
DATA:      GDF_ERROR  TYPE REF TO I_OI_ERROR,
             GDS_ERRORS 
TYPE REF TO I_OI_ERROR OCCURS 0 WITH HEADER LINE.

DATA:LDF_OBJECTKEY TYPE BAPIBDS01-OBJKEY.
  
CALL METHOD C_OI_CONTAINER_CONTROL_CREATOR=>GET_CONTAINER_CONTROL
    
IMPORTING
      
CONTROL = L_IREF_CONTROL
      RETCODE 
= L_RETCODE.

CHECK L_RETCODE = C_OI_ERRORS=>RET_OK.

CALL METHOD L_IREF_CONTROL->INIT_CONTROL
    
EXPORTING
      R3_APPLICATION_NAME      
= PV_TEMPLATE
      INPLACE_ENABLED          
= 'X'
      INPLACE_SCROLL_DOCUMENTS 
= 'X'
      PARENT                   
= L_OREF_CONTAINER
    
IMPORTING
      RETCODE                  
= L_RETCODE.
  
IF L_RETCODE <> C_OI_ERRORS=>RET_OK.
    
MESSAGE '保存Excel文件出错' TYPE 'E'.
  
ENDIF.
  
CHECK L_RETCODE = C_OI_ERRORS=>RET_OK.

CREATE OBJECT L_IREF_TEMPLATE.
  LW_SIGNATURE
-PROP_NAME  = 'BDS_KEYWORD'.
  LW_SIGNATURE
-PROP_VALUE = PV_TEMPLATE.
  
APPEND LW_SIGNATURE TO LT_SIGNATURE.

REFRESH LT_URI.
  
CLEAR LDF_OBJECTKEY.
  
MOVE PV_TEMPLATE TO LDF_OBJECTKEY.
  
CALL METHOD L_IREF_TEMPLATE->GET_WITH_URL
    
EXPORTING
      CLASSNAME       
= 'SOFFICEINTEGRATION'
      CLASSTYPE       
= 'OT'
      OBJECT_KEY      
= LDF_OBJECTKEY
    
CHANGING
      URIS            
= LT_URI
      SIGNATURE       
= LT_SIGNATURE
    
EXCEPTIONS
      NOTHING_FOUND   
= 1
      ERROR_KPRO      
= 2
      INTERNAL_ERROR  
= 3
      PARAMETER_ERROR 
= 4
      NOT_AUTHORIZED  
= 5
      NOT_ALLOWED     
= 6.

CLEAR LW_URI.
  
READ TABLE LT_URI INTO LW_URI INDEX 1.
  
IF SY-SUBRC <> 0.
    
MESSAGE '请检查EXCEL模板不存在或者设置不正确' TYPE 'E'.
  
ENDIF.
  
CHECK SY-SUBRC = 0.

CALL METHOD L_IREF_CONTROL->GET_DOCUMENT_PROXY
    
EXPORTING
      DOCUMENT_TYPE  
= 'Excel.Sheet'
    
IMPORTING
      DOCUMENT_PROXY 
= L_IREF_DOCUMENT
      RETCODE        
= L_RETCODE.
  
IF L_RETCODE <> C_OI_ERRORS=>RET_OK.
    
MESSAGE '保存Excel文件出错' TYPE 'E'.
  
ENDIF.
  
CHECK L_RETCODE = C_OI_ERRORS=>RET_OK.

CALL METHOD L_IREF_DOCUMENT->OPEN_DOCUMENT
    
EXPORTING
      DOCUMENT_URL 
= LW_URI-URI
      OPEN_INPLACE 
= 'X'
    
IMPORTING
      RETCODE      
= L_RETCODE.
  
IF L_RETCODE <> C_OI_ERRORS=>RET_OK.
    
MESSAGE '保存Excel文件出错' TYPE 'E'.
  
ENDIF.
  
CHECK L_RETCODE = C_OI_ERRORS=>RET_OK.

FREE L_IREF_ERROR.

CALL METHOD L_IREF_DOCUMENT->GET_SPREADSHEET_INTERFACE
    
IMPORTING
      ERROR           
= L_IREF_ERROR
      SHEET_INTERFACE 
= L_IREF_SPREADSHEET.

CALL METHOD L_IREF_SPREADSHEET->GET_SHEETS
    
IMPORTING
      SHEETS 
= LT_SHEET
      ERROR  
= L_IREF_ERROR.

CHECK L_IREF_ERROR->ERROR_CODE = C_OI_ERRORS=>RET_OK.

CLEAR LW_SHEET.

LV_LAST_ROW

= LINES( PT_EXCEL ).

READ TABLE LT_SHEET INTO LW_SHEET INDEX 1.
  
CHECK SY-SUBRC = 0.

CALL METHOD L_IREF_SPREADSHEET->SELECT_SHEET
    
EXPORTING
      NAME  
= LW_SHEET-SHEET_NAME
    
IMPORTING
      ERROR 
= L_IREF_ERROR.

CHECK L_IREF_ERROR->ERROR_CODE = C_OI_ERRORS=>RET_OK.
  
"calculate The columns of Data
  
REFRESH LT_FIELDS.
  
CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE'
    
TABLES
      
DATA   = PT_EXCEL
      
FIELDS = LT_FIELDS.

LV_LAST_COL

= LINES( LT_FIELDS ).

CALL METHOD L_IREF_SPREADSHEET->SET_SELECTION
    
EXPORTING
      
LEFT    = 1
      TOP     
= 2
      
ROWS    = LV_LAST_ROW
      COLUMNS 
= LV_LAST_COL.

CALL METHOD L_IREF_SPREADSHEET->INSERT_RANGE
    
EXPORTING
      COLUMNS 
= LV_LAST_COL
      
ROWS    = LV_LAST_ROW
      NAME    
= PV_TEMPLATE.

CALL METHOD L_IREF_SPREADSHEET->INSERT_ONE_TABLE
    
EXPORTING
      DATA_TABLE   
= PT_EXCEL[]
      FIELDS_TABLE 
= LT_FIELDS
      RANGENAME    
= PV_TEMPLATE.

CALL METHOD L_IREF_DOCUMENT->SAVE_AS
    
EXPORTING
      FILE_NAME 
= PV_FILE.

CALL METHOD L_IREF_DOCUMENT->RELEASE_DOCUMENT
    
IMPORTING
      RETCODE 
= L_RETCODE.
  
IF L_RETCODE <> C_OI_ERRORS=>RET_OK.
    
MESSAGE '保存Excel文件出错' TYPE 'E'.
  
ELSE.
    
MESSAGE 'Excel文件已保存' TYPE 'S'.
  
ENDIF.
  
FREE: L_IREF_SPREADSHEET,
        L_IREF_DOCUMENT
.

CALL METHOD L_IREF_CONTROL->RELEASE_ALL_DOCUMENTS.
  
CALL METHOD L_IREF_CONTROL->DESTROY_CONTROL.

ENDFORM.                    " FRM_OUTPUT_EXCEL

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器