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 ...
随机推荐
- Mybatis中实体类属性和数据列之间映射的四种办法
http://blog.csdn.net/lmy86263/article/details/53150091 Mybatis不像hibernate中那么自动化,通过@Column注解或者直接使用实体类 ...
- LeetCode(86) Partition List
题目 Given a linked list and a value x, partition it such that all nodes less than x come before nodes ...
- 【HIHOCODER 1044】题目1 : 状态压缩·一
描述 小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市--那座城市即将举行美食节! 但是不幸的是,小Hi和小Ho并没有能够买到很好的火车票-- ...
- .NET如何进行数据库连接
在.net中连接sql server数据库,需引入System.Data.SqlClient命名空间: 1,最简单的连接方式: SqlConnection conn = new SqlConnecti ...
- 使用cURL和用户名和密码?
问题描述 我想访问一个需要用户名/密码的URL.我想尝试用 curl 来访问它.现在我正在做一些事情: curl http://api.somesite.com/test/blah?something ...
- 【贪心+DFS】D. Field expansion
http://codeforces.com/contest/799/problem/D [题意] 给定长方形的两条边h和w,你可以从给出的n个数字中随意选出一个x,把h或者w乘上x(每个x最多用一次) ...
- hdu 3371
#include<stdio.h> #include<stdlib.h> #define N 501 struct node { int x,y,dis; }road[N*N] ...
- hdu4135 Co-prime【容斥原理】
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- bzoj2190 [SDOI2008]仪仗队 - 筛法 - 欧拉函数
作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). ...
- [转]eclipse的android智能提示设置
以往 我们往往在输入 "." 然后 alt+/ 来进行智能提示,下面这个方法,可以帮你大幅度的提高智能打开 Eclipse -> Window -> Perferenc ...