行式填报批量删除

编辑
  • 文档创建者:文档助手1
  • 浏览次数:15708次
  • 编辑次数:19次
  • 最近更新:ukae 于 2018-08-30
  • 1. 问题描述

    在对多行的网格式报表进行删除填报时,是否觉得一个一个点击删除比较麻烦;又或者点击删除行后觉得此行不应该删除的话,需要刷新页面进行重新删除。


    有没有方法实现如下图批量选择需要删除的数据呢?

    2. 解决思路

    首先定义复选框,然后定义一个按钮,在按钮中通过定义js来获取选中行所在的数据,删除选中行并实现提交入库。
    批量删除js函数:contentPane.deleteRows(param);
    其中param为一串单元格坐标的字符串数组。 例如 [“A2”,”A3”,”A4”],即表示删除A2、A3、A4所在的记录;
    “A2”,”A3”,”A4”都是扩展之后最终展示的坐标。

    3. 解决步骤

    新建数据集ds1,设计报表如下:A2为普通按钮,名字为“删除勾选”,A3为复选框控件,左父格为B3

    模板>报表填报属性中设置:


    3.3 方法一:
    1)为A3的复选框添加初始化后事件:

    具体代码如下:
    if (!window.lineboxes) {
        window.lineboxes = [];
    }
    lineboxes[lineboxes.length] = this;
    2)为A2的按钮添加点击事件:


    具体js代码如下:
    if(window.lineboxes) {
        var cells = [];
        for (var i = 0; i < lineboxes.length; i++) {
    	if (lineboxes[i].selected()) {
    	    cells[cells.length] = lineboxes[i].options.location;
            }
        }
    
        contentPane.deleteRows(cells); //批量删除选中的记录
        contentPane.writeReport(); //保存到数据库,实现的是工具栏中提交的操作
    }
    通过js将复选框与上面的按钮联接起来。点击按钮时,会生成一串勾选了的复选框所在的单元格坐标所组成的字符串数组。然后批量删除选中的记录。
    已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\行式填报批量删除-方法一.cpt
    3.4 方法二
    1)为A2单元格的按钮添加点击事件:

    具体js代码如下:
    var $span = $('.fr-checkbox-checkon');  //定义选中的复选框 
    var darray = []; 
    var $tds = $("td").has($span);   //定义选中复选框的单元格 
    for (var i = 0, len = $tds.length; i < len; i ++) {    //遍历选中的单元格
         var id = $($tds[i]).attr("id");     //给选中的单元格加上id的属性
         if (id) {
          darray.push(id);     //将选中的id放入到数组中
         }
    }
    contentPane.deleteReportRC(null,darray); //第二个参数为批量删除的选中行
    contentPane.writeReport();

    2)保存预览,效果如下:

    在线查看模板效果请点击行式填报批量删除-方法二.cpt

    已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\行式填报批量删除-方法二.cpt


    在线查看模板效果请点击行式填报批量删除.cpt

    4.移动端效果

    不支持移动端

    附件列表


    主题: 填报应用
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]