ABAP中DOI的实现Word下载.docx

上传人:b****6 文档编号:18031588 上传时间:2022-12-13 格式:DOCX 页数:9 大小:48.28KB
下载 相关 举报
ABAP中DOI的实现Word下载.docx_第1页
第1页 / 共9页
ABAP中DOI的实现Word下载.docx_第2页
第2页 / 共9页
ABAP中DOI的实现Word下载.docx_第3页
第3页 / 共9页
ABAP中DOI的实现Word下载.docx_第4页
第4页 / 共9页
ABAP中DOI的实现Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ABAP中DOI的实现Word下载.docx

《ABAP中DOI的实现Word下载.docx》由会员分享,可在线阅读,更多相关《ABAP中DOI的实现Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

ABAP中DOI的实现Word下载.docx

FLAG.

CONTAINERTYPEREFTOCL_GUI_CUSTOM_CONTAINER,"

容器实例

CONTROLTYPEREFTOI_OI_CONTAINER_CONTROL,"

控制器实例

DOCUMENTTYPEREFTOI_OI_DOCUMENT_PROXY,"

文档操作对象

SPREADSHEETTYPEREFTOI_OI_SPREADSHEET,"

分隔符对象

ERRORTYPEREFTOI_OI_ERROR,"

错误信息

ERRORSTYPEREFTOI_OI_ERROROCCURS0WITHHEADERLINE."

*spreadsheetinterfacestructuresforExceldatainput

RANGEITEMTYPESOI_RANGE_ITEM.

RANGESTYPESOI_RANGE_LIST.

EXCEL_INPUTTYPESOI_GENERIC_TABLE.

EXCEL_INPUT_WATYPESOI_GENERIC_ITEM.

INITIALIZED

(1),RETCODETYPESOI_RET_STRING.

ITEM_URL(256)."

存放模板的Url

DATADOCUMENT_TYPE(80)."

文档类型

EXCEL(80)VALUE'

Excel.Sheet'

.

LINE_COUNTTYPEI,

COLUMN_COUNTTYPEI.

OK_CODETYPESY-UCOMM,

SAVE_OKTYPESY-UCOMM.

CLASSC_OI_ERRORSDEFINITIONLOAD.

BEGINOFITABOCCURS0.

INCLUDESTRUCTURET001.

ENDOFITAB.

SELECT-OPTIONSBUKRSFORT001-BUKRS.

START-OF-SELECTION.

PERFORMGETDATA.

CALLSCREEN100.

Formgetdata

*text

*----------------------------------------------------------------------*

*-->

p1text

*<

--p2text

FORMGETDATA.

SELECT*

FROMT001

INTOTABLEITAB

WHEREBUKRSINBUKRS.

ENDFORM."

getdata

ModuleSTATUS_0100OUTPUT

MODULESTATUS_0100OUTPUT.

SETPF-STATUS'

SA1'

IFFLAG=SPACE.

PERFORMCREATE_BASIC_OBJECTSUSING'

'

'

DOCUMENT_NAME.

PERFORMOUTPUT_TO_EXCEL.

ENDIF.

ENDMODULE."

STATUS_0100OUTPUT

ModuleUSER_COMMAND_0100INPUT

MODULEUSER_COMMAND_0100INPUT.

FLAG='

SAVE_OK=OK_CODE.

CLEAROK_CODE.

CASESAVE_OK.

WHEN'

CANCLE'

.

IFNOTDOCUMENTISINITIAL.

CALLMETHODDOCUMENT->

CLOSE_DOCUMENT."

关闭文档

FREEDOCUMENT.

IFNOTCONTROLISINITIAL.

CALLMETHODCONTROL->

DESTROY_CONTROL.

FREECONTROL.

LEAVEPROGRAM.

BACK'

CLOSE_DOCUMENT.

SETSCREEN0."

quittheprogram

"

setscreen1000.

ENDCASE.

USER_COMMAND_0100INPUT

FormCREATE_BASIC_OBJECTS

P_APP_NAMEtext

P_CLASSNAMEtext

P_CLASSTYPEtext

P_OBJ_KEYtext

P_DOCNAMEtext

FORMCREATE_BASIC_OBJECTSUSINGP_APP_NAME

P_CLASSNAME

P_CLASSTYPE

P_OBJ_KEY

P_DOCNAME.

CHECKINITIALIZEDISINITIAL.

*获取SAPDOI的控制器接口

CALLMETHOD

C_OI_CONTAINER_CONTROL_CREATOR=>

GET_CONTAINER_CONTROL

IMPORTING

CONTROL=CONTROL

ERROR=ERROR.

*checknoerrorsoccured

CALLMETHODERROR->

RAISE_MESSAGE

EXPORTING

TYPE='

E'

实例化容器实例

CREATEOBJECTCONTAINER

CONTAINER_NAME='

CONTAINER'

DATAL_APP_NAME(200).

IFP_APP_NAMEISINITIAL.

L_APP_NAME='

TEST'

ELSE.

L_APP_NAME=P_APP_NAME.

初始化控制器的接口

INIT_CONTROL

