批量修改复选框选中行中某列的值

编辑
文档创建者:yets11 (67190 )     浏览次数:1690次     编辑次数:3次     最近更新:hellabc123 于 2017-12-15     

目录:

1. 概述编辑

在有些场景中,需要对我们批量选择的记录修改其中某列的值,比如在批量审批报表应用中,会经常用到对选择的记录进行批量审批或批量取消审批,如果每行单独点击审批,会比较麻烦,我们可以在报表中利用JS来实现这一效果,效果如下:

222

2. 实现原理编辑

利用JS对复选框进行遍历,判断是否选中,取选中的行号,再利用contentPane.setCellValue(col,row,value)来进行批量设置。

3. 实现过程编辑

3.1 打开模板

打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm7.cpt

3.2 添加按钮控件

右击D1,F1单元格添加按钮控件,一个按钮名称为批量中止,一个按钮名称为批量取消中止,如下图所示:

222

3.3 添加初始化事件

右击A3单元格,弹出控件设置,为复选框控件添加初始化后事件,如下图:

222

js代码如下:

if (!window.lineboxes) { window.lineboxes = []; } lineboxes[lineboxes.length] = this;

3.4 添加点击事件

右击D1单元格,弹出控件设置对话框,为批量中止按钮添加点击事件,如下图所示:

222

js代码如下:

if(window.lineboxes) { var cells = []; for (var i = 0; i < lineboxes.length; i++) { if (lineboxes[i].selected()) { var cr=FR.cellStr2ColumnRow(window.lineboxes[i].options.location); //获取勾选复选框所在行列 _g().setCellValue(10, cr.row, '真'); //逐一赋值,这里列号列序号,第一列是0,第2列为1,依次类推 } } }

右击F1单元格,弹出控件设置对话框,为批量取消中止按钮添加点击事件,js代码如下:

if(window.lineboxes) { var cells = []; for (var i = 0; i < lineboxes.length; i++) { if (lineboxes[i].selected()) { var cr=FR.cellStr2ColumnRow(window.lineboxes[i].options.location); //获取勾选复选框所在行列 _g().setCellValue(10, cr.row, '假'); //逐一赋值,这里列号列序号,第一列是0,第2列为1,依次类推 } } }

3.5 效果预览

保存后,点击填报预览,效果如描述中所示。

附件列表


主题: 二次开发
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: