反馈已提交
网络繁忙
在 填报未修改不更新 文档中介绍了未修改不更新的作用以及限制,其中一个限制是:未修改不更新仅适用于所有填入的值为单元格的情况,若填入值为固定字符串,公式,参数等其他形式,则该功能将灰化无法使用。那么如何绕开这个限制呢?
可以利用「提交条件」来实现同样需求。在修改/插入/删除的行中做一个标记,然后利用提交条件,只提交带有标记的数据行,这样就间接实现了「未修改不更新」的功能。
接口说明可以参考:API接口汇总
注:不支持移动端和 Excel 导入场景。
在 FineReport 设计器中打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt
选中 L3 单元格,在右侧属性面板中点击控件设置,选择文本控件。设置完成后可以隐藏该列。
点击模板>报表填报属性,将「中止」字段的值改为字符串false,此时右侧的「未修改不更新」功能灰化不可使用,如下图所示:
点击设置提交条件,选择公式,公式为 L3=1,点击确定。如下图所示:
在可能涉及到修改内容的单元格控件中添加「编辑后」事件,例如本例中的 B3~K3 单元格。
JavaScript 代码如下:
var row = FR.cellStr2ColumnRow(this.options.location).row + 1;//获取当前行号_g().setCellValue('L' + row, null, 1);//给当前行的L列单元格赋值
可不设置,因为新增行后编辑单元格,同样会调用 2.5 章节中的代码。
打开模板>报表 Web 属性>填报页面设置,添加一个删除行前事件,这里与上面代码不同的是获取行号,如下图所示:
var row = parseInt($(_g().curLGP.currentTDCell).attr('row')) + 1;//获取当前删除行的行号_g().setCellValue('L' + row, null, 1);//给当前删除行的L列单元格赋值
保存模板,点击填报预览,任意修改值后,L 列会自动填写标记,如下图所示:
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\JS实现只提交修改过的数据.cpt
点击下载模板:JS实现只提交修改过的数据.cpt
售前咨询电话
400-811-8890转1
在线技术支持
在线QQ:800049425
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