普通填报表 只对用户修改行更新创建人编号

具体需求:
普通填报表  要求页面上修改了那行数据,那么就将从外部接收到的创建人编号 更新到数据库中对应修改行的指定字段中

难点:
如果在 update 中直接指定修改  会将所有记录均修改,脚本如下:

A1.update@uk(employee:employee_old, 员工表, 编号, 部门, 姓名:aa, 性别, 出生日期, 入职日期, 籍贯, 工资; 编号)
这样就与客户想要实现的效果不太一样。

解决思路:
在执行 update 前  对要更新的数据提前处理,大致思路是通过对比新旧对象的记录来实现,如果新旧对象不同,则在新对象中保留不同的记录供后面更新使用,如果新旧对象一致则不参与执行更新,以此达到客户想要的部分更新效果

以填报教程示例 2.1.sht 为例    数据来源脚本不做任何修改,数据去向脚本修改如下:

imagepng

脚本部分注释:
B1  C1 指明新旧对象参与比较的字段名称;
2-3 行  使用 for 循环  对比新旧对象记录并从 employee 中删除新旧对象中相同的记录
A5 中 aa 为模拟外部传入的创建人  showInput.jsp 定义如下:

按照如上操作即可实现部分更新

修改前展现效果

修改后未提交展现效果

提交更新后展现效果

通过上述效果可以看到仅将修改行的姓名更换为了创建人编号

更多填报相关问题请查看:填报相关问题分类导航
*巧用标志字段实现填报数据的暂存与锁定
*填报集群的部署与访问
*填报表能不能像 word 那样定时自动保存?
*数据维护不求人,一招搞定增删改