• 帆软报表实现全选全不选的功能


    新建checkbox.js(代码如下),放到WebReport目录下,方便调用;
    然后新建一些多选框,分别设置每个多选框的“初始化后”、“状态改变”事件,事件中引用该checkbox.js的init()、change()的方法。

    /*
    	finereport的js说明:
    	参数界面获取控件方法:
    		var obj = obj.options.form.getWidgetByName('orgid');
    	obj.getName() 获取控件名
    	obj.setValue() 设置控件值
    	obj.getValue() 获取控件值
    	复选框组控件:值为所有选中的复选框的值的拼接,中间以英文逗号隔开。
    	
    */
    
    //初始化复选框,将其放置到window.lineboxes数组中
    function init(obj){
    	if(!window.lineboxes){
    		window.lineboxes = [];
    	}
    	lineboxes[lineboxes.length] = obj;
    }
    
    function initCheckboxGroup(obj){
    	obj.setValue('3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34');
    }
    
    /*
    	分行 '4,5,6,7,8,23'
    
    	银行 '9,10,11,12,13,14,15,16,17,18,33' 
    
    	行 '19,20,21,22,24'
    
    	行 '25,26,34', 不包括'35'
    
    	银行 '27,28,29,30,31,32'
    */
    //所有复选框和复选框组只要有一个未选择时,设置‘全选’不选中,否则设置‘全选’不选中
    function change(obj){
    	var orgids = obj.options.form.getWidgetByName('ORGID').getValue();
    
    	if(obj.getValue()==false){
    		//设置checkAll控件的值,当前复选框未选择时,设置全选不选中
    		obj.options.form.getWidgetByName('checkAll').setValue(false);
    		
    		//设置ORGID复选框组控件的值
    		orgids = ','+orgids+',';
    		if(obj.getName()=='DXYHCZFH'){
    			orgids = orgids.replace(',4,',',').replace(',5,',',').replace(',6,',',').replace(',7,',',').replace(',8,',',').replace(',23,',',');
    		}else if(obj.getName()=='GFZSYYH'){
    			orgids = orgids.replace(',9,',',').replace(',10,',',').replace(',11,',',').replace(',12,',',').replace(',13,',',').replace(',14,',',').replace(',15,',',').replace(',16,',',').replace(',17,',',').replace(',18,',',').replace(',33,',',');
    		}else if(obj.getName()=='CSH'){
    			orgids = orgids.replace(',19,',',').replace(',20,',',').replace(',21,',',').replace(',22,',',').replace(',24,',',');
    		}else if(obj.getName()=='NSH'){
    			orgids = orgids.replace(',25,',',').replace(',26,',',').replace(',34,',',');
    		}else if(obj.getName()=='CZYH'){
    			orgids = orgids.replace(',27,',',').replace(',28,',',').replace(',29,',',').replace(',30,',',').replace(',31,',',').replace(',32,',',');
    			
    		}
    		orgids = orgids.length==1?null:orgids.substring(1,orgids.length-1);
    	}else{
    		
    		//设置checkAll控件的值
    		var allChecked=true;
    		//循环判断所有复选框都选中时,将全选复选框选中  
    		for(var i=0;i<lineboxes.length;i++){
    			if(lineboxes[i].getValue()==false){
    				allChecked=false;
    				break;
    			}
    		}
    		obj.options.form.getWidgetByName('checkAll').setValue(allChecked);
    		
    		
    		//设置orgid复选框组控件的值		
    		if(obj.getName()=='DXYHCZFH'){
    			orgids = orgids + (orgids.length==0 ? '':',') + '4,5,6,7,8,23';
    			
    		}else if(obj.getName()=='GFZSYYH'){
    			orgids = orgids + (orgids.length==0 ?  '':',') + '9,10,11,12,13,14,15,16,17,18,33';
    			
    		}else if(obj.getName()=='CSH'){
    			orgids = orgids + (orgids.length==0 ?  '':',') + '19,20,21,22,24';
    			
    		}else if(obj.getName()=='NSH'){
    			orgids = orgids + (orgids.length==0 ?  '':',') + '25,26,34';
    			
    		}else if(obj.getName()=='CZYH'){
    			orgids = orgids + (orgids.length==0 ?  '':',') + '27,28,29,30,31,32';
    			
    		}
    	}
    	
    	obj.options.form.getWidgetByName('ORGID').setValue(orgids);
    	//alert(obj.options.form.getWidgetByName('ORGID').getValue());
    }
    
    //全选,全不选
    function selectAllorNone(obj){
    	var flag = obj.getValue();
    	//获取当前复选框控件的状态:true/false
    	for(var i=0;i<window.lineboxes.length;i++){
    		window.lineboxes[i].setValue(flag);
    		//alert("window.lineboxes[i].options.value === "+window.lineboxes[i].options.value);
    		//alert("window.lineboxes[i].value==="+window.lineboxes[i].value);
    		//循环遍历每个复选框控件
    		//var cr = FR.cellStr2ColumnRow(window.lineboxes[i].options.location);
    		//由每个控件位置获取行号列号,并逐一赋值当前状态
    		//_g().setCellValue(cr.col,cr.row,flag);
    	}
    	if(flag){
    		obj.options.form.getWidgetByName('ORGID').setValue('3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34');
    	}else{
    		obj.options.form.getWidgetByName('ORGID').setValue(null);
    	}
    }
    
  • 相关阅读:
    C# 数组
    一个遍历算法
    php csv导出
    linux 配置 crontab
    LINUX 配置SVN
    Linux chkconfig命令
    Linux 安装mysql+apache+php
    linux 安装samba
    linux安装软件的学习
    LINUX中简单的字符命令
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15188730.html
Copyright © 2020-2023  润新知