FineReport填报--批量删除

最近做报表有个批量删除的需求,这也是个比较常用的功能,在此记录下

参考帆软帮助文档https://help.finereport.com/doc-view-533.html

最终效果如下,此处我选择点击删除后再点击提交按钮提交到数据库,并不是点击删除后直接就提交

数据用的FRDemo.db 的SALES_BASIC表

FineReport填报--批量删除_第1张图片

1、首先做出展示页面如下:

FineReport填报--批量删除_第2张图片

2、全选功能

首先定义一个参数来判断是否点击了全选,在参数栏拖一个文本框,名称为flag,去掉可用和可见属性,默认值为false,false表示没全选,true表示全选;

FineReport填报--批量删除_第3张图片

在全选按钮下添加点击事件,代码如下:

var flag=contentPane.parameterEl.getWidgetByName("flag").getValue();
if(flag=="false"){
	var $span = $('#frozen-center .fr-checkbox-checkoff');  //没有选中的复选框 	
	//alert($span.length);
    $span.removeClass("fr-checkbox-checkoff");
	$span.addClass("fr-checkbox-checkon");

	contentPane.parameterEl.getWidgetByName("flag").setValue("true");
	contentPane.getWidgetByName("is_all").setValue("取消全选");
}else{
	//var $span = $('.fr-checkbox-checkon');  
	var $span = $('#frozen-center .fr-checkbox-checkon'); //选中的复选框 
    $span.removeClass("fr-checkbox-checkon");
	$span.addClass("fr-checkbox-checkoff");
	
	contentPane.parameterEl.getWidgetByName("flag").setValue("false");
	contentPane.getWidgetByName("is_all").setValue("全选");	
}

3、删除

删除按钮添加点击事件,代码如下:

FR.Msg.confirm("提示","确认删除所选项?",function(flag){
	if(flag){
		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();  //提交至数据库,此处我没用,我选择默认的点击提交按钮提交
		contentPane.parameterEl.getWidgetByName("flag").setValue("false");
	}else{
		return false;
	}
})

4、现基本实现,优化,在每次点击查询后重置flag为false,所以在查询按钮添加点击事件

contentPane.parameterEl.getWidgetByName("flag").setValue("false");
_g().parameterCommit();

 

你可能感兴趣的:(BI报表开发)