报表知识库
我要提问

行式报表批量删除数据

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

先通过设计器设计一行行式填报表并设置对应的更新设置,注意,因为要生成复选框,所以第一列要空出一列,并将填报的编辑风格设置成复选框,如图:

这样,报表展现后每条明细数据的前方就会生成对应的复选框供用户选择。

在页面上自己定义按钮,并且点击时实现相关功能:

<div noWrap style=”font-family:宋体;font-size:13px;color:;”>

全选:<INPUT type=”checkbox” onclick=”selcheck()”>&nbsp;

<span style=”cursor:pointer” onclick=”_insertRow( report1 )”>插入</span>&nbsp;

<span style=”cursor:pointer” onclick=”_appendRow( report1 )”>添加</span>&nbsp;

<span style=”cursor:pointer” onclick=” deleteRows()”>删除勾选</span>&nbsp;

<span style=”cursor:pointer” onclick=”_submitRowInput( report1 )”>提交</span>

</div>

这里主要介绍下全选以及多条删除的操作。

全选点击时调用了selcheck()函数,所以要在当前jsp中定义该js函数,如下:

function selcheck() {

var objs = report1.getElementsByTagName(“input”);

for(var i=0; i<objs.length; i++) {

if(objs[i].type.toLowerCase() == “checkbox” )

objs[i].checked =event.srcElement.checked;

}

}

会根据相应的名称实现全选的功能。

删除勾选调用js函数deleteRows(),在jsp中定义该js函数:

function deleteRows(){

var report = document.getElementById(‘report1′);

for(var i=report.rows.length-1;i>0;i–){

var row = report.rows[i];

if(!row.all.tags(“input”)[0].checked) continue;

var cell = row.cells[1];

report.currCell = cell;

_deleteRow(report);

}

}

这样页面上就会展现相应按钮,并能够实现批量删除功能:如图: