新建日记账
在生成日记账的 TGKML 脚本中(在日记账多维数据集 RETT 和 RETT_C 上运行),系统检查正在处理的场景/期间上是否存在所有必需的日记账抬头。
可以基于具有相同日记账编号字段的其他现有抬头创建新的日记账抬头以包含生成的日记账。
有两个函数允许这样做:NewRett() 和 OpenAdj()。
这两个函数只能在赋值的输出表达式中使用。
NewRett¶
其语法为:
NewRett(
其中
假设有以下赋值:
[RETT].[OUT](NewRett(Time.Scenario.Prev.Last)) := [IN1]+[IN2];
系统检查作为输入表达式结果返回的所有日记账在正在处理的场景/期间上是否具有对应的日记账抬头。如果抬头不存在,系统将创建新的抬头,具有以下字段:
- 场景和期间 - 与正在处理的相同。
- 日记账编号 - 与输入表达式产生的相同。
- 所有其他字段 - 与抬头相同,具体如下:
- 场景和期间通过将
- 日记账编号由赋值的输入表达式产生
如果通过时间跳跃获得的场景/期间上不存在具有相同编号的日记账抬头,数据将不一致。
如果赋值中使用的多维数据集是 RETT_C,新抬头将具有以下字段:
- 场景 - 与正在处理的合并场景的原始场景相同。
- 期间 - 与正在处理的相同。
- 日记账编号 - 与输入表达式产生的相同。
- 所有其他字段 - 与抬头相同,具体如下:
- 场景和期间通过将
- 日记账编号由赋值的输入表达式产生。
OpenAdj¶
在这种情况下不执行时间跳跃。系统将检查所有输入记录并检索所有输入场景/期间组合的日记账抬头。
假设有以下赋值:
[RETT].[OUT](OpenAdj) := [IN1](Time.Scenario.Prev.Last)+[IN2];
系统检查作为输入表达式结果返回的所有日记账在正在处理的场景/期间上是否具有对应的日记账抬头。如果抬头不存在,系统将创建新的抬头,具有以下字段:
- 场景和期间 - 与正在处理的相同。
- 日记账编号 - 与输入表达式产生的相同。
- 所有其他字段 - 系统在输入记录的场景/期间(在此例中为当前场景/所有期间和上一场景/最后期间)上搜索具有上述日记账编号的所有抬头,并按如下方式操作:
- 如果日记账编号恰好存在于一个场景/期间上,系统将使用对应日记账抬头的字段;
- 如果日记账编号存在于多个场景/期间上,系统检查对应的日记账抬头是否相同。如果所有字段匹配,它们将用于正在创建的新抬头,否则系统发出错误信号。
- 如果没有匹配,系统发出错误信号。