# Dotnet - 客户端函数

## `assert(check, error_message)`

声明：function

检查条件，条件为假时中止执行并返回指定错误信息

<!-- tags: 客户端 错误处理 断言 assert error -->

| 参数            | 类型    | 说明                 |
| --------------- | ------- | -------------------- |
| `check`         | boolean | 要检查的条件         |
| `error_message` | string  | 条件为假时的错误信息 |

返回：error

### 示例

范例01：检查通过时继续执行

```tsl
return assert(1, "probe");
// 输出：0
```

## `checkDataCanBeExtract(data)`

声明：function

检查是否存在可展开的数据

<!-- tags: 客户端函数 判断 检查 -->

| 参数   | 类型  | 说明           |
| ------ | ----- | -------------- |
| `data` | array | 数据表类型数据 |

返回：integer

## `delPrecode()`

声明：function

将第一列的8位标准代码转为6位标准代码。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,tablearray

## `delPrecodeCallBack(s)`

声明：function

去除证券代码前面的"SH"、"SZ"、"OF"、"BK"标识

<!-- tags: 客户端函数 SH SZ OF BK -->

| 参数 | 类型   | 说明   |
| ---- | ------ | ------ |
| `s`  | string | 字符串 |

返回：string

### 示例

```tsl
return delPrecodeCallBack('SH600000');
// 输出：600000
```

## `extractData(data, check, code)`

声明：function

展开表格；系统使用，用于客户端展开表格。扩展填充模式为'扩展部分保留为空'。该函数的功能即结果页面工具栏中的按钮的功能

<!-- tags: 客户端函数 -->

| 参数    | 类型              | 说明                     |
| ------- | ----------------- | ------------------------ |
| `data`  | array,table_array | 数据表数据               |
| `check` | boolean           | 标识是否检查要展开的数据 |
| `code`  | boolean           | 返回                     |

返回：array,table_array

### 示例

```tsl
r := query("", "SH600000;SZ000002", true, "", "代码", defaultStockId(),
    "名称", currentStockName(),
    "股票.分红送股", infoArray(18));
return extractData(r, 1, 0);
// 输出：展开后的数据表（需相应客户端运行环境）
```

## `extractDataEx(data, check, code, fill_method)`

声明：function

展开表格，系统使用，用于客户端展开表格

<!-- tags: 客户端函数 -->

| 参数          | 类型    | 说明                           |
| ------------- | ------- | ------------------------------ |
| `data`        | array   | 数组，数据表数据               |
| `check`       | integer | 布尔，标识是否检查要展开的数据 |
| `code`        | integer | 布尔，是否返回                 |
| `fill_method` | integer | 整数，扩展填充模式             |

返回：integer

### 示例

```tsl
r := query("", "SH600000;SZ000002", true, "", "代码", defaultStockId(),
    "名称", currentStockName(),
    "名称2", currentStockName(),
    "名称3f", currentStockName(),
    "股票.分红送股", infoArray(18));
return extractDataEx(r, 1, 0, 1);
// 输出：展开后的数据表（需相应客户端运行环境）
```

## `extractDataEx2(data, check, code, fill_method, if_cartesian)`

声明：function

展开表格

<!-- tags: 客户端函数 -->

| 参数           | 类型    | 说明                               |
| -------------- | ------- | ---------------------------------- |
| `data`         | array   | 数组类型，数据                     |
| `check`        | bool    | 布尔类型，标识是否检查要展开的数据 |
| `code`         | bool    | 布尔类型，布尔类型，               |
| `fill_method`  | integer | 整数，扩展填充模式                 |
| `if_cartesian` | bool    | 布尔类型，是否做笛卡尔积展开       |

返回：array

### 示例

```tsl
// 数据展开
r := query("", "SH600000;SZ000002", true, "", "代码", defaultStockId(),
    "名称", currentStockName(),
    "名称2", currentStockName(),
    "名称3f", currentStockName(),
    "股票.分红送股", infoArray(18));
return extractDataEx2(r, 1, 0, 1, 1);
// 输出：展开后的数据表（需相应客户端运行环境）
```

## `extractDataLocalRun(fill_method)`

声明：function

展开表格；用于客户端展开表格，扩展会产生一些空的内容；如果需要把空内容补上，例如需要补上其股票代码、名称等信息，则可以选择扩充字段；扩充了的信息往往在对字段进行排序之后非常有用

<!-- tags: 客户端函数 排序 sort -->

