ABAP-EXCEL-DOI-操作手册V指南_第1页
ABAP-EXCEL-DOI-操作手册V指南_第2页
ABAP-EXCEL-DOI-操作手册V指南_第3页
ABAP-EXCEL-DOI-操作手册V指南_第4页
ABAP-EXCEL-DOI-操作手册V指南_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

]年月日录1

引言1.4

目的及范围3参考资料定义3文档结构2SAP传件到2.1FM:2.2:ALSM_EXCEL_TO_INTERNAL_TABLE43SAP将R3内容下载到件3.1FM:SAP_CONVERT_TO_XLS_FORMAT54DOI操作4.1

介绍64.1.1两者之间的关系64.1.2OLE&DOI关于的处理6优:6实现操作6

传65

DOI作的7具体案例145.1

上传EXCEL到内,下载内表数到一)155.1.4

代现15本EXCEL件及内17执程序18执行结果5.2

按单格上传数据到内表21

代现21本档及23执行23执行果5.3DOI技术操作.3

传EXCEL模25代码实28设计屏程序执1言SAP将EXCEL文中的据上传到(内)数进处后再载到EXCEL文中经常用的操,档主要介绍对EXCEL文的与功现绍1.1及范围本文档如何实现系上传与下载EXCEL件介绍相实例,适于开发人员,析人使用1.2料1.3义1.4构文的各章节介的内容如下:第节介绍SAP上传EXCEL文件到第节介绍SAP将内下到EXCEL文中第节体案例2SAP上传EXCEL到以将讲解SAP如何上传文到内:2.1:TEXT_CONVERT_XLS_TO_SAP该FunctionModule用于将文中的数据上传到内表中,求内的列数和要传得EXCEL数据列要同,因为按照列来匹配传值的,单元格文本不能超过符。下介绍该中的参:CALLFUNCTION'TEXT_CONVERT_XLS_TO_SAP'EXPORTING*I_FIELD_SEPERATOR=I_LINE_HEADER‘X’“去掉先标WORKi_filenamel_file文件路径tables=“数内表*EXCEPTIONS*CONVERSION_FAILED=*OTHERS=.IFsy-subrc<>0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.参数介绍I_LINE_HEADER

去掉首先识,当‘’时,去首行i_tab_raw_dataWORKTABLEi_filename文件完整路径i_tab_converted_data

接收数据的内表,列与一致2.2ALSM_EXCEL_TO_INTERNAL_TABLEcallfunction'ALSM_EXCEL_TO_INTERNAL_TABLE'exportingfilename=filenmi_begin_col=1i_begin_row=1i_end_col=9i_end_row=10tablesintern=lt_dataexceptionsinconsistent_parameters=1upload_ole=2others参数

=3.filenamei_begin_coli_begin_rowi_end_coli_end_rowintern

文件径开始列开始行结束列结束行内表3SAP将R3容下到EXCEL件3.1SAP_CONVERT_TO_XLS_FORMATFunction如:CALLFUNCTION'SAP_CONVERT_TO_XLS_FORMAT'EXPORTING*I_FIELD_SEPERATOR=*I_LINE_HEADER=i_filename='d:/download.xlsx'*I_APPL_KEEP=tablesi_tab_sap_datagt_data*CHANGING*I_TAB_CONVERTED_DATA=*EXCEPTIONS*CONVERSION_FAILED=*OTHERS=.参数绍i_filenamei_tab_sap_data

