1 概述

在V6.9.1版本之前,跨设备表单在修改页面保存时会统一回写主表数据和从表的全部记录,为满足某些场景下必要的数据更新同步需求。

但在实际使用过程中发现,在某些功能在特定业务场景下使用时,修改时回写全部数据无法实现某些业务。如跨设备表单在模板配置时原本具备的一个功能,开启后可以在修改页面保存时自动更新元数据中指定的【修改人】、【修改时间】字段,分别用于记录数据的修改用户、修改时间。这个功能在单表模型使用时不会有太大的问题,但是在带从表的表单中想要实现为从表记录自动记录更新用户和更新时间,此时原有的数据提交规则就会显得不太合理了。例如制作了一个协作表单交由多名用户去进行维护,尤其是从表明细数据,想要实现张三在多条记录中仅修改了其中2条,就只将这2条数据进行回写且更新【修改人】、【修改时间】字段,在现有规则下就无法实现。

因此,在V6.9.1在表单模板配置时,按表单所用到的元数据允许配置修改页面的数据提交范围配置,以适应不同的业务使用场景。

2 配置说明

配置路径:
1、单表模型/主从模型/树模型/多对多模型-表单数据来源-数据回写设置
2、从表-数据回写设置

以多对多模型为例,在模板配置中我们可以在如下位置配置修改页面提交数据范围:
1、主表:【回写设置】下拉选项:①不论是否变脏均回写 ②仅变脏时回写

2、从表:【回写设置】下拉选项:①回写所有从表记录 ②仅回写变脏的从表记录

3 案例说明

以概述中遇到的场景来举例说明一下,因为自动更新【修改人】、【修改时间】字段这个功能本身基于数据记录是否实际更新回写来触发,因此增加了上述配置,要想实现从表中仅更新实际修改的记录的【修改人】、【修改时间】字段,只需要在对应的明细从表中将数据提交配置为【仅回写变脏的从表记录】即可,如下图所示。

保存模板后,表单前端执行效果如下图所示。
1、如下图所示,使用用户“刘备”创建的记录并在从表明细中创建了四条明细数据,可以看见此时明细的CreateId、CreateDate、UpdateId、UpdateDate,均记录为“刘备”和对应的时间。

2、此时使用另一个用户“张飞”登录,同样进来维护这个表单的这条记录,并对明细从表进行了部分编辑,例如创建了第5条明细数据,并修改了第2、3条数据的部分字段,如下图。

3、保存后,查看详情可以看到如下图结果,明细中“张飞”修改过的第2、3条记录的修改用户和修改时间均被更新了,而其余未修改的记录的则仍为“刘备”和早前的修改时间,实现了从表明细仅更新修改过的记录的UpdateId、UpdateDate,达到了我们的业务预期效果。新增数据则仍会将CreateId、CreateDate、UpdateId、UpdateDate,均记录为创建人“张飞”和对应的时间,同样符合业务要求。

作者:Eric  创建时间:2024-06-28 09:33
最后编辑:Eric  更新时间:2025-04-24 13:55