| 参数          | 类型    | 说明         |
| ------------- | ------- | ------------ |
| `fill_method` | integer | 扩展填充模式 |

返回：array

## `extractDataLocalRun2(fill_method, if_cartesian)`

声明：function

展开表格(考虑笛卡尔)

<!-- tags: 客户端函数 -->

| 参数           | 类型    | 说明                         |
| -------------- | ------- | ---------------------------- |
| `fill_method`  | integer | 整数，扩展填充模式           |
| `if_cartesian` | bool    | 布尔类型，是否做笛卡尔积展开 |

返回：array

### 示例

```tsl
// 数据展开
r := query("", "SH600000;SZ000002", true, "", "代码", defaultStockId(),
    "名称", currentStockName(),
    "名称2", currentStockName(),
    "名称3f", currentStockName(),
    "股票.分红送股", infoArray(18));
setSysParam(pn_data(), r);
return extractDataLocalRun2(0, 1);
// 输出：展开后的数据表（需相应客户端运行环境）
```

## `getDefaultFuncNameByStock(stock_id)`

声明：function

默认函数名，对于不同类型的证券代码，返回的默认函数名称不一致

<!-- tags: 客户端函数 获取 查询 -->

| 参数       | 类型   | 说明     |
| ---------- | ------ | -------- |
| `stock_id` | string | 证券代码 |

返回：string

## `getTypeOfStock(stock_id)`

声明：function

获取证券品种

<!-- tags: 客户端函数 获取 查询 -->

| 参数       | 类型   | 说明     |
| ---------- | ------ | -------- |
| `stock_id` | string | 证券代码 |

返回：integer

### 示例

```tsl
return getTypeOfStock('OF000001');
// 输出：4
```

## `gu_extractResultData()`

声明：function

穿透展示数组，用于展示<量化分析>结果专用嵌套数组结构的分析结果，结构为「键名:数组值」的键值对格式，支持一维/二维数组嵌套 注意：该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array

## `gu_simpleDataTransform(mtype, nodatecol)`

声明：function

时序数据简单处理变形，譬如：累加、累乘、单期转多期。基于列名（含截止日、日期、date），跳过日期列 注意：该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数        | 类型        | 说明                          |
| ----------- | ----------- | ----------------------------- |
| `mtype`     | user_define | 用户自定义,处理方式           |
| `nodatecol` | boolean     | 真假,跳过疑似日期列(基于列名) |

mtype 取值

- `累加`：1
- `单期收益累乘(源单位%)`：11
- `单期收益累乘(源单位1)`：12
- `累计收益转单期(源单位%)`：21
- `累计收益转单期(源单位1)`：22
- `反向单期收益累乘(源单位%)`：31
- `反向单期收益累乘(源单位1)`：32

返回：array

## `incPrecode()`

声明：function

6位代码->8位代码；注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,tablearray

## `incPrecodeCallBack(s)`

声明：function

将"000002.SZ"的代码转化为"SZ000002"

<!-- tags: 客户端函数 SZ SZ000002 -->

| 参数 | 类型   | 说明   |
| ---- | ------ | ------ |
| `s`  | string | 字符串 |

返回：string

### 示例

```tsl
return incPrecodeCallBack('000002.SZ');
// 输出：SZ000002
```

## `isTwoDim(t)`

声明：function

判断是否为二维表。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 判断 检查 -->

| 参数 | 类型  | 说明           |
| ---- | ----- | -------------- |
| `t`  | array | 任意类型的数据 |

返回：bool

## `processField(field_name, call_back)`

声明：function

对相应的数据进行处理，注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数         | 类型   | 说明             |
| ------------ | ------ | ---------------- |
| `field_name` | string | 字符串，字段名称 |
| `call_back`  | string | 字符串，函数名称 |

返回：array,tablearray

## `processFirstField(call_back)`

声明：function

对相应数据进行处理。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数        | 类型   | 说明             |
| ----------- | ------ | ---------------- |
| `call_back` | string | 字符串，函数名称 |

返回：array,tablearray

## `raiseError(func_name, err_str)`

声明：function

显示调试出错信息

<!-- tags: 客户端函数 -->

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `func_name` | string | 字符串类型，出错的函数名称 |
| `err_str`   | string | 字符串类型，出错提示       |

返回：error

## `reportSeriesSplit(table_name)`

声明：function

报告期数据处理。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

| 参数         | 类型   | 说明                 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串，用户数据名称 |

返回：any

### 示例