EXCEL文件完整路径内表4技术作EXCEL4.1绍4.1.1OLE&DOI之间的关系:OLE(ObjectLinkingandEmbuding对象的连接与嵌入技术)是早与微软集的工具而(OfficeIntegration,面办公系统成接口)是它的替代技术。在际项目中使用到OLE&DOI的场合多是EXCEL表格读入是制有需要动表及填据有的只是要求在原的模版上填制数。根据同的场合以选用不同的技。4.1.2OLE&DOI于EXCEL的处:OLE实际上是类EXCEL中VBA一写。有种单方,是可以在EXCEL中动作录制成宏,然后根据宏的代码把它改成同也直用EXCEL宏程(没有禁宏的前下。DOI全用类现特点是你用再去那繁琐的语了,DOI都给你装成类的方法了同时为一控,已经集成了的中,就以SAP屏写Office的东了不再跳出一个窗来了,少些误操。然DOI也支持调EXCEL程序的,前提是宏没有被禁。4.1.3DOI优点:推用DOI方导到Excel,不用DOI调SAP带的来作的,控,可把Excel口当作一个屏控件屏的中4.2DOI实现EXCEL操作4.2.1上EXCEL模模上的方式有种:1.FTP把件传到,后运的时候,接入件服器路,把模版本打填制。2.T-code:SMW0(OLE技,上传的)用Web的一种文件存,也可以借用来存模版。建立之要维护相应的types(文的类型要注册),方可上传此类型的文件3.T-code:OAOR(DOI技,上传方法,下实中着重明骤是模版传输到Document,然后程序运行时在本地打开进行填制4.2.2DOI操EXCEL的类类I_OI_SPREADSHEET中的法SET_HIERARCHY_TABLESetsHierarchiesUsingaTableLoadSET_HEADERaCLEAR_HIERARCHYHierarchySET_HIERARCHYSetsGET_CELL_FORMATS_TABLEGetsCellsGET_SELECTED_AREASaSelectedRangesSETLOCALESetsDecimalSET_FIXED_COLSSetsColumnsSET_FIXED_ROWSSetsRowsSET_INFO_TABLESetsTableINSERT_RANGESRangesCELL_FORMATSetsCellCLEAR_ALL_RANGESDeletesandRangesDELETE_CONTENT_RANGESDeletesRangesDELETE_RANGESDeletesEntireRangesADD_SHEETDELETE_SHEETDeletesSET_SHEET_NAMESetsSCREEN_UPDATEScreenINSERT_FULLValuesSET_ZOOMSet_WIDESTWidest_ACTIVE_SHEETGetGET_PROTECTIONaHIDE_ROWSRowsCLEAR_CONTENT_RANGERangeCLEAR_RANGERangeRangeINSERT_RANGE_DIMGetaRangeBasedPROTECT_RANGESetsaRangeGET_SHEETSNamesWorksheetsPRINTaPROTECTSheetGET_CELL_FORMATGetaLineGET_SELECTIONGetSELECT_RANGESelectaRangeSELECT_SHEETaSheetSET_FONTaRangeSET_FORMATSetaRangeSET_FORMAT_STRINGSetRangeSET_FRAMEaaRangeSET_RANGES_FORMATSetaRangeCHANGE_RANGESizGET_RANGES_NAMESGetaRangeGET_RANGES_DATAGetNameRangeINSERT_ONE_TABLEINSERT_RANGENewRangeSET_RANGES_DATAaRangeSET_SELECTIONSetaSelectionHIDE_COLUMNSColumnsSHOW_ROWSDisplaySHOW_COLUMNSColumnsSET_COLORSetColoraRangeSET_DATA_TABLESetsUPDATE_FRONTENDExcelBasedVERSIONVersionSpreadsheetGET_DIMENSION_TABLEaTableContainingRangesSET_STYLEStyGET_STYLEReadStyleAreaGET_STYLE_FORMATSReadCHANGE_STYLEChangeStylesADD_STYLEAddStylesC_OI_CONTAINER_CONTROL_CREATORSTART_TRACEForUseSTOP_TRACEForUseGET_CONTAINER_CONTROLInstanceOLE_TO_MIMEConversionOLE->MIME_TO_OLEConversionOLETypeGET_DOCUMENT_VIEWERI_OI_ERRORRAISE_MESSAGETriggersGET_MESSAGEFLUSH_ERRORUseCL_GUI_SPLITTER_CONTAINERGET_CONTAINERPaneCONSTRUCTORSET_GRIDanewGET_ROWSLinesGET_COLUMNSReturnsSET_ROW_HEIGHTSetsaGET_ROW_HEIGHTaLineSET_COLUMN_WIDTHSetsADD_CONTROLREMOVE_CONTROLSET_ROW_MODESetsLineModeGET_ROW_MODEReturnsLineModeSetsModeGET_COLUMN_MODEReturnsModeSET_ROW_SASHSetsBarGET_ROW_SASHLineBarI_OI_CONTAINER_CONTROLCHECK_REGISTERED_DOC_TYPESChecksApplicationsDESTROY_CONTROLGET_CONTROL_HANDLEObsolete:UseGET_CONTROL_OBJECTInsteadGET_CONTROL_OBJECTGET_DOCUMENT_PROXYCreatesManagementGET_LINK_SERVERCreatesInstanceServerGET_REGISTERED_DOC_TYPESaExApplicationsGET_TABLE_COLLECTIONInstanceTableandesLINK_CONTROLUsingRELEASE_ALL_DOCUMENTSReleasesAllDocumentsSET_FOCUSSetsFocusSET_INPLACE_BORDER_SPACESET_WINDOW_PROPERTIESGET_EXTENSIONSExRegistryCL_BDS_DOCUMENT_SETASSIGNCOPYDocumentDELETE_PROPERTIESCHANGE_PROPERTIESChangeCALL_NAVIGATORCallCREATE_VARIANT_WITH_FILESCreateVariantFileCREATE_VARIANT_WITH_URLCreateVariantCREATE_VERSION_WITH_URLCreateCREATE_VERSION_WITH_FILESCreateDELETEUPDATE_WITH_FILESGET_WITH_COMP_URLReturnbySpecifyGET_WITH_OWN_URLReturnbySpecifyaGET_WITH_URLReturnbyURLGET_FAST_INFOFetchQuickGET_INFOFetchDocumentsCREATE_WITH_OWN_URLaCREATE_WITH_URLURLGET_WITH_AS_TABLEReturnbyASCIIGET_WITH_TABLEbyCREATE_WITH_FILESFileNameCREATE_WITH_AS_TABLECreateASCIITableCREATE_WITH_TABLECreateUPDATE_WITH_AS_TABLEChangeASCIIUPDATE_WITH_TABLECONFIRM_CREATEbeenCreatedCREATE_RELATIONCreateGET_WITH_FILESReturnFilesUPDATE_WITH_URLChangeQUERY_DOCUMENTSQueryQUERY_RELATIONSQueryRelationshipsGET_RELATIONSReturnRelationshipsDELETE_RELATIONSRelationshipsGET_COMPONENT_PROPERTIESaCREATE_VARIANT_WITH_AS_TABLEVariantASCIICREATE_VARIANT_WITH_TABLECreateVariantContentsCREATE_VERSION_WITH_AS_TABLECreateASCIICREATE_VERSION_WITH_TABLEGET_TRANSPORT_INFOSRetrieveEntriesGET_INFO_NEWEST_ONLYRecentCONFIRM_UPDATEhasLockERROR_HANDLINGI_OI_DOCUMENT_PROXYHAS_SPREADSHEET_INTERFACEWhetherIsForDoc.GET_FORM_INTERFACECreatesExBarADD_MENU_ITEMEntryaaCLEAR_SELECTIONCLOSE_ACTIVEX_DOCUMENTaVisualCLOSE_DOCUMENTClosesaCOPY_SELECTIONSelectedCREATE_DOCUMENTOpensaCUT_SELECTIONSelectedFromDELETE_MENU_ITEMEXECUTE_MACROExecutesGET_APPLICATION_PROPERTYGetsGET_DOCUMENT_COOKIEaIDGetsGET_DOCUMENT_TYPEGetsGET_MAIL_MERGE_INTERFACE_SCRIPT_COLLECTIONaGET_WORDPROCESSOR_INTERFACEReturns_CHANGEDTheChangedHAS_MAIL_MERGE_INTERFACEHAS_STANDARD_INTERFACEWhetherisStandardDocHAS_WORDPROCESSOR_INTERFACEWhetherForDoc.IS_DESTROYEDAlreadyBeenReleasedIS_OPENaAlreadyOpenOPEN_ACTIVEX_DOCUMENTaOPEN_DOCUMENTOpensExOPEN_DOCUMENT_FROM_TABLEOpensPAGE_SETUPStartsSetupDialogPASTE_CLIPBOARD(Fixed)PASTE_SPECIAL(Link)PLAY_DOCUMENT_FROM_TABLEPRINT_DOCUMENTOpenRELEASE_DOCUMENTReleasesMemoryUsedbyReopensSAVE_ASSavesLocallySAVE_COPY_ASLocallySAVE_DOCUMENT_TO_TABLETableSAVE_DOCUMENT_TO_URLSavesaSELECT_ALLSelectsUPDATE_DOCUMENT_LINKSForcesVIEW_DOCUMENTSavedVIEW_DOCUMENT_FROM_TABLEDataSavedGET_PIVOT_INTERFACE_SPREADSHEET_INTERFACEReference_FORM_INTERFACEWhetherIsForDoc.TypeHAS_PIVOT_INTERFACEWhetherIsForDoc.TypeHAS_TEMPLATE_INTERFACETypeGET_TEMPLATE_INTERFACESET_BASE_URLSetsBaseDesigner

例本文件上传FTP服器上,FTP读文件内容到内表传到表,下载内表数据到(一)代实现*&**&ReportZCXT_EXCEL_TO_R3_TEXT*&*&**&*&*&*REPORT

zcxt_excel_to_r3_text.TYPE-POOLStruxs.DATA:lt_rawTYPEtruxs_t_text_data.TYPES:char15(15)TYPEc.DATA:BEGINOFlt_dataOCCURS0,数一致

"内表,列col1col2

TYPEchar15,TYPEchar15,ENDOFlt_data.data:ls_work

LIKELINElt_data.PARAMETERS:p_fileTYPErlgrap-filename.ATSELECTION-SCREENONVALUE-REQUESTFORp_file.onCLEARp_file.CALLFUNCTION'F4_FILENAME'件IMPORTING

"生成一个"添加事file_name=p_file.名START-OF-SELECTION.CALLFUNCTION'TEXT_CONVERT_XLS_TO_SAP'传到内EXPORTING*I_FIELD_SEPERATOR='X'*I_LINE_HEADER='X'i_tab_raw_datalt_rawi_filenamep_fileTABLESi_tab_converted_datalt_dataEXCEPTIONSconversion_failed=1

"返回文件OTHERS

=2.IFsy-subrc=0.MESSAGE'uploadexceltor3success!'TYPE'I'ENDIF.LOOPATlt_dataINTOls_work.内容WRITE:/ls_work-col1,ls_work-col2.ENDLOOP.CALLFUNCTION'SAP_CONVERT_TO_XLS_FORMAT'到EXCELEXPORTING*I_FIELD_SEPERATOR=*I_LINE_HEADER=i_filename='d:/download.xlsx'*I_APPL_KEEP=TABLESi_tab_sap_datalt_data*CHANGING*I_TAB_CONVERTED_DATA=

"打印内表"内表下载*EXCEPTIONS*CONVERSION_FAILED=*OTHERS=.IFsy-subrc=0.MESSAGE'downloadr3toexcelsuccess'TYPE'I'消息ENDIF.

"操作成功"返回成功地文件及内容TEST.x其内如下:序按选择文件路径:点击打开,得到文件路径按,继续执行5.1.4果上传按回车点击确定继执行内表印结果:EXCEL文档下载成功:lsx内如下:5.2EXCEL据到表5.2.1代*&**&ReportZCXT_EXCEL_TO_R3*&*&**&*&*&*report

zcxt_excel_to_r3.tables:alsmex_tabline.data:beginiexceloccursincludestructurealsmex_tabline.data:endiexcel.data:lv_worktypealsmex_tabline,lt_dataliketableoflv_work.data:tind(4)typedata:zwfeld(19).field-symbols:<fs1>.parameters:filenm

likerlgrap-filenamememoryidm01default'd:/TEST.xlsx',noheaderascheckbox.callfunction'ALSM_EXCEL_TO_INTERNAL_TABLE'exportingfilename=filenmi_begin_col=1i_begin_row=1i_end_col=9i_end_row=10tablesintern=lt_dataexceptionsinconsistent_parameters=1upload_ole=2othersifsy-subrc

=3.write:/'EXCELUPLOADSUCCESS',filenm,sy-subrc.*ELSE.*SORTiexcelBYrowcol.*LOOPATiexcel.*IFnoheader='X'*ANDiexcel-row=*CONTINUE.*ENDIF.*tind=iexcel-col.*CONCATENATE'DATA_TAB-VALUE_'tindINTOzwfeld.*ASSIGN(zwfeld)TO<fs1>.*<fs1>=iexcel-value.*ATENDOFrow.*APPENDdata_tab.*WRITE:/'data_tabdata_tab-value_0001,data_tab-value_0002,*data_tab-value_0003,data_tab-value_0004.*CLEARdata_tab.*ENDAT.*ENDLOOP.endif.write:/'ROW,'COL,'VALUE'.looplt_dataintolv_work.write:/,lv_work-rowunder'ROW'lv_work-colunder'COL',lv_work-valueunder'VALUE'.endloop.5.2.2本地EXCEL内容内容下所示5.2.3执路写好后,F8续行执结果5.3DOI作EXCEL5.3.1传EXCEL模板输事务码T-code:,进入下界面:按如下写:Class:HRFPM_EXCEL_STANDARDClasspe:择(Objects)Object:填识好序至处序:ZCXT_EXCEL_TO_R3_DOI填写完后,点击左上的,进入EXCEL模上传左角示是已经上的板下面们加的模板:点击左角的

Standardpes,下图所示:双击EXCEL板,选择需要的EXCEL模板,这里我们以上传一个空模板为例。文件是一个空EXCEL文选EXCEL模后,击

打按钮,:最好与前面的KEY保致,处选择ZCXT_EXCEL_TO_R3_DOIage:择填写成后点击传添加成功,如图所示钩新上传模如下图示:至此EXCEL模板完。现该程序实现的单功能下:从基物料据表中择一个范内的物料编号,将其内容输到EXCEL表的中,从第二行、第列开始出然后通屏把EXCEL表显示出来,并将三个进行重名*&*REPORTZCXT_EXCEL_TO_R3_DOISTANDARDPAGEHEADING.**************************************************************************

数据库表database************************************************************************TABLES:mara.

"物料数据**************************************************************************

结构类型thestructure'stype*************************************************************************

内表结构TYPES:BEGINtyp_result,matnrTYPEmatnr,werksTYPEwerks_d,lgortTYPElgort_d,chargTYPEcharg_d,

"物料编号"工厂"库存地点"批次box

TYPEc,ENDOFtyp_result.**************************************************************************

与内表variantsandInternaltables**************************************************************************DATA:gw_resultTYPEtyp_result,gt_resultTYPETABLEOFtyp_resultWITHHEADERLINE.

"作"果内表*@**调用相关象使的变量TYPE-POOLS:vrm,sbdst,soi.*

定,TYPES:BEGINtyp_excel,rowcol

TYPEkcd_ex_row_n,TYPEkcd_ex_col_n,valueTYPEchar50,ENDOFtyp_excel.DATA:gt_tabcontentTYPETABLEOFtyp_excel.DATA:wa_tabcontentTYPEtyp_excel.TYPES:typ_urlLIKEbapiuri-uri.TYPES:BEGINtyp_docu_descr,document_name(40),document_id(64),ENDOFtyp_docu_descr.TYPES:BEGINtyp_area_excel,areano(2)TYPEn,tabcontentLIKEgt_tabcontent,ENDOFtyp_area_excel.*SAPDesktopOfficeIntegrationInterfacesDATA:cl_containercl_splittercl_controlcl_docu_proxy

TYPEREFTOcl_gui_container,TYPEREFTOcl_gui_splitter_container,TYPEREFTOi_oi_container_control,TYPEREFTOi_oi_document_proxy,cl_spreadsheetTYPEREFTOi_oi_spreadsheet,cl_errorcl_errors

TYPEREFTOi_oi_error,TYPEREFTOi_oi_errorOCCURSWITHHEADERLINE.*spreadsheetinterfacestructuresforExceldatainputDATA:wa_cellitemwa_rangeitemgt_ranges

TYPEsoi_generic_item,TYPEsoi_range_item,TYPEsoi_range_list,gt_excel_inputTYPEsoi_generic_table,wa_excel_inputTYPEsoi_generic_item,g_initializedg_retcode

TYPEc,TYPEsoi_ret_string,gt_excel_formatTYPEsoi_format_table,wa_formatDATA:gt_itabgt_imt_tabwa_imt_tabg_macro

LIKELINEgt_excel_format.TYPETABLEOFalsmex_tablineWITHHEADERLINE,TYPETABLEOFtyp_area_excel,LIKELINEgt_imt_tab,TYPEtext100,g_sheet(10)TYPEc,g_cell_fit

TYPEc.DATA:cl_bds_instancegt_doc_signaturewa_doc_signature

TYPEREFTOcl_bds_document_set,TYPEsbdst_signature,LIKELINEOFgt_doc_signature,gt_doc_componentsTYPEsbdst_components,gt_doc_uriswa_doc_urisDATA:g_app

TYPEsbdst_uri,LIKELINEOFgt_doc_uris.TYPEvrm_id,gt_applistTYPEvrm_values,g_excel

TYPEtext80VALUE'Excel.Sheet',

单g_docu_typeTYPEtext80,g_url(256)

TYPEc,g_has_activexTYPEc,g_colTYPEi,g_rowTYPEi.

"数"数*三为面新建模文件的参数DATA:g_classnameg_classtype

TYPEsbdst_classnameVALUE'HRFPM_EXCEL_STANDARD',TYPEsbdst_classtypeVALUE'OT'g_object_keyTYPEsbdst_object_keyVALUE'ZCXT_EXCEL_TO_R3_DOI'.**************************************************************************

宏定义Definemacro

**************************************************************************DEFINEm_value.clear&1.&1-key=&2.&1-text=&3.append&1.END-OF-DEFINITION.*据对应E的单元添加到内表中DEFINEm_excel_cell.clearwa_tabcontent.g_col=g_col+wa_tabcontent-row=g_row.wa_tabcontent-col=g_col.wa_tabcontent-value=&1.shiftwa_tabcontent-valueleftdeletingleadingspace.appendwa_tabcontenttogt_tabcontent.END-OF-DEFINITION.**************************************************************************

选择屏幕theselection-screen**************************************************************************SELECTION-SCREENBEGINOFBLOCKxaveryWITHFRAMETITLEtext-001.SELECT-OPTIONS:s_matnrFORmara-matnrMEMORYIDmat.

"物料编号SELECTION-SCREENENDOFBLOCKxavery.**************************************************************************

程序事件theprogram'sevents************************************************************************INITIALIZATION.START-OF-SELECTION.PERFORMsub_query_mara.END-OF-SELECTION.PERFORMsub_process_excel.CALLSCREEN0100.*&**&Formsub_query_mara*&**

中数**FORMsub_query_mara*数据SELECTmatnrFROMmaraINTOCORRESPONDINGFIELDSOFTABLEgt_resultWHEREmatnrINs_matnr.ENDFORM.

"sub_query_mara**************************************************************************DialogModulesPBOandPAI************************************************************************MODULEstatus_0100OUTPUT.DATA:wa_tabTYPEtyp_area_excel.DATA:its_tabTYPETABLEOFtyp_excel.SETPF-STATUS'XAVERY_HSUEH'.SETTITLEBAR'TIT_100'WITH'活动界面示例.PERFORMsub_create_basic_object.LOOPATgt_imt_tabINTOwa_tab.REFRESHgt_itab.gt_itab[]=wa_tab-tabcontent[].PERFORMsub_set_cell.ENDLOOP.IFg_cell_fit='X'.CALLMETHODcl_spreadsheet->fit_widestEXPORTINGnamespaceno_flush='X'.ENDIF.*CALLMETHODcl_spreadsheet->select_sheet*EXPORTING*name='Sheet1'*IMPORTING*error=cl_errors.*performsub_set_cell.*加新*CALLMETHODcl_spreadsheet->add_sheet*EXPORTING*name='物料*NO_FLUSH='X'*IMPORTING*error=cl_errors.*改SHEET字CALLMETHODcl_spreadsheet->set_sheet_nameEXPORTING='2月份物料清'='Sheet1'IMPORTINGerror=cl_errors.CALLMETHODcl_spreadsheet->set_sheet_nameEXPORTING='3月份物料清'='Sheet2'IMPORTINGerror=cl_errors.CALLMETHODcl_spreadsheet->set_sheet_nameEXPORTING='4月份物料清'='Sheet3'IMPORTINGerror=cl_errors.*行IFNOTg_macroISINITIAL.*CALLMETHODDOCUMENT->EXECUTE_MACRO*EXPORTING*g_macro=g_macro**SCRIPT_NAME='Open_text'**NO_FLUSH=''*IMPORTING*cl_error=cl_errorS.**CALLMETHODC_OI_ERRORS=>SHOW_MESSAGE**EXPORTING**TYPE='E'.*APPENDcl_errorS.ENDIF.ENDMODULE.

"status_0100OUTPUT*&**&DialogModulesPAI*&*MODULEuser_command_0100INPUT.LEAVETOSCREEN0.ENDMODULE.

"USER_COMMAND_0100INPUT*&**&FormSUB_CREATE_BASIC_OBJECT*&**

关的对象**FORMsub_create_basic_object.CHECKg_initializedISINITIAL.CALLFUNCTION'GUI_HAS_ACTIVEX'IMPORTINGreturn=g_has_activex.IFg_has_activexISINITIAL.MESSAGEe007(demoofficeintegratio).ENDIF.*firstgettheSAPDOIi_oi_container_controlinterfaceCALLMETHODc_oi_container_control_creator=>get_container_controlIMPORTINGcontrol=cl_controlerror=cl_error.*checknoerrorsoccuredCALLMETHODcl_error->raise_messageEXPORTINGtype='E'.*CONTIANERCREATEOBJECTcl_splitterEXPORTINGparent=cl_gui_container=>screen0rows

=1columns=1.CALLMETHODcl_splitter->set_borderEXPORTINGborder=cl_gui_cfw=>false.cl_containercl_splitter->get_container(row=1column=1).*initializetheSAPDOIContainer,tellittoruninthecontainer*specifiedaboveandtellittorunExcelin-placeCALLMETHODcl_control->init_controlEXPORTINGr3_application_name='RBasis'inplace_enabled='X'inplace_scroll_documents='X'parent=cl_containerregister_on_close_event='X'register_on_custom_event='X'no_flush='X'IMPORTINGerrorcl_errors.*saveerrorobjectincollectionAPPENDcl_errors.CALLMETHODcl_gui_cfw=>dispatch.wa_doc_signature-prop_name='DESCRIPTION'.

"#ECNOTEXTg_app='excel'IFg_app='excel'.g_docu_typeg_excel.wa_doc_signature-prop_value='PP_REPORT'.

"ELSE.ENDIF.APPENDwa_doc_signatureTOgt_doc_signature.CREATEOBJECTcl_bds_instance.CALLMETHODcl_bds_instance->get_infoEXPORTINGclassnameg_classnameclasstypeg_classtypeobject_keyg_object_keyCHANGINGcomponents=gt_doc_componentssignature=gt_doc_signatureEXCEPTIONSnothing_found=1error_kpro=2internal_error=3parameter_error=4not_authorized=5not_allowed=6.CALLMETHODcl_bds_instance->get_with_urlEXPORTINGclassname=g_classnameclasstype=g_classtypeobject_key=g_object_keyCHANGINGuris=gt_doc_urissignature=gt_doc_signature.FREEcl_bds_instance.*asktheSAPDOIcontainerforai_oi_document_proxyforExcelCALLMETHODcl_control->get_document_proxyEXPORTINGdocument_type='Excel.Sheet'no_flush='X'*REGISTER_CONTAINER='X'IMPORTINGdocument_proxy=cl_docu_proxyerror=cl_errors.APPENDcl_errors.*openadocumentsavedinbusinessdocumentservice.*READTABLEdoc_urisINTOwa_doc_urisINDEX1.LOOPATgt_doc_urisINTOwa_doc_uris."WHEREuriCP'*ZSDR17.xls*'.g_url=wa_doc_uris-uri.ENDLOOP.CALLMETHODcl_docu_proxy->open_documentEXPORTINGopen_inplace='X'*NO_FLUSH='X'document_urlg_urlIMPORTINGerrorcl_errors.*STARTUP_MACRO=g_macro.DATA:hasTYPECALLMETHODcl_docu_proxy->has_spreadsheet_interfaceEXPORTINGno_flush='X'IMPORTINGis_available=haserrorcl_errors.APPENDcl_errors.CALLMETHODcl_docu_proxy->get_spreadsheet_interfaceEXPORTINGno_flush='X'IMPORTINGsheet_interface=cl_spreadsheeterrorcl_errors.APPENDcl_errors.*CALLMETHODcl_spreadsheet->add_sheet*EXPORTING*name='new'*IMPORTING*error=cl_errors.*Activatesheet1g_sheet='Sheet1'"'物'.DATA:g_def_active_sheetname(50)VALUE'REPORT'.CALLMETHODcl_spreadsheet->select_sheetEXPORTINGname=g_sheetIMPORTINGerror=cl_errors.APPENDcl_errors.*LOOPATcl_errorS.*CALLMETHODcl_errorS->RAISE_MESSAGE*EXPORTING*TYPE='E'.*ENDLOOP.FREEcl_errors.g_initialized='X'ENDFORM.

"FRM_CREATE_BASIC_OBJECT*&**&FormSUB_SET_CELL*&**

数据设置表属**FORMsub_set_cellDATA:i_topTYPEi_leftTYPEi_rowsTYPEi,i_colsTYPEi,t_rowTYPEi,t_colTYPEi,s_rowTYPEi,s_colTYPEi.SORTgt_itabBYrowcol.READTABLEgt_itabINDEX1.IFsy-subrc=0.MOVEgt_itab-rowTO

i_top.MOVEgt_itab-col

TO

i_left.ENDIF.SORTgt_itabBYrowDESCENDINGcolDESCENDING.READTABLEgt_itabINDEX1.IFsy-subrc=0.i_rows=gt_itab-row-i_top+1.i_cols=gt_itab-col-i_left+1.ENDIF.SORTgt_itabBYrowcol.CALLMETHODcl_spreadsheet->insert_range_dimEXPORTINGname='cell'no_flush='X'top=i_topleftrows

=i_left=i_rowscolumnsi_colsIMPORTINGerror=cl_errors.APP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论