upsert更新子表单某个字段的问题
首先,部门申请表的设计似乎有点问题,我理解,您的需求是,同一部门的用户申请记录,要收集到同一子表单中?如果是这样的话,部门申请表的“部门”组件应该从子表单中取出来,放置在主表单中。然后,在用户申请表的表单设置-表单事件中,添加两条业务关联规则第1条规则:如果部门申请表中相应部门不存在,则新增一条部门记录。参考代码如下:UPSERT(部门申请表, EQ(部门申请表.部门,部门), '', 部门申请表.部门,部门)
第2条规则,按要求更新部门申请表中的申请物品数量。在UPSERT()函数中,主条件用于直接指向目标表中的记录,而子条件用来定位子表单中的具体记录。如果我上述理解是正确的,那么我们的主条件可以设置为
EQ(部门申请表.部门,部门)
然后,在子条件中定位具体要修改的子表单数据。AND( EQ(部门申请表.部门申请清单.姓名,姓名), EQ(部门申请表.部门申请清单.申请的物品,申请清单.申请的物品) )
接着,更新子表单数据。完整参考代码如下:
UPSERT(部门申请表, EQ(部门申请表.部门,部门), AND( EQ(部门申请表.部门申请清单.姓名,姓名), EQ(部门申请表.部门申请清单.申请的物品,申请清单.申请的物品) ), 部门申请表.部门申请清单.姓名,姓名, 部门申请表.部门申请清单.申请的物品,申请清单.申请的物品, 部门申请表.部门申请清单.流水号,IF(ISEMPTY(部门申请表.部门申请清单.流水号), 流水号, CONCATENATE(部门申请表.部门申请清单.流水号,',',流水号)), 部门申请表.部门申请清单.数量,部门申请表.部门申请清单.数量+申请清单.数量)
注意到,流水号的更新,先判断是否为空,如果为空,则直接使用流水号,否则,将流水号与当前流水号进行拼接。
赞10
踩0