Files
playbook/skills/tsl-api-reference/references/codegen/third/com.md
T

12 KiB
Raw Blame History

Third / COM

以下为调用第三方运行环境或外部组件的函数。

本页提供 COM 运行环境初始化和按 GUID 创建 COM 对象的函数。

下文创建 COM 对象的示例使用 Windows 自带的 Scripting.Dictionary,不会启动 Excel 等桌面程序。

在 COM 模式下(例如通过 Excel COM 对象操作 XLS 文件),COM 的 ERROR 类型和 TSL 之间按以下规则转换:

  • COM 转 TSLERROR 转为特殊的 NAN,可用 cverrget 取回错误号。
  • TSL 转 COM:用 cverr 把错误号转为携带该错误号的特殊 NAN

coInitialize()

声明:function

Ole初始化

返回:any

示例

return coInitialize();
// 输出:0

coUnInitialize()

声明:function

Ole结束

返回:any

示例

coInitialize();
return coUnInitialize();
// 输出:0

createComObject(guid, obj)

声明:function

创建COM对象。如果创建成功则返回真,否则返回假

参数 类型 说明
guid string 对象的类GUID串。
obj comobj 保存创建的对象。

返回:bool

示例

obj := nil;
return createComObject('{EE09B103-97E0-11CF-978F-00A02463E06F}', obj);
// 输出:1

cverr(v)

声明:function

将 COM 错误号转为携带该错误号的特殊 NAN 数据

这些错误号由 Excel 定义。常见值包括:

  • 0x800A07D7#DIV/0!
  • 0x800A07FA#N/A
  • 0x800A07ED#NAME?
  • 0x800A07D0#NULL!
  • 0x800A07F4#NUM!
  • 0x800A07E7#REF!
  • 0x800A07DF#VALUE!

在 AnalyseNG.NET 的 excelSetCellexcelSetCells 中,系统会自动把普通 NANINF 转为相应的 Excel 错误;由 cverr 生成的特殊 NAN 会保留指定错误号。

参数 类型 说明
v int64

返回:real

示例

return cverr(0x800A07E7);
// 输出:NAN

cverrget(v)

声明:function

获取特殊 NAN 中的 COM 错误号。返回值的高位不确定,只应使用低 32 位

使用 .& 0xFFFFFFFFL 取低 32 位;不带 L0xFFFFFFFF 会被解释为 -1,无法清除高位。

参数 类型 说明
v double

返回:int64

示例

error_value := cverr(0x800A07E7);
return cverrget(error_value) .& 0xFFFFFFFFL;
// 输出:2148141031

getOleObject(class_name, method, obj)

声明:function

获取一个ComObj对象类型

参数 类型 说明
class_name string 字符串,对象的类名。
method integer 整数,产生方法的方法,1:获取一个存在的对象,2:新建一个对象,其他值:如果存在则获取一个存在对象,不存在则创建。
obj comobj 保存返回的对象。

返回:bool

示例

obj := nil;
return getOleObject('Scripting.Dictionary', 2, obj);
// 输出:1

TSExpert.CoExec

声明:class

天软客户端 COM 自动化接口

以下调用项是该接口的实例方法和属性,不是 TSL 全局函数

adminCommand(command, timeout, no_data_timeout, recv_string, broad_string, err_msg)

声明:function

提交管理员命令

可见性:public

参数 类型 说明
command widestring 提交的管理员命令串
timeout integer 命令超时的毫秒数
no_data_timeout integer 收到首个数据后无数据等待的毫秒数
recv_string olevariant 输出参数,返回命令结果串
broad_string olevariant 输出参数,返回广播消息串
err_msg olevariant 输出参数,发生错误时返回错误信息

返回:olevariant

返回 0 表示成功,其他值为错误码

getSysParam(param_name)

声明:function

返回系统参数的值

可见性:public

参数 类型 说明
param_name widestring 系统参数名

返回:olevariant

localCallFunc(func_name, params)

声明:function

利用本地解释器执行一个函数

可见性:public

参数 类型 说明
func_name widestring 需要调用的函数名
params olevariant 保存调用参数的 Variant 数组

返回:olevariant

localExecute(execute_str)

声明:function

利用本地解释器执行一段 TSL 脚本

可见性:public

参数 类型 说明
execute_str widestring 需要执行的脚本

返回:olevariant

remoteCallFunc(func_name, params)

声明:function

利用平台执行一个函数

