具体需求:
普通填报表 要求页面上修改了那行数据,那么就将从外部接收到的创建人编号 更新到数据库中对应修改行的指定字段中
难点:
如果在update中直接指定修改 会将所有记录均修改,脚本如下:
这样就与客户想要实现的效果不太一样。
解决思路:
在执行update前 对要更新的数据提前处理,大致思路是通过对比新旧对象的记录来实现,如果新旧对象不同,则在新对象中保留不同的记录供后面更新使用,如果新旧对象一致则不参与执行更新,以此达到客户想要的部分更新效果
以填报教程示例2.1.sht为例 数据来源脚本不做任何修改,数据去向脚本修改如下:
脚本部分注释:
B1 C1指明新旧对象参与比较的字段名称;
2-3行 使用for循环 对比新旧对象记录并从employee中删除新旧对象中相同的记录
A5中aa为模拟外部传入的创建人 showInput.jsp定义如下:
按照如上操作即可实现部分更新
修改前展现效果
修改后未提交展现效果
提交更新后展现效果
通过上述效果可以看到仅将修改行的姓名更换为了创建人编号