FR10升级FR11后js不兼容问题:全选删除提示“D3单元格未设置扩展,删除行失败”

fr10时是可以使用的,升级后就出现了这个问题。“勾选删除”的按钮的js如下:

FR.Msg.confirm("警告","确定要删除勾选记录吗?",

function(value){

if(value){  

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");     //获取选中的单元格所在的行号     

    if (id) {      

        darray.push(id);     //将选中的单元格所在的行号放入到数组中     

    }

}

alert(darray);

contentPane.deleteReportRC(null,darray); //第二个参数为行号

//检测提交

}

})

他将D3单元格也写进删除数组,有什么办法解决?

image.png

image.png

FineReport 快乐星光 发布于 2022-5-6 11:18 (编辑于 2022-5-6 11:36)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
快乐星光Lv5中级互助
发布于2022-5-6 11:52

参考批量删除,修改删除数组js:https://help.fanruan.com/finereport/doc-view-1215.html?source=4#

最佳回答
0
CD20160914Lv8专家互助
发布于2022-5-6 11:24

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的属性  单元格的id  比如A3-0-0这样的地址

     if (id) {

      darray.push(id);     //将选中的id放入到数组中

     }

    FR.Msg.confirm("警告","您确定要删除?",function(value){

    if(value){

    contentPane.deleteReportRC(null,darray); //第二个参数为批量删除的选中行

    setTimeout(function() {   

      contentPane.writeReport(); //保存到数据库,实现的是工具栏中提交的操作

      }, 500);                                    

}

else

{}

    }

    )

测试看一下。。。

  • 快乐星光 快乐星光(提问者) 你的js没错,我的js也没错,现在的问题是:D3单元格(全选复选框控件)也在删除数组里面,这一行不能删除的。有没有办法不让D3进数组或把D3去掉
    2022-05-06 11:39 
  • 快乐星光 快乐星光(提问者) 感谢回答,已经找到替代方法了。
    2022-05-06 11:53 
  • Shijianfeng Shijianfeng 回复 快乐星光(提问者) 你好,我也遇到一样的问题了,全选删除,就显示单元格未设置扩展~请问你是怎么解决的吗,感谢!
    2022-11-12 10:26 
  • 快乐星光 快乐星光(提问者) 回复 Shijianfeng 修改勾选框D4的状态改变js:var isAllChecked = true; //设置标记状态为选中 var boxes = _g().getWidgetsByName(\"check\"); //获取当前页的复选按钮控件数组 if (typeof(boxes[0]) != \"undefined\") { for (i = 0; i < boxes.length; i++) { isAllChecked = boxes[i].getValue() == true ? isAllChecked : false; //如果控件大于1个,则遍历获取值,一旦出现未选中状态的按钮,则将标记值改为false } } else { isAllChecked = boxes.getValue(); //如果控件只有1个,则直接获取控件值,并传给标记值 //alert(isAllChecked); } _g().setCellValue(\"C3\", isAllChecked); //将标记值赋给D3单元格
    2022-11-15 15:20 
  • Shijianfeng Shijianfeng 回复 快乐星光(提问者) 感谢,已收藏,等试用,谢谢!!
    2022-11-16 15:21 
  • 1关注人数
  • 496浏览人数
  • 最后回答于:2022-5-6 11:52
    请选择关闭问题的原因
    确定 取消
    返回顶部