跳转至

月度值和累计值

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