反饋已提交
網絡繁忙
勾选未修改不更新后,前端填报时,若记录没有被修改,则记录不会被入库。在大数据量查询并回填情况下,启用该设置,可以明显提高填报的提交性能。
某些情况下可以将一些固定或有一定规律的值写入数据库,就可以不用设置单元格,将数据库表字段跟其他类型的数据绑定即可。
如下图示例,数据入库时需要将收入字段全部填入 false,此时可以将收入对应的值设置为布尔型 false。
但是值设置为非单元格或单元格组类型后,未修改不更新功能会置为灰色不可用,那么如何可以避开这样的限制呢?
可以利用设置提交条件来巧妙避开这一限制,在修改/插入/删除的行中做一个标记,再利用提交条件,有标记的提交,就间接实现了「未修改不更新」的功能,而且比上面这个功能更为通用。
在 FineReport 设计器中打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt
选中 L3 单元格,在右侧属性面板中点击控件设置,选择文本控件,如下图所示:
点击模板>报表填报属性,将「中止」字段的值改为false,如下图所示:
点击设置提交条件,选择公式,公式为 L3=1,点击确定。如下图所示:
在可能涉及到修改内容的单元格控件编辑后事件中写 JS 代码。例如选中 B3 单元格,在右侧属性面板中点击控件设置>事件>编辑后事件,来设置标记 1 。如下图所示:
这里为了取得当前编辑行的行号,定义了一个 row 的参数,值为公式=row(),比如当前行为第 3 行,JS 部分再设置这个单元格值为 1,即 L3。
代码如下所示:
contentPane.curLGP.setCellValue('L'+row,null,1);contentPane.setCellValue('L'+row,null,1);
在其他单元格控件编辑后事件中同样做此设置,即 C3-K3 单元格,代码及参数定义相同。
可不设置,因为新增后,再编辑单元格,同样会调用 2.5 章节中的代码。
打开模板>报表 Web 属性>填报页面设置,添加一个删除行前事件,这里与上面步骤不同的是获取行号,如下图所示:
JS 代码如下所示:
var row=parseInt($(contentPane.curLGP.currentTDCell).attr('row'))+1;contentPane.curLGP.setCellValue('L'+row,null,1); contentPane.setCellValue('L'+row,null,1);
注:查看具体 SQL 日志,需在文件>选项>高级中,将 log 级别设置切换为 DEBUG 模式。
保存后,点击填报预览,分别尝试修改、添加,删除,都可看到效果。
点击下载模板:解除未修改不更新不可用的限制.cpt
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