ABAP doi 导出程序

PERFORM FRM_OUTPUT_EXCEL_38 TABLES GT_RESULT USING 'ZHRPA038' LDF_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 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 

转载于:https://www.cnblogs.com/rainysblog/p/6275025.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值