问题描述

如下图所示 ,填报表修改某一个单元格或者某一行数据后点击提交按钮 会更新当前页面所有单元格的数据,速度比较慢,能否只更新修改单元格所在的那一行数据,而不是全部数据? 问题描述 - 图1 # 解决方案 > 填报表在提交数据时,会根据情况进行插入或者更新操作,当填报行列数较多时,速度可能较慢,因为他要对所有单元格进行操作。此时可以设置填报属性不更新未修改行,这样,相应的数据行在数据不改变时,不会参与更新操作,即SQL语句中update中不包含该行,进而提高填报的效率。但这个功能只有在填报更新数据的时候有效,如果是插入操作的话仍是插入所有字段,因此需要在使用报表主键的的基础上使用该功能。

方法步骤

设置未修改不更新

进入报表设计页面,点击填报设置,在填报属性设置页面 设置不更新未修改行,如下图:

问题描述 - 图2

日志结果分析 如下图修改序号为5的的1月份的数据为为100,点击提交。

问题描述 - 图3

此时后台执行的update语句只更新修改单元格的数据,未修改的没有更新。 可以看到,数据库只更新了再订购量改变了所在行的数据,其他行都没有改变。

不设置未修改不更新

此时后台日志执行更新语句可以看到,数据库分别对每行数据都进行了更新。
由上可见,对于大数据量、少部分修改的填报表,设置了不更新未修改行将大大提高填报的效率。