Excel的操作目前一般两种方式:OLE,DOI;这里简单介绍一下OLE;
ABAP支持基于开放对象数据接口自动连接技术,提供了调用功能的桌面应用程序被整合到ABAP系统作为OLE2的自动服务器(如:excel, word)。 当一个ABAP程序调用OLE的时候,SAPGUI充当OLE的客户端,桌面应用程序为OLE(如Excel,word等)的服务器端;
所有的ABAP操作都将写入表TOLE中 维护视图:T_code: SOLE
;TOLE表中的key (APP: OLE中的应用)被用作CREATE语法中的对象类名;
如:
TYPE-POOLS:OLE2.
DATA: OBJ_EXCEL TYPE OLE2_OBJECT.
CREATE OBJECT OBJ_EXCEL ’EXCEL.APPLICATION’.
这里的OLE应用EXCEL.APPLICATION
同时TOLE表中也指明了一个OLE应用下是否存在类型信息(Typeinfo);
Typeinfo 描述一个特殊应用能处理的所有对象,包括所有它的所有方法,属性和参数;
下面解释一下TOLE表中的相关字段的用处:
APP(OLE应用):当要生成一个对象时,通过这个应用名结合CREATE OBJECT语法生成对象类;
VERSION(版本号):如果一个OLE应用存在很多版本,在当前服务器上数据库用不同的版本号注册区别;
CLSID(类型ID):OLE的类型号用字符格式在当前主机数据库上注册,这个ID号被发送到客户端;
CLSID LibType:一个OLE应用的整个类型库拥有它自己的CLSID.
AGGOBJECT(OLE对象名)
Typeinfo key:(类型信息关键字):一个OLE应用的关键信息。NO_TYPELIB表示不想使用这个应用下的类型信息;
INCLUDE(包含程序):包含程序含有通常的定义,不得不人工维护。
传递过程中的数据类型转换规则:ABAP-Type --à CHAR-à OLE type
注:目前单个变量的最大长度为255;
在应用服务器和客户端通信时通过RFC接口,SAPGUI包含特殊的OLE function; 语法CREATE OBJECT的功能过程:ABAP处理器从TOLE中找到OLE应用下的CLASS-ID,然后在客户端通过RFC调用FM: OLE_CREATE_OBJECT,将参数CLSID传入,返回一个OLE对象。 语法call method、get property、set property被捆绑在应用服务器上,以内表的形式通过OLE_FLUSH_CALL传递到SAPGUI; 语法Free OBJECT 调用OLE_RELEASE_OBJECT
Create object obj_name ‘app’.创建APP应用类的一个对象obj_name实例
Set property of obj_name ‘XXX’ = f .设置对象OBJ_NAME属性xxx为值f
Get property of obj_name ‘xxx’ = f .将obj_name的属性xxx的值获取赋给f
Call method of obj_name ‘xxx’ = f
Exporting #1 = f1 ....#n = fn. 调用Obj_name的方法xxx 传入参数f1、、、fn,由f来接收返回值;
Free object obj_name. 释放obj_name.
操作过程中主要是很多方法和属性不知道,怎么办呢?
1、可以通过Tole知道应用对象信息然后对应到OLELOAD中查找相关的属性;
2、在word excel中录制宏,然后编辑宏,查看生成德VB代码,找到对应的属性和方法;