可见性:public

参数 类型 说明
func_name widestring 需要调用的函数名
params olevariant 保存调用参数的 Variant 数组

返回:olevariant

remoteExecute(execute_str)

声明:function

利用平台执行一段 TSL 脚本

可见性:public

参数 类型 说明
execute_str widestring 需要执行的脚本

返回:olevariant

resetSysParam()

声明:function

清除重置系统参数

可见性:public

时间重置为当前时间,证券重置为上证指数,周期重置为日线,复权类型重置为不复权,复权基准日重置为 0,保留小数位数重置为 4,股票列表和时间列表重置为空

setSysParam(param_name, param_value)

声明:function

设置系统参数,对本地执行和平台执行均有效

可见性:public

参数 类型 说明
param_name widestring 系统参数名
param_value olevariant 要设置的参数值

simplyAdminCommand(command, timeout, no_data_timeout)

声明:function

提交管理员命令并返回命令结果串

可见性:public

参数 类型 说明
command widestring 提交的管理员命令串
timeout integer 命令超时的毫秒数
no_data_timeout integer 收到首个数据后无数据等待的毫秒数

返回:olevariant

bk

声明:property

获取或设置默认板块系统参数

可见性:public

类型:widestring

访问:read / write

bks

声明:property

板块组参数,批量调用时使用;取消批量板块时设置 bk

可见性:public

类型:olevariant

访问:read / write

computeBitsOption

声明:property

计算位数选项,0 表示自动选择,1 表示 32 位服务器,2 表示 64 位服务器

可见性:public

类型:byte

访问:read / write

computeService

声明:property

计算服务群组,空字符串表示默认服务,auto 表示自动选择,其他值表示指定服务群组

可见性:public

类型:string

访问:read / write

cycle

声明:property

获取或设置当前周期系统参数

可见性:public

类型:widestring

访问:read / write

i64Trans

声明:property

TSL Int64 到 COM 的转换规则:0 转为 64 位整数,1 转为 32 位整数,2 转为双精度浮点数

可见性:public

类型:integer

访问:read / write

keepRawData

声明:property

二维数据转换规则:0 将单行和单列转为一维数组,1 保留原始结构,2 仅转换单列,3 仅转换单行

可见性:public

类型:integer

访问:read / write

logined

声明:property

指示是否已经登录成功

可见性:public

类型:olevariant

访问:read

nDay

声明:property

获取或设置NDAY 默认返回的点数系统参数

可见性:public

类型:integer

访问:read / write

nilTrans

声明:property

获取或设置TSL NIL 到 COM 的转换规则

可见性:public

类型:integer

访问:read / write

取值规则:

  • 0Unassigned
  • 1Empty
  • 2NULL
  • 3NAN
  • 4 — 整数 0
  • 5 — 浮点数 0
  • 6 — 空字符串
  • 7 — 字符串 NIL
  • 8 — 字符串 NULL
  • 9 — 字符串 -
  • 10 — 字符串 /

其他值转换为 Unassigned

precision

声明:property

返回结果保留的小数位数

可见性:public

类型:integer

访问:read / write

rate

声明:property

获取或设置当前复权类型系统参数

可见性:public

类型:integer

访问:read / write

rateDay

声明:property

获取或设置复权基准日系统参数

可见性:public

类型:tdatetime

访问:read / write

resultFileName

声明:property

结果文件名,非空时将结果写入文件;扩展名为 .csv.xml 时使用对应格式,其他扩展名使用 Excel 格式

可见性:public

类型:widestring

访问:read / write

standardArray

声明:property

标准数组返回类型:0 表示任意类型,1 表示浮点数组,2 表示字符串数组,3 表示整数数组

可见性:public

类型:integer

访问:read / write

stock

声明:property

获取或设置当前证券代码系统参数

可见性:public

类型:widestring

访问:read / write

stocks

声明:property

股票组参数,批量调用时使用;取消批量证券时设置 stock

可见性:public

类型:olevariant

访问:read / write

textResult

声明:property

文本结果模式,设置为 1 时将任意返回值转换为 TSL 可解析的数据结构文本

可见性:public

类型:integer

访问:read / write

time

声明:property

获取或设置当前环境时间系统参数

可见性:public

类型:tdatetime

访问:read / write

times

声明:property

时间组参数,批量调用时使用;取消批量时间时设置 time

可见性:public

类型:olevariant

访问:read / write