润乾报表 行式填报表如何实现批量删除效果

在润乾报表的行式填报表中允许用户删除页面端数据,从而点击保存后能将数据库中对应的数据删除,在默认情况下,删除按钮位于报表的上方或下方,如果页面数据过多,删除时要一次一次来点太不方便,如果数据前方能生成复选框,先用鼠标选中需要删除数据的复选框,最后点击一次删除能将选择的数据都删除,这样能大大提高工作效率,那如何实现批量删除效果呢?

解决方案:
报表中插入一列,然后使用复选框编辑风格,在展现报表的jsp中定义js实现批量删除和全选效果,具体实现如下:
1.报表设计制作数据处理脚本,设计单元格字段名称等配置(此部分可以参考填报表教程)
因为要生成复选框,所以第一列要空出一列,并将填报的编辑风格设置成复选框,如下图:
 
2.jsp配置(自定义js实现批量删除和全选效果)
此处是在工具栏中进行修改配置,即修改的是inputtoolbar.jsp

全选示例代码:

function selcheck(groupId, sheetIndex, cellName) {
  var objs = _lookupCells( groupId + sheetIndex + "_" + cellName );
var cbk = document.getElementById("box");
   //alert(cbk.checked);
  for(var i=0; i<objs.length; i++) {
          if(cbk.checked){
          objs[i].setAttribute( "value" ,"1") ;
   objs[i].childNodes[0].checked = true;
          }
          else{
                  objs[i].setAttribute( "value" ,"0") ;
   objs[i].childNodes[0].checked = false;
          }
  }


批量删除部分主要代码如下:
function batchDeleteRows( groupId, sheetIndex, cellName ) {
        var cells = _lookupCells( groupId + sheetIndex + "_" + cellName );
                //alert(cells);
        var table = document.getElementById( groupId + sheetIndex );
        var last = 0;
        var length = cells.length;
        var afterLength = length;
        table.currCell = cells[0];//首个删除定位
        for( var i = 0; i < length; i++ ) {
                var cell = cells[i];
                table.currCell = cell;
                if( cell.getAttribute( "value" ) == "1" ) {  //复选框被勾选了,删除此行
                        _deleteRow( groupId );
                        last = i; //记录最后一个删除的,插入的时候从这里插入
                        afterLength--;
                }
        }
        if(last >= afterLength){ //如果删的最后一个的序号大于删完的长度,那么要找到删完的最后一个
                table.currCell = cells[afterLength - 1];
        }//否则
        else table.currCell = cells[last + 1];//cells集合没变,已知last删除了,找last的下一行
    }
假如填报表第一个sheet中的A5是复选框单元格,那么调用
batchDeleteRows( "<%=sgid%>", 0, "A5" );


效果如下图所示:
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值