小技巧 - 如何把子单据体的数值合计到单据体上
金蝶云社区-云社区用户S6651234
云社区用户S6651234
13人赞赏了该文章 9,436次浏览 未经作者许可,禁止转载编辑于2013年09月30日 13:21:13

对于单据体中的数值字段,要合计到单据头上,非常简单,直接设置单据体字段的"汇总到表头字段"即可。对于子单据体的数值字段,要合计到父单据体,则没有这么简单了,要实现的步骤不少,好不容易弄出来了,贴出来共享。

现在假设要把子单据体的"子分录整数"字段(Key = FSubEntryInteger),合计到单据体的"分录整数"(Key = FEntryInteger),需按如下步骤实现:

1. 在子单据体的实体服务规则上,增加一个新规则:通知分录整数进行计算:
1.1 设置规则条件 = "FSubEntryInteger = FSubEntryInteger";
1.2 规则条件成立时,调用服务:调用字段值更新服务;通过此服务,调用单据体分录整数的值更新服务;

2. 在子单据体删除行菜单上,增加一个服务:调用字段值更新服务;也是调用单据体分录整数的值更新服务;

3. 设置单据体的分录整数字段的值更新事件,增加一个新服务:计算定义公式的值并填写到指定列:FEntryInteger = sum(FSubEntryInteger)

测试运行,能够正确计算,收工;

思考:
1. 为什么子单据体上的服务规则是触发父单据体字段的值更新服务,而不是直接计算?
2. 步骤1.1的条件有啥用途?
3. 步骤2中,在菜单上增加服务的原因? 开始,我没有增加此配置,测试运行发现子单据体行删除时,未能刷新合计,推测是删除行未触发实体服务规则;具体原因我再追查,先用此方法变通解决。