# 金融 / 基本面 / 基本

## `basicInfoEx3()`

声明：function

返回三大报表的基本面信息

<!-- tags: 金融 基本面 基本 返回 获取 -->

返回：array

### 示例

范例01：返回基本面信息

```tsl
return BasicInfoEx3();
// 输出：基本面信息
```

## `basicInfoExt2()`

声明：function

获取基本面信息，比BasicInfoEx3返回的信息基本更全面

<!-- tags: 金融 基本面 基本 获取 查询 -->

返回：array

### 示例

范例01：调用 BasicInfoExt2

```tsl
Return BasicInfoExt2();
```

## `getLastReportFinance(id, timeable)`

声明：function

获取报告最后的财务值

<!-- tags: 金融 基本面 基本 获取 查询 -->

| 参数       | 类型    | 说明                         |
| ---------- | ------- | ---------------------------- |
| `id`       | integer | 整数，基本面ID；             |
| `timeable` | bool    | 布尔值，表示是否和时间相关； |

返回：real

### 示例

范例01：调用函数

```tsl
o_v := BackUpSystemParameters2();
// 取浦发银行最后报告的资产总计
setSysParam(pn_stock(), 'SH600000');
v := getLastReportFinance(44059, 0);
return v;
// 输出：3468442000000
```

## `getReportFinanceByTime(id, timeable, next, day)`

声明：function

查找比当前日期大的报告期数据；与当前股票相关

<!-- tags: 金融 基本面 基本 查找 搜索 lookup -->

| 参数       | 类型     | 说明                         |
| ---------- | -------- | ---------------------------- |
| `id`       | int      | 整数，基本面ID；             |
| `timeable` | bool     | 布尔值，表示是否和时间相关； |
| `next`     | bool     | 布尔值，表示是否向后查找；   |
| `day`      | datetime | 日期；                       |

返回：float

### 示例

范例01：调用函数

```tsl
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SH600000');
endt := inttodate(20130909);
v := GetReportFinanceByTime(44059, 0, 0, endt);
return v;
// 输出：3468442000000
```

## `getReportFinanceByTime2(id, time)`

声明：function

返回财务报告，查找比当前日期小的报告期的财务数据

<!-- tags: 金融 基本面 基本 查找 搜索 lookup 返回 获取 -->

| 参数   | 类型    | 说明                         |
| ------ | ------- | ---------------------------- |
| `id`   | integer | 整数，基本面ID;              |
| `time` | boolean | 布尔值，表示是否和时间相关； |

返回：real

### 示例

范例01：调用函数

```tsl
o_v := BackUpSystemParameters2();
// 取浦发银行比当前日期小的报告期的资产总计数据
setSysParam(pn_stock(), 'SH600000');
v := getReportFinanceByTime2(44059, 0);
return v;
// 输出：3468442000000
```

## `idToDate(id)`

声明：function

报告期ID->日期，将报告期转换为具体的日期的整数形式，月份是00的话将表示某年的的第几周转化为具体日期的整数值，否则直接返回ID

<!-- tags: 金融 基本面 基本 转换 编码 ID -->

| 参数 | 类型    | 说明   |
| ---- | ------- | ------ |
| `id` | integer | 报告期 |

返回：integer

### 示例

范例01：返回2012年第10周对应的日期的整数值

```tsl
return IDToDate(20120010);
// 输出：20120309
```

范例02：返回2011年年报对应的日期的整数值

```tsl
return IDToDate(20111231);
// 输出：20111231
```

## `idToStr(report_id)`

声明：function

将报告期以中文形式输出，如：20120331则输出2012年第一季报，如果月份为00并且日小于54(一年的周数)，则输出第几周，如：20120012，则输出2012年第12周报

<!-- tags: 金融 基本面 基本 -->

| 参数        | 类型    | 说明     |
| ----------- | ------- | -------- |
| `report_id` | integer | 报告日期 |

返回：string

### 示例

范例01：返回”2011年年报”