R3_APPLICATION_NAME=L_APP_NAME

INPLACE_ENABLED=INPLACE

INPLACE_SCROLL_DOCUMENTS='

PARENT=CONTAINER

REGISTER_ON_CLOSE_EVENT='

REGISTER_ON_CUSTOM_EVENT='

NO_FLUSH='

ERROR=ERRORS.

*saveerrorobjectincollection

APPENDERRORS.

CLEARITEM_URL.

定义BDS实例变量,用于设置文档信息

BDS_INSTANCETYPEREFTOCL_BDS_DOCUMENT_SET.

DOC_SIGNATURETYPESBDST_SIGNATURE,

WA_DOC_SIGNATURELIKELINEOFDOC_SIGNATURE,

DOC_COMPONENTSTYPESBDST_COMPONENTS,

DOC_URISTYPESBDST_URI,

WA_DOC_URISLIKELINEOFDOC_URIS.

*以下三个值为Tcode:

OAOR里面新建模板文件的参数

DOC_CLASSNAMETYPESBDST_CLASSNAMEVALUE'

HRFPM_EXCEL_STANDARD'

DOC_CLASSTYPETYPESBDST_CLASSTYPEVALUE'

OT'

DOC_OBJECT_KEYTYPESBDST_OBJECT_KEYVALUE'

WA_DOC_SIGNATURE-PROP_NAME='

DESCRIPTION'

DOCUMENT_TYPE=EXCEL.

WA_DOC_SIGNATURE-PROP_VALUE=P_DOCNAME."

赋给文档名字

APPENDWA_DOC_SIGNATURETODOC_SIGNATURE."

DOC_SIGNATURE存储了文档信息

CREATEOBJECTBDS_INSTANCE.

CALLMETHODBDS_INSTANCE->

GET_INFO"

获取文档信息

CLASSNAME=DOC_CLASSNAME

CLASSTYPE=DOC_CLASSTYPE

OBJECT_KEY=DOC_OBJECT_KEY

CHANGING

COMPONENTS=DOC_COMPONENTS

SIGNATURE=DOC_SIGNATURE.

GET_WITH_URL"

获取文档的url地址放到DOC_URIS中

URIS=DOC_URIS

FREEBDS_INSTANCE."

释放该对象

READTABLEDOC_URISINTOWA_DOC_URISINDEX1.

ITEM_URL=WA_DOC_URIS-URI."

获取对象的地址

*告诉SAPDOI容器开辟一个Excel策略

GET_DOCUMENT_PROXY

DOCUMENT_TYPE='

DOCUMENT_PROXY=DOCUMENT

*根据模板地址打开Excel文件

OPEN_DOCUMENT

OPEN_INPLACE=INPLACE

DOCUMENT_URL=ITEM_URL.

HASTYPEI.

HAS_SPREADSHEET_INTERFACE

IS_AVAILABLE=HAS

获取模板文档的表格分割器接口给SPREADSHEET

GET_SPREADSHEET_INTERFACE

SHEET_INTERFACE=SPREADSHEET

*激活第一个sheet

CALLMETHODSPREADSHEET->

SELECT_SHEET

NAME='

表整理'

*NO_FLUSH='

*RETCODE=

LOOPATERRORS.

CALLMETHODERRORS->

EXPORTING

TYPE='

ENDLOOP.

FREEERRORS.

INITIALIZED='

CREATE_BASIC_OBJECTS

Formoutput_to_excel

*filltheEXCELsheet

FORMOUTPUT_TO_EXCEL.

DATANUMTYPEIVALUE0.

LOOPATITAB.

NUM=SY-TABIX+2.

PERFORMFILL_CELLUSINGNUM1ITAB-BUKRS."

行列值

PERFORMFILL_CELLUSINGNUM2ITAB-SPRAS.

PERFORMFILL_CELLUSINGNUM3ITAB-BUTXT.

output_to_excel

FormFILL_CELL

Itext

Jtext

VALtext

FORMFILL_CELLUSINGIJVAL.

COLUMNS_NUMBERTYPEI,

ROWS_NUMBERTYPEI.

COLUMNS_NUMBER=1.

ROWS_NUMBER=1.

INSERT_RANGE_DIM

cell'

TOP=I

LEFT=J

ROWS=ROWS_NUMBER

COLUMNS=COLUMNS_NUMBER

REFRESH:

RANGES,EXCEL_INPUT.

RANGEITEM-NAME='

RANGEITEM-COLUMNS=1.

RANGEITEM-ROWS=1.

APPENDRANGEITEMTORANGES.

EXCEL_INPUT_WA-COLUMN=1.

EXCEL_INPUT_WA-ROW=1.

EXCEL_INPUT_WA-VALUE=VAL.

APPENDEXCEL_INPUT_WATOEXCEL_INPUT.

*setdata

SET_RANGES_DATA

RANGES=RANGES

CONTENTS=EXCEL_INPUT

FIT_WIDEST

NAME=SPACE

fill_cell

DOI必须放在自定义屏幕的一个Container中。

最终的运行结果如图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1