行式填报批量删除

  • 文档创建者:文档助手1
  • 编辑次数:23次
  • 最近更新:Kevin-s 于 2019-11-08
  • 1. 描述

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

    Snag_3e5532f.png

    有没有方法实现如上图所示批量选择删除数据呢?

    2. 思路

    首先定义复选框,然后定义一个按钮,在按钮中通过定义 JS 来获取选中行所在的数据,删除选中行并实现提交入库。

    批量删除 JS 函数:contentPane.deleteRows(param);

    其中 param 为一串单元格坐标的字符串数组。 例如 [“A2”,”A3”,”A4”],即表示删除 A2、A3、A4 所在的记录;

    “A2”,”A3”,”A4”都是扩展之后最终展示的坐标。

    3. 示例

    3.1 报表设计

    1)新建数据集 ds1,报表设计如下:A2 为普通按钮,按钮名字设置为「删除勾选」,A3 为复选框控件,左父格为 B3。
    222

    2)在模板>报表填报属性中设置报表填报属性,如下图所示:

    Snag_3e2f4fc.png

    3.2 方法一

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

    Snag_3de0521.png

    具体 JS 代码如下:

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

    2)为 A2 的按钮添加点击事件:

    Snag_3e02fc1.png

    具体 JS 代码如下:

    if (!window.lineboxes) {
        window.lineboxes = [];
    }
    lineboxes[lineboxes.length] = this;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 将复选框与上面的按钮联接起来。点击按钮时,会生成一串勾选了的复选框所在的单元格坐标所组成的字符串数组。然后批量删除选中的记录。

    3.3 方法二

    为 A2 单元格的按钮添加点击事件:

    Snag_3e22690.png

    具体 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();

    4. 效果预览

    PC端填报预览效果如下图所示:

    222

    注:不支持移动端预览

    5. 已完成模板

    1)方法一

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

    点击下载模板:行式填报批量删除-方法一.cpt

    2)方法二

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

    点击下载模板:行式填报批量删除-方法二.cpt




    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!