```tsl
table_name := "report_series_split_example";
table_data := array(("close(20240101)": 1, "open(20240101)": 2));
saveTable(table_name, table_data, 1);
result := reportSeriesSplit(table_name);
deleteTable(table_name);
return result;
// 输出："20240101"
```

## `sendRunningData(data[, nwdow])`

声明：function

向运行结果窗口发送数据，省略 `nwdow` 时发送到当前窗口，指定 `nwdow` 时发送到名称对应的窗口，函数发送结果后，脚本仍可继续执行

<!-- tags: 客户端函数 发送 提交 -->

| 参数    | 类型   | 说明                       |
| ------- | ------ | -------------------------- |
| `data`  | any    | 要发送到运行结果窗口的数据 |
| `nwdow` | string | 可选。结果窗口名称         |

返回：any

### 示例

```tsl
echo sendRunningData(1), "\n";
```

## `simpleStat(data)`

声明：function

简单统计；对数据进行简单统计，得到最小值，最大值，和，平均值，样本标准差，总体标准差，样本偏差，整体偏差，总体偏差

<!-- tags: 客户端函数 -->

| 参数   | 类型  | 说明                     |
| ------ | ----- | ------------------------ |
| `data` | array | 表格或者一维数字数组数据 |

返回：array

### 示例

```tsl
data := array(1, 2, 3, 4, 5);
return simpleStat(data);
// 输出：统计结果数组
```

## `simpleStatLocal()`

声明：function

简单统计；对数据进行简单统计，得到最小值，最大值，和，平均值，样本标准差，总体标准差，样本偏差，整体偏差，总体偏差，平方和，NORM，偏度，峰度

<!-- tags: 客户端函数 NORM -->

返回：统计之后的数据值，数据表结构类型的数据

## `thisFuncOnlyForBond()`

声明：function

返回'本模型只适用于债券!'字符串

<!-- tags: 客户端函数 返回 获取 -->

返回：string

## `thisFuncOnlyForFund()`

声明：function

返回'本模型只适用于基金!'字符串

<!-- tags: 客户端函数 返回 获取 -->

返回：string

## `thisFuncOnlyForStock()`

声明：function

返回'本模型只适用于股票!'字符串

<!-- tags: 客户端函数 返回 获取 -->

返回：string

## `thisFuncUnderConstruction()`

声明：function

返回"本模型正在维护中.....请稍候再使用"出错信息

<!-- tags: 客户端函数 返回 获取 -->

返回：string

## `thisFunOnlyForIndex()`

声明：function

返回'本模型只适用于指数!'字符串

<!-- tags: 客户端函数 返回 获取 -->

返回：string

## `threeDimFormat2()`

声明：function

公司为主，指标为辅格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：any

## `threeDimFormat3()`

声明：function

指标为主，年份为辅格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,table_array

## `threeDimFormat4()`

声明：function

指标为主，公司为辅格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,table_array

## `threeDimFormat5()`

声明：function

年份为主，公司为辅格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：any

## `threeDimFormat6()`

声明：function

年份为主，指标为辅格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,table_array

## `timeSeriesSplit()`

声明：function

时间序列数据处理；将时间序列数据：时间、数据、（股票）处理成为（时间股票数据）的格式。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array

## `transDataStandardize(nil_v)`

声明：function

空(NIL)数据标准化。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 NIL -->

| 参数    | 类型    | 说明                      |
| ------- | ------- | ------------------------- |
| `nil_v` | integer | Nil类型的数据标准化后的值 |

返回：array

## `transForm(data)`

声明：function

数组转置。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数   | 类型  | 说明           |
| ------ | ----- | -------------- |
| `data` | array | 数据表类型数据 |

返回：integer

## `transPose(data)`

声明：function

数组转置。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数   | 类型  | 说明                                                  |
| ------ | ----- | ----------------------------------------------------- |
| `data` | array | 数据表结构数据，第一列数据必须为字符串并且列数要大于3 |

返回：array

## `transPoseForChart(data)`

声明：function

表格转置。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

| 参数   | 类型  | 说明       |
| ------ | ----- | ---------- |
| `data` | array | 数据表类型 |

返回：array

## `transPoseForChartSysParam()`

声明：function

表格转置。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array

## `transPoseForChartSysParamEx()`

声明：function

表格转置。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array

## `twoDimFormat2()`

声明：function

指标为主（二维表）。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑

<!-- tags: 客户端函数 -->

返回：array,tablearray
