对象型,对象型是TSL中的一种Com对象数据类型,用这种类型可以操作各种Com对象,如Excel以及Word对象。
对象的操作方法:
访问属性:Value:=ComObjVariant.PropertyName;
对属性设置值:ComObjVariant.PropertyName:=Value;
访问带参数的属性:Value:=ComObjVariant.PropertyName(Param1,Param2...);
对带参数的属性设置值:ComObjVariant.PropertyName(Param1,Param2...):=Value;
访问方法:ComObjVariant.MethodName(Param1,Param2...);
如果对象的属性或者方法返回的仍然是对象,支持嵌套调用:
ComObjVariant.<PropName|MethodName>[(P1,P2...)]. <PropName|MethodName>[(P1,P2...)]...
NIL和COM的兼容性:由于Excel,Matlab,S-PLUS等多种统计软件对空类型的支持不尽相同,导致出现兼容性问题,
无法用统一的转换类型来解决,现在通过增加一个COM组件属性NilTrans来解决此问题,由用户自由选择转换的方法
假定天软的COM组件实例为ts
具体操作如下:
设置 ts.NilTrans 属性为下列值(默认为0):
0: 转换为Unassigned
1: 转换为Empty
2: 转换为NULL
3: 转换为NaN
4: 转换为整数0
5: 转换为浮点0
6: 转换为空字符串
7: 转换为'NIL'字符串
8: 转换为'NULL'字符串
9: 转换为'-'字符串
10: 转换为'/'字符串
其他值: 转换为Unassigned
BTW:
假如用户在其他的本地应用中与外部COM打交道,例如调用EXCEL,那么用户可以在TSL中使用
SetSysParam('NilTrans',N);//N为0-10的上述值
的方式来调整NIL对COM数据类型转换的行为。
参考:
GetOleObject,
CreateComObject,
ifObj,
SysGetPidOfCom