```tsl
return IDToStr(20111231);
// 输出："2011年年报"
```

范例02：结果：”2012年第12周报”

```tsl
return idtostr(20120012);
// 输出："2012年第12周报"
```

## `ifArrayId(id)`

声明：function

判断是否为表格类型

<!-- tags: 金融 基本面 基本 判断 检查 -->

| 参数 | 类型    | 说明     |
| ---- | ------- | -------- |
| `id` | integer | 基本面ID |

返回：boolean

### 示例

范例01：调用函数

```tsl
return ifArrayId(44);
// 输出：1，表示44是表格类型
```

## `ifBaseId(id)`

声明：function

判断要取得的数据是否与报告期无关

<!-- tags: 金融 基本面 基本 判断 检查 -->

| 参数 | 类型    | 说明                                               |
| ---- | ------- | -------------------------------------------------- |
| `id` | integer | 基本面表格中某一字段的ID，如44002，是表44的002字段 |

返回：boolean

### 示例

范例01：返回1，表示与报告期无关

```tsl
return IfBaseID(65000);
// 输出：1
```

范例02：返回0，表示与报告期相关

```tsl
return IfBaseID(44002);
// 输出：0
```

## `ifReportId(id)`

声明：function

判断要取得的数据是否与报告期相关

<!-- tags: 金融 基本面 基本 判断 检查 -->

| 参数 | 类型    | 说明                                                 |
| ---- | ------- | ---------------------------------------------------- |
| `id` | integer | 基本面表格中某一字段对应的ID，如44002，表44的002字段 |

返回：boolean

### 示例

范例01：返回1，表示与报告期相关

```tsl
return IfReportID(44002);
// 输出：1
```

范例02：返回0，表示与报告期无关

```tsl
return IfReportID(65000);
// 输出：0
```

## `infoArrayEx(info_id, rdate)`

声明：function

获取证券在报告期RDate的InfoId基本面数据，与系统当前股票有关

<!-- tags: 金融 基本面 基本 获取 查询 -->

| 参数      | 类型    | 说明     |
| --------- | ------- | -------- |
| `info_id` | integer | 基本面ID |
| `rdate`   | integer | 报告期   |

返回：array

### 示例

范例01：返回万科年报的合并资产负债表

```tsl
SetSysParam(pn_stock(), "SZ000002");
return InfoArrayEx(44, 20111231);
// 输出：万科年报的合并资产负债表
```

## `infoIdExt(id, r_date)`

声明：function

返回截止日不大于RDate的最近的id值，与系统参数(证券)相关，对于财务数据还与系统参数(日期)相关

<!-- tags: 金融 基本面 基本 返回 获取 -->

| 参数     | 类型    | 说明                         |
| -------- | ------- | ---------------------------- |
| `id`     | integer | 整数。财务指标和其他信息的ID |
| `r_date` | integer | 整数。截止日，报告期ID       |

返回：real

### 示例

范例01：调用函数

```tsl
setSysParam(PN_Stock(), 'OF000001');
rendt := dateToInt(20200411T); // 星期六
return infoIdExt(328003, rendt);
// 返回的星期五净值InfoIdExt(328003,20200410):1.11
```

## `stockReport(stock_id, info_id, report_date)`

声明：function

返回证券指定报告期的基本面指标值，结果类型由 `info_id` 对应的数据类型决定

<!-- tags: 金融 基本面 报告期 财务指标 StockReport -->

| 参数          | 类型    | 说明                    |
| ------------- | ------- | ----------------------- |
| `stock_id`    | string  | 证券代码                |
| `info_id`     | integer | 基本面指标 ID           |
| `report_date` | integer | 报告期，格式为 YYYYMMDD |

返回：any

### 示例

范例01：查询浦发银行 2009 年报的货币资金

```tsl
return stockReport("SH600000", 44002, 20091231);
// 输出：1157096238.65
```

范例02：查询浦发银行 2009 年报采用的会计准则

```tsl
return stockReport("SH600000", 44146, 20091231);
// 输出：新
```
