示例中净销售收入的计算是经过两个步骤计算得到的。在系统的配置过程中,也分别用到了逻辑脚本的计算功能与维度层次结构的自动汇总功能。
6.1.2.1 使用逻辑脚本计算总金额
从单价到总金额的计算是在用户输入数据后自动实现的。这是因为我们将这一计算逻辑保存在系统提供的名为“DEFAULT.LGF”的逻辑脚本文件里,在每次向系统提交数据时,系统都是自动运行这一脚本文件里的逻辑脚本。
在“DEFAULT.LGF”文件里,与本示例相关的逻辑脚本摘录如下:
为了方便解释,将上述脚本编上行号,实际的脚本是不需要编号的。
第(1)行代码以“//”开头,是注释文本。
第(2)行代码选择维度ACCOUNTP中DRIVER属性值为“AOOOOOO”的所有成员的ID,并存入变量%ACCT%中。参见图6-4所示的ACCOUNTP维度成员属性。
第(3)行代码选择维度AUDITP中ID为“Ratelnput”的所有成员,加入逻辑处理的数据集。
第(4)(5)(10)行代码形成一个循环,系统将只处理变量%ACCT%中保存的ACCOUNTP维度成员。(www.daowen.com)
第(6)(7)(9)行代码形成另一个循环,系统将只处理AUDITP维度成员“Ratelnput”。
第(8)行代码将在系统中写入一条新的记录,新记录的值为当前正在处理的值乘以AOOOOOO科目、Input审计线索维度成员的值,新记录写入的审计线索维度成员为“Input”,其他维度成员不变。
第(11)行代码将计算结果写入数据库。
以上代码只是完成相应自动计算功能的一个示例,实际应用中还可以结合具体情况对代码进行优化。
6.1.2.2 通过科目层次结构自动汇总
示例中的科目自动计算是通过层次结构的自动汇总功能实现的。科目维度的成员属性如图6-4所示。
图6-4 示例中的科目维度成员属性
从“Hl”列可以看出,“TOT_44-净销售收入”是“A44_0000-销售收入”、“A44_0010-销售返利”及“A44_0020-销售折扣”3个科目的父节点,根据层次结构的自动汇总规则,“TOT 44-净销售收入”的值由这3个科目的值汇总得到。
值得注意的是,由于“A44_0000-销售收入”的会计科目类型属性值为“INC”,属于收入类科目,贷方余额,系统以负数存储这一科目的值。而“A44_0010-销售返利”及“A44_0020-销售折扣”的会计科目类型属性值为“EXP”,属于成本费用类科目,借方余额,系统以正数存储这一科目的值。所以当系统将这3个科目进行汇总时,得到的是科目相抵之后的值。从业务角度来看,将“A44_0000-销售收入”的发生额与“A44_0010-销售返利”及“A44_0020-销售折扣”的发生额进行相加是没有业务意思的,通过会计科目类型的设置,可以方便实现符合业务逻辑的计算。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。