月度值和累计值
THKML 脚本可以读取和存储月度值和累计值。让我们详细看看要使用的语法:
- Per - 月度数据;
- Pro - 累计数据;
- Per(N),其中 N 为整数 - 自定义期间长度。此语法允许从非当前场景读取数据。例如,如果我们在场景 N 的期间 06 使用语法 Per(24),系统将按如下方式计算期间数据:场景 N | 期间 06(累计)+ 场景 N-1 | 期间 12(累计)+ 场景 N-2 | 期间 12(累计)- 场景 N-2 | 期间 06(累计)。
示例:[LO].[X00000](Pro,Dest1.Filter([D11])) := [C00000](Per);
将期间长度信息插入到筛选器或定点读取之前被认为是最佳实践。
数据读取¶
默认情况下,系统按数据存储在数据库中的原样读取数据,即读取累计数据。如果用户需要读取月度数据,则必须使用 Per 语法,如下所示。
假设数据库中的数据如下:
| 实体 | 科目 | 场景 | 类别 | Dest1 | Dest2 | 期间 | 金额 |
|---|---|---|---|---|---|---|---|
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 01 | 50 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 02 | 80 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 03 | 110 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 04 | 125 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 05 | 160 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 06 | 215 |
并且我们读取期间数据
... := [C00000](Per);
读取的数据如下:
| 实体 | 科目 | 场景 | 类别 | Dest1 | Dest2 | 期间 | 金额 |
|---|---|---|---|---|---|---|---|
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 01 | 50 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 02 | 30 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 03 | 30 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 04 | 15 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 05 | 35 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 06 | 55 |
期间数据仅对损益或其他变动科目类型有意义。
数据存储¶
默认情况下,系统仅将给定期间的计算值存储在该期间上。如果用户需要存储累计数据,则必须使用 Pro 语法,如下所示。
假设数据库中的数据如下:
| 实体 | 科目 | 场景 | 类别 | Dest1 | Dest2 | 期间 | 金额 |
|---|---|---|---|---|---|---|---|
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 01 | 50 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 02 | 80 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 03 | 110 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 04 | 125 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 05 | 160 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 06 | 215 |
并且我们有以下脚本 [LO].[X00000](Pro) := [C00000](Per);
读取的数据如下:
| 实体 | 科目 | 场景 | 类别 | Dest1 | Dest2 | 期间 | 金额 |
|---|---|---|---|---|---|---|---|
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 01 | 50 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 02 | 30 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 03 | 30 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 04 | 15 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 05 | 35 |
| A00 | C00000 | 2013BDG | $AMOUNT | GEN | GEN | 06 | 55 |
存储在数据库中的数据如下:
| 实体 | 科目 | 场景 | 类别 | Dest1 | Dest2 | 期间 | 金额 |
|---|---|---|---|---|---|---|---|
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 01 | 50 |
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 02 | 50+30 |
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 03 | 50+30+30 |
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 04 | 50+30+30+15 |
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 05 | 50+30+30+15+35 |
| A00 | X00000 | 2013BDG | $AMOUNT | GEN | GEN | 06 | 50+30+30+15+35+55 |