未修改不更新

1. 描述

填报提交时,将根据情况进行 insert/update (插入/更新) 操作,当填报记录较多时,响应速度会变慢,因为它要对所有记录进行操作。

此时设置不改变不更新,可以让相应的数据行在数据不改变时,不会参与更新操作,即 SQL 语句中 update 中不包含该行,从而提高填报效率。

注意:这个功能只有在填报更新数据的时候有效,因此需要在设置报表主键后启用该功能。

2. 解决思路

在设置报表填报属性的时候,勾选未修改不更新。

3. 解决步骤

1)新建数据集,sql:SELECT * FROM Sales

未修改不更新
2) 报表设计如下图,将字段拖放到对应单元格,并设置相应的控件。

未修改不更新

3)点击模板>报表填报属性,设置相关填报属性和勾选未修改不更新标签前面的勾选框,如下图:
未修改不更新

注:未修改不更新功能,只有在所有列的值全是单元格或单元格组时才生效,否则无法勾选。

4)如下图修改中国的一个销售额值,提交,

未修改不更新

5)此时后台执行的update语句为:

注:查看以下日志,需在文件>选项>高级中,将log级别设置切换为DEBUG模式。

未修改不更新

可以看到,数据库只更新了中国销售额所在行的数据,其他行都没有改变。

6)不设置未修改不更新时后台执行的 update 语句为

未修改不更新

可以看到,数据库分别对每行数据都进行了更新。

由上可见,对于大数据量、少部分修改的填报表,设置了未修改不更新将大大提高填报的效率。

注:未修改不更新是指针对于web端单元格中数据是否有改变(如果web端单元格中数据变化了,单元格左上角会出现红色三角形标志),并不是去数据库中匹配数据是否变化。

报表填报属性里的未修改不更新,必须所有字段均为单元格时,才能使用。

当填报的是固定值或者公式时,这个功能无法使用,

如设置中止为 false 时,未修改不更新无法使用,这时如果需要使用此功能请查看 通用的填报中未修改不更新设置方法

 

4. 移动端效果

只更新了修改过的行
未修改不更新

标签: 暂无标签 编辑/添加标签