Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/platform.md
T
csh 9010829c6d feat(tsl-api-reference): expand and reorganize api catalog
Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references.

Keep the existing generated index without rebuilding after signature normalization.
2026-08-10 18:26:24 +08:00

516 lines
12 KiB
Markdown

# Builtin - 平台与客户端
## `deleteBk(bk_name)`
声明:function
从用户板块中删除名为bk_name的板块
| 参数 | 类型 | 说明 |
| --------- | ------ | ------------------ |
| `bk_name` | string | 字符串,板块名称 |
返回:boolean
### 示例
```tsl
echo deleteBk("MySector"), "\n";
```
## `deleteTable(table_name)`
声明:function
删除指定的用户数据
| 参数 | 类型 | 说明 |
| ------------ | ------ | ------------------------------ |
| `table_name` | string | 要删除的用户数据全名称,字符串 |
返回:integer
### 示例
范例01:删除指定目录下的用户数据
```tsl
ret := deleteTable('mydata\\testA');
echo ret, "\n";
// 输出:-1
```
范例02:按名称规则删除用户数据
```tsl
data := listTable();
for i := 0 to length(data) - 1 do
begin
if pos('mydata\\test', data[i]) > 0 then
begin
deleteTable(data[i]);
end;
end;
echo listTable(), "\n";
```
## `functionName()`
声明:function
当前运行的函数的名称
返回:string
### 示例
范例01:读取当前脚本函数名称
```tsl
echo functionName(), "\n";
```
## `functionType()`
声明:function
当前运行的函数的类型,即返回当前函数是公用函数还是用户函数
返回:integer
### 示例
范例01:读取当前脚本函数类型
```tsl
echo functionType(), "\n";
```
## `functionVer(type, name)`
声明:function
返回函数在服务器中保存的版本号,可用于判断函数是否被修改过,也可与 `saveTable``loadTable` 配合使用
| 参数 | 类型 | 说明 |
| ------- | ------- | ---------- |
| `type` | integer | 函数类型 |
| `name` | string | 函数名称 |
返回:integer
### 示例
```tsl
version := functionVer(functionType(), functionName());
echo version, "\n";
```
## `hexToString(str)`
声明:function
stm用户数据名称转码(十六进制)
| 参数 | 类型 | 说明 |
| ----- | ------ | -------------------------- |
| `str` | string | 字符串类型,十六进制字符串 |
返回:string
### 示例
```tsl
// 将用户数据名转化为可读串
str := 'hex_74657374646174613031.stm';
echo hexToString(str), "\n";
// 输出:testdata01
```
## `isbackground()`
声明:function
获得当前运行的模型是否以委托执行的后台模式运行
返回:boolean
### 示例
```tsl
echo isBackGround(), "\n";
```
## `listTable()`
声明:function
返回用户数据的名称列表(一维数组)
返回:array
### 示例
```tsl
echo listTable(), "\n";
```
## `loadTable(name[, table_type])`
声明:function
提取用户数据,装入用户表,从name指定的位置将数据导出,table_type参数可省略,默认为0,0或省略时表示装入当前用户表,1表示装入系统表,即可导入系统账号system的用户数据
| 参数 | 类型 | 说明 |
| ------------ | ------ | ------------------------------------ |
| `name` | string | 字符串,数据存储位置的名称 |
| `table_type` | bool | 可选,布尔类型,数据类型,默认为 0 |
返回:any
### 示例
```tsl
// 提取名为 testA 的当前用户数据
echo loadTable('testA'), "\n";
```
## `loadTableEx(table_name)`
声明:function
加载用户数据table_name,如若table_name非空,则返回table_name数据,否则返回空数组
| 参数 | 类型 | 说明 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串,数据文件名称 |
返回:array
### 示例
```tsl
echo loadTableEx('repitle'), "\n";
```
## `saveBk(bk_name, bk_dir, sample)`
声明:function
保存用户板块,将品种数组保存到指定板块目录下,保存的板块名为bk_name,保存板块后,用户不能直接在客户端的用户板块中看到该板块,但是可以用getbk模型获取到,用户重新登录后可看到
| 参数 | 类型 | 说明 |
| --------- | ------ | ------------------------------------------ |
| `bk_name` | string | 字符串,板块名称 |
| `bk_dir` | string | 字符串,板块保存的目录 |
| `sample` | array | 一维数组,可以是股票、基金等品种代码列表 |
返回:boolean
### 示例
```tsl
echo saveBk("MySector", "我的一级分类\\我的二级分类", array("SZ000001", "SZ000002")), "\n";
```
## `saveTable(name, value[, stream_type])`
声明:function
保存用户数据到服务器,服务器为每一位用户保留一块存储区域,可以把自有数据保存进去,以备分析时使用
| 参数 | 类型 | 说明 |
| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `name` | string | 存储位置的名称, 字符串类型 |
| `value` | any | 各种类型的数据,如 integer、string、array |
| `stream_type` | boolean | 新流格式,可缺省,缺省时根据前端的版本(2020年6月前的版本为旧版本,之后的为新版本)决定是否存储为新流格式,0指定原始流格式,1强制为新流格式 |
返回:integer
### 示例
范例01:直接保存到根目录
```tsl
r := rand(10, 10);
echo saveTable('testA', r), "\n";
// 输出:-1
```
范例02:保存到指定目录
```tsl
r := rand(10, 10);
echo saveTable('mydata\\testA', r), "\n";
// 输出:-1
```
范例03:比较新旧流格式
```tsl
data := array(1, 2, 3);
r1 := saveTable("TestSTData01", data);
r2 := saveTable("TestSTData02", data, 0);
r3 := saveTable("TestSTData03", data, 1);
echo array(r1, r2, r3), "\n";
```
## `sendToClient(cmd_type, cmd_text, cmd_param, cmd_data[, time_out])`
声明:function
发送命令到客户端执行
| 参数 | 类型 | 说明 |
| ----------- | ------- | -------------------------- |
| `cmd_type` | string | 命令类型 |
| `cmd_text` | string | 命令串 |
| `cmd_param` | any | 命令参数 |
| `cmd_data` | any | 命令数据 |
| `time_out` | integer | 超时的秒数,默认是300s超时 |
### cmd_type 取值
- `Echo`:显示信息
- `Import`:导入数据
- `Export`:导出数据
- `Rdo`:远程调用
- `Rdo2`:远程调用并返回
- `Do`:远程执行命令串
- `Getdo`:远程执行命令串并返回
返回:any
### 示例
范例01:在客户端计算表达式并返回结果
```tsl
echo sendToClient("getdo", "return 100 + 1;", nil, nil), "\n";
// 输出:101
```
范例02:传递系统参数并设置超时秒数
```tsl
params := array("a": 10, "b": 30);
echo sendToClient("getdo", "return getSysParam('a') + getSysParam('b');", nil, params, 30), "\n";
// 输出:40
```
## `setUID(uid)`
声明:function
将当前用户设置为指定用户,调用方需要相应权限,设置成功返回真
| 参数 | 类型 | 说明 |
| ----- | ------ | -------- |
| `uid` | string | 用户名 |
返回:bool
### 示例
```tsl
echo setUid(userName()), "\n";
```
## `sudo(uid, exp)`
声明:function
以UID指定的用户执行EXP表达式,该EXP为隐式表达式,例如SUDO("system",DoSomeThing()),如用户需要用显式的表达式,采用SUDO(UID,Eval(Exp))即可,SUDO和User不一样,SUDO需要有权限,而且SUDO是完全以指定用户来执行,访问的数据资源等均以指定的UID来运行,与SetUID不一样的地方是SUDO执行完EXP后用户ID便恢复成原始的ID
| 参数 | 类型 | 说明 |
| ----- | ---------- | ---------------- |
| `uid` | string | 字符串,用户名 |
| `exp` | expression | 表达式 |
返回:any
### 示例
范例01:以当前用户计算表达式
```tsl
echo sudo(userName(), 1 + 1), "\n";
```
## `testTable(name[, table_type])`
声明:function
检查数据是否存在,测试是否存在指定name的数据,如果table_type为真则为测试系统数据表,即测试系统账号system是否存在name指定的数据,table_type缺省或为0
| 参数 | 类型 | 说明 |
| ------------ | ------- | -------------------------------------------------------------- |
| `name` | string | 字符串,数据存储位置的名称 |
| `table_type` | boolean | 可选,bool 类型,为假或者省略时装入当前用户表,否则装入系统表 |
返回:boolean
### 示例
```tsl
echo testTable("testA"), "\n";
```
## `transFileName(dir, if_tanscode)`
声明:function
获取本地用户数据列表(仅用于自动存储在本地的STM数据)
| 参数 | 类型 | 说明 |
| ------------- | ------- | ---------------------- |
| `dir` | string | 字符串类型,路径 |
| `if_tanscode` | integer | 整型,用户名称是否转码 |
返回:array
### 示例
```tsl
// 获取本地用户数据列表
dir := 'C:\\Users\\xxxx\\Tinysoft\\Analyse.NET\\D254A848\\xxx\\UserDB';
echo transFileName(dir, 0), "\n";
```
## `ts_moduleInfo([n])`
声明:function
返回进程以及 TSLInterp.dll 的时间和大小信息,`n` 省略或为 0 时返回当前进程以及 TSLInterp.dll 的信息,`n` 为 1 时,在具备相应权限的情况下返回所有模块的信息
| 参数 | 类型 | 说明 |
| ---- | ------- | --------------------------------------------------------- |
| `n` | integer | 可选,信息类型,省略或为 0 返回进程信息,1 返回模块信息 |
返回:array
### 示例
```tsl
echo length(tsModuleInfo()), "\n";
```
## `tsAppServer()`
声明:function
获得当前运行的模型所在的运算服务器的标识
返回:string
### 示例
```tsl
echo tsAppServer(), "\n";
```
## `tsAppServerName()`
声明:function
返回平台设置的名字,如果没有设置,默认是ip:进程路径
返回:string
### 示例
```tsl
echo tsAppServerName(), "\n";
```
## `tsCanGrid()`
声明:function
获得当前用户是否具备网格计算的权限
返回:boolean
### 示例
```tsl
echo tsCanGrid(), "\n";
```
## `user(name)`
声明:function
取得指定用户的函数对象,调用方必须拥有该用户的授权,返回对象后可通过成员函数名继续调用
| 参数 | 类型 | 说明 |
| ------ | ------ | -------- |
| `name` | string | 用户名 |
返回:any
### 示例
```tsl
echo length(user(userName()).FunctionName) > 0, "\n";
```
## `userConfig(section, ret_type)`
声明:function
返回用户的配置信息,section为配置名,ret_type用于指定返回的类型,0为字符串,1为数字,2为日期类型,注:此函数为特殊用途
| 参数 | 类型 | 说明 |
| ---------- | ------- | ---------------- |
| `section` | string | 字符串,配置名 |
| `ret_type` | integer | 整数,返回类型 |
返回:real|string|tdatetime
### 示例
范例01:读取平台用户配置
```tsl
// section 必须替换为平台中已配置的名称
echo userConfig("example", 0), "\n";
```
## `userDataUpLoad(filedir, if_tanscode)`
声明:function
上传用户数据,输入本地用户数据的路径及名称,通过该函数可上传至服务器
| 参数 | 类型 | 说明 |
| ------------- | ------- | ------------------------------ |
| `filedir` | string | 字符串类型,用户数据路径及名称 |
| `if_tanscode` | integer | 整型,用户名称是否转码 |
返回:string
### 示例
```tsl
// dir为用户本地用户数据的存贮目录
filedir := 'C:\\Users\\xxxx\\Tinysoft\\Analyse.NET\\D254A848\\xxx\\UserDB\\hex_74657374646174613031.stm';
echo userDataUpLoad(filedir, 1), "\n";
```
## `userName()`
声明:function
返回当前的用户
返回:string
### 示例
范例01:读取当前平台用户
```tsl
echo userName(), "\n";
```