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 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
ABAP doi 导出程序的更多相关文章
- 【ABAP系列】SAP ABAP DOI展示EXCEL或WORD
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP DOI展示EX ...
- 导出程序界面(UI)到图片
无意间看到这个需求,查阅了相关文章,有两篇不错的博客给出了解决方案,地址如下: 1.在WPF程序中将控件所呈现的内容保存成图像 2.随心所欲导出你的 UI 界面到 PDF 文件 主要使用的接口: Si ...
- ABAP更改现有程序
语法: READ REPORT <prog> INTO <itab>. INSERT REPORT <prog> FROM <itab>. 假定下列简 ...
- ABAP 加密解密程序
用于对字符串的加密和解密: DATA: o_encryptor TYPE REF TO cl_hard_wired_encryptor, o_cx_encrypt_error TYPE REF TO ...
- 从Ecipse中导出程序至apk
若未有数字证书: 1. 2. 3. 4. 5. 若已有数字证书: 上面的后3步改为
- abap 增强查找小程序
*&---------------------------------------------------------------------* *& Report ZEXIT *& ...
- 从Ecipse中导出程序至apk 分类: H1_ANDROID 2013-10-26 22:17 516人阅读 评论(0) 收藏
若未有数字证书: 1. 2. 3. 4. 5. 若已有数字证书: 上面的后3步改为 版权声明:本文为博主原创文章,未经博主允许不得转载.
- JAVA Eclipse如何导出APK程序
为了最快的导出程序,直接导出未签名的APK 但是大部分手机不允许安装未经签名的程序 导出签名的项目 设置密码,后面的都可以随便设置 这样最后生成的APK就可以直接双击完成安装 ...
- ABAP OO的八大理由
原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...
随机推荐
- BeautifulSoup4系列一
前言 以博客园为例,爬取我的博客上首页的发布时间.标题.摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能. 一.安装 1.打开cmd用pip在线安装beauti ...
- POJ-Crazy tea party,很好的一道数学题~~~
Crazy tea party Time Limit: 1000MS Memory Limit: 10000K Description n participants of <& ...
- Bzoj 2726 SDOI 任务安排
Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description 机器上有N个需要处理的任务,它们构成了一个序列.这些任务 ...
- HDU 1402 大数乘法 FFT、NTT
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- UVA 10200 Prime Time【暴力,精度】
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- CodeForces 599B Spongebob and Joke
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...
- 转:Linux中的内存管理
前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...
- "格式太旧或是类型库无效。 (异常来自 HRESULT:0x80028019 (TYPE_E_UNSUPFORMAT))"
错误提示内容: “System.Runtime.InteropServices.COMException (0x80028019): 格式太旧或是类型库无效. (异常来自 HRESULT:0x8002 ...
- java自动识别用户上传的文本文件编码
原文:http://www.open-open.com/code/view/1420514359234 经常碰到用户上传的部分数据文本文件乱码问题,又不能限制用户的上传的文件编码格式(这样对客户的要求 ...
- 【转】C++函数的重载、覆盖和隐藏区别
网上看到的关于C++函数的重载.覆盖和隐藏区别的回答,如下(其内容来源于C++面试宝典中一道题目): a.成员函数被重载的特征:(1)相同的范围(在同一个类中):(2)函数名字相同:(3)参数不同:( ...