⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list1.1.js

📁 报表打印例子报表打印例子报表打印例子报表打印例子报表打印例子
💻 JS
📖 第 1 页 / 共 2 页
字号:
				sumValue = sumCol.sumValue;
				return sumValue;
			}
		}
		return null;
	}
	var _list_sumrow_str = null;
	this.paintSumRow = function(){
		if(_list_sumrow_str!=null)
			return _list_sumrow_str;
		var sumRowData = oThis.getSumData();
		var sb = [];
		sb[sb.length] = '<tr>';
		var colNum = 0;
		if(oThis.context.checkBox){
			colNum++;
			
		}else if(oThis.context.radioBox){
			colNum++;
		}

		if(oThis.context.sequence){
			colNum++;
		}
		if(colNum>1){
			sb[sb.length] = '<td colspan='+colNum;
			sb[sb.length] = ' class="lastRow"';
			sb[sb.length] = ' align="center">';
			sb[sb.length] = '合计';
			sb[sb.length] = '</td>';
		}else{
			sb[sb.length] = '<td';
			sb[sb.length] = ' class="lastRow"';
			sb[sb.length] = ' align="center">';
			sb[sb.length] = '合计';
			sb[sb.length] = '</td>';
		}

		var columns = oThis.getLeafColumns();
		for(var i=0;i<columns.length;i++){
			var column = columns[i];
			sb[sb.length] = '<td class="lastRow" align="right">';
			var sumValue = oThis.getColSum(sumRowData,column.name);
			if(sumValue==null){
				sb[sb.length] = '&nbsp';
			}else
				sb[sb.length] = formatToMoney(""+sumValue,oThis.getSumMoneyFormat(column.name));
			sb[sb.length] = '</td>';
		}
		sb[sb.length] = '</tr>';
		_list_sumrow_str = sb.join("");
		return _list_sumrow_str;
	}

	this.getMoneyFormat = function(column){
		return column.format;
	}

	this.getSumMoneyFormat = function(colName){
		var sumColumns = oThis.context.sum;
		var sumCol = null;
		for(var i=0;i<sumColumns.length;i++){
			var col = sumColumns[i];
			if(col.name = colName){
				sumCol = col;
				break;
			}
		}
		if(sumCol.format==null){
			return oThis.getMoneyFormat(oThis.getColumnByName(colName));
		}else{
			return sumCol.format;
		}
	}
	

	this.refreshStateOfSelectedRow = function(){
		var table = oThis.element.all("dataTable");
		var rows = table.rows;
		for(var i=0;i<rows.length;i++){
			var row = rows[i];
			var id = row.l_r_id;
			var rowObj = oThis.getRow(id); 
			if(oThis.selectedIds.contains(id)){
				row.className = "selected";
				if(oThis.context.checkBox==true||oThis.context.checkBox==true){
					row.cells[0].children[0].checked = true;
				}
			}
		}
	}

	
	var _list_rowStr = new Object();
	
	this.paintRow = function(rowData){
		if(_list_rowStr[rowData.l_r_id]!=null)
			return _list_rowStr[rowData.l_r_id];
		var sb = [];
		sb[sb.length] = "<tr l_r_id="+rowData.l_r_id+">";
		if(oThis.context.checkBox==true){
			sb[sb.length] = '<td align="center" style="width:40;">';
			sb[sb.length] = '<input type="checkbox" name="auto_check"';
			sb[sb.length] =' onclick="list_onCheckBoxClicked(';
			sb[sb.length] = oThis.getId() + ',';
			sb[sb.length] = rowData.l_r_id + ',';
			sb[sb.length] = 'this.checked)"></td>';
			
		}else if(oThis.context.radioBox==true){
			sb[sb.length] = '<td align="center" style="width:40;">';
			sb[sb.length] = '<input type="radio" name="auto_radio"'
			sb[sb.length] =' onclick="list_onRadioBoxClicked(';
			sb[sb.length] = oThis.getId() + ',';
			sb[sb.length] = rowData.l_r_id + ',';
			sb[sb.length] = 'this.checked)"/></td>';
		}

		if(oThis.context.sequence==true){
			sb[sb.length] = '<td align="center" style="width:40;">';
			sb[sb.length] = (rowData._index+1) + '</td>';
		}

		var columns =oThis.getLeafColumns();
		
		for(var i=0;i<columns.length;i++){
			sb[sb.length] = oThis.paintCell(rowData,columns[i]);
		}
		sb[sb.length] = "</tr>";
		var r =  sb.join("");
		_list_rowStr[rowData.l_r_id] = r;
		return r ;
	}
	
	var _list_leafColumns = null;
	this.getLeafColumns = function(column){
		if(column==null){
			if(_list_leafColumns==null){
				_list_leafColumns = new Array();
				for(var i=0;i<oThis.columns.length;i++){
					column = oThis.columns[i];
					if(column.children==null || column.children.length==0){
						_list_leafColumns[_list_leafColumns.length] = column;
					}else{
						oThis.getLeafColumns(column);
					}
				}
			}
			return _list_leafColumns;
		}else{
			for(var i=0;i<column.children.length;i++){
				var child = column.children[i];
				if(child.children==null|| children.children.length==0){
					_list_leafColumns[_list_leafColumns.length] = child;
				}else{
					oThis.getLeafColumns(child);
				}
			}
		}
	}


	this.paintCell = function(rowData,column){
		var data = null;
		var align = "";
		var mode = column.mode;
		if(mode==null || mode ==""){
			mode = "string";
			column.mode = mode;
		}
		data = oThis.getValueOfCell(rowData,column);		
		var sb = new Array();		
		var isListening = false;
		if(mode=="string"){
			align = "left";
			if(column.format!=null){
				if(column.format.indexOf("sub(")==0){
					var p = column.format.indexOf(")");
					var len = column.format.substring(4,p);
					if(asciiLen(data)>(len*2)){
						data = data.cut(len)+"...";
						isListening = true;
					}
				}
			}
		}else if(mode=="number"){
			align = "right";
			data = formatNumber(data,column);
		}else if(mode=="money"){
			align = "right";
			data = formatNumber(data,column);
		}else if(mode=="check"){
			align = "center";
			if(data==true){
				data = '<div class="checked"></div>';
			}else{
				data = ' ';
			}
		}else if(mode=="select"){
			align = "center";
			var op = getColumnOption(column,data);
			if(op!=null){
				data = op.name;
			}else{
				data = " ";
			}
		}else if(mode=="function"){
			align = "left";
		}else if(mode=="date"){
			align = "center";
			data = data.substring(0,10);
		}else if(mode=="link"){
			if(data!=" "){
				data = '<a href="#" onclick="list_onLink(' + oThis.getId() +',' + rowData.l_r_id +',\''+column.name+ '\')">' + data + '</a>'
			}
			align = "center";
		}else if(mode=="exp"){
			align="right";
			data = formatNumber(data,column);
		}
		if(column.align!=null){
			align = column.align;
		}
		if(data== " "){
			data = "&nbsp;";
		}
		var width = getColumnWidth(column);

		var sb = new Array();

		if(isListening==false){
			sb[sb.length] = '<td align='+align;
			sb[sb.length] = '>' + data;
			sb[sb.length] = '</td>';
		}else{
			sb[sb.length] = '<td align='+align;
			sb[sb.length] = ' onmouseout="list_onCellMouseOut()"';
			sb[sb.length] = ' onmouseover="list_onCellMouseOver('+oThis.getId()+','+ rowData.l_r_id+',\''+column.name + '\')">' + data;
			sb[sb.length] = '</td>';
		}
		return sb.join("");
	}

	this.getPropertyOfObj = function(obj,pName){
		if(obj==null){
			return null;
		}
		var name = pName;
		var ns = name.split(".");
		if(ns[1]=="")
			ns.removeAt(1);

		if(ns.length>1){
			for(var i=0;i<ns.length-1;i++){
				var parent = obj;
				obj = parent[ns[i]];
				if(obj==null){
					return null;
				}
			}
			obj = obj[ns[ns.length-1]];
		}else{
			obj = obj[pName];
		}
		return obj;
	}

	this.getValueOfCell = function(rowData,column){
		if(column.mode=="exp"){
			return eval(column.expStr);
		}else{
			var v = oThis.getPropertyOfObj(rowData,column.name);
			if(v==null || v==""){
				if(column.mode=="number"){
					v = 0;
				}else if(column.mode=="money"){
					v = 0.00;
				}else 
					v = " ";
			}
			
			return v;
		}
	}

	this.selectAll = function(){

	}


	this.onSelect = function(){

	}

	
	this.getRow = function(rowId){
		if(oThis.rows[rowId]==null){
			var row = new SigmaListRow(oThis,rowId);
			oThis.rows[rowId] = row;
			return row;
		}else
			return oThis.rows[rowId];
	}
	
	var headerArea = oThis.element.all("headTable");
	var rs_start = 0;
	var start_width = 0;
	var nextColStartWidth = 0;

	this.debugCanvas = null;

	this.debug = function(s){	
		if(oThis.debugCanvas!=null){
			oThis.debugCanvas.innerText = oThis.debugCanvas.innerText + "\n" + s;
		}
	}

	

	this.setColumnWidth = function(column,newWidth){
		column.width = newWidth;
		var cell = oThis.columnHeaders[column.name];
		cell.all("title_"+column.name).style.width = newWidth -4;
		var cIndex = oThis.getLeafColumns().indexOf(column);
		if(cIndex<0){
			alert("can not find column in list");
			return ;
		}
		if(oThis.context.sequence==true)
			cIndex++;
		if(oThis.context.checkBox==true)
			cIndex++;
		else if(oThis.context.radioBox==true)
			cIndex++;
		var colGroup = oThis.element.all("colgroup_"+oThis.getId());
		var col = colGroup.children[cIndex];
		col.width = newWidth;
		oThis.element.all("data_cols_"+oThis.getId()).children(cIndex).width = newWidth;
	}

	this.getNextColumn = function(column){
		var columns = oThis.columns;
		var i = columns.indexOf(column);
		i++;
		if(i<columns.length){
			return columns[i];
		}else
			return null;
	}

	this.getColumnLeft = function(column){
		var headTable = oThis.element.all("headTable");
		var cells = headTable.rows[0].cells;
		var left = 0;
		var cIndex = oThis.columns.indexOf(column);

		for(var i=0;i<cIndex;i++){
			var cell = cells[i];
			left += cell.offsetWidth;
		}
		return left;
	}

	this.getColumnByName = function(colName){
		var columns = oThis.columns;
		return findColumn(columns,colName);
	}
}

function findColumn(columns,colName){
	var currentCol = null;
	for(var i=0;i<columns.length;i++){
		var c = columns[i];
		if(c.name==colName){
			currentCol = c;
		}else if(c.children!=null){
			currentCol = findColumn(c.children,colName);
		}
		if(currentCol!=null){
			return currentCol;
		}
	}
	return currentCol;
}

var g_list_info = null;
function list_onCellMouseOver(listId,rowId,colName){
	var list = getFromContainer(listId);
	var column = list.getColumnByName(colName);
	var row = list.getRow(rowId);
	var info = document.createElement("div");
	info.style.zIndex = 100;
	var cellValue = list.getValueOfCell(row.value,column);		
	info.innerText = cellValue;
	with(info.style){
		position = "absolute";
		left = window.event.clientX;
		top = window.event.clientY;
		fontSize = "12";
		backgroundColor = "#ffd";
		border= "1 solid #11a";
		height = 25;
		padding=3;
	}
	document.body.appendChild(info);
	g_list_info = info;
}

function list_onCellMouseOut(){
	if(g_list_info!=null)
		g_list_info.removeNode(true);
}

function list_startResize(listId,colName){
	var list = getFromContainer(listId);
	var column = list.getColumnByName(colName);
	var cell = list.columnHeaders[colName];
	var start_width = cell.offsetWidth;
	var newWidth = start_width;
	var start_left = event.clientX;
	setResizingObj(column);
	document.body.style.cursor = "e-resize";
	if(column.parent!=null){
		var pcell = list.columnHeaders[column.parent.name];
		var pstart_width = pcell.offsetWidth;
	}
	column.resizeTo = function(x,y){		
		var new_left = x;
		var offset = new_left-start_left;
		newWidth = start_width + offset;
		if(newWidth<10){
			newWidth = 10;
			offset = newWidth - start_width;
		}
		
		list.setColumnWidth(this,newWidth);
		list.clearColsStr();
		if(offset<0){
			var box = list.getElement().all("listBox");
			box.scrollLeft ++;
			box.scrollLeft --;
			
		}
		
	}
	column.release = function(){
		document.body.style.cursor = "";
		
	}
}

function list_repaint(listId){
	var list = getFromContainer(listId);
	list.paintCurrentRows();
}


function list_onSortByColumn(listId,colName){	
	var list = getFromContainer(listId);
	var column = list.getColumnByName(colName);
	list.sortByColumn(column);
}

function list_onLink(listId,rowId,colName){
	var list = getFromContainer(listId);
	var event = new Object();
	var column = list.getColumnByName(colName);
	var row = list.getRow(rowId);
	var cell = row.cells[colName];
	event.type = "onLink";
	event.cell = cell;
	eval(column.href+"(event)");
}


function list_onCheckBoxClicked(listId,rowId,checked){
	var list = getFromContainer(listId);
	var row = list.getRow(rowId);
	row.setSelected(checked);
}

function list_onRadioBoxClicked(listId,rowId,checked){
	var list = getFromContainer(listId);
	var row = list.getRow(rowId);
	if(checked==true){
		var rows = list.getSelectedRows();
		for(var i=0;i<rows.length;i++){
			rows[i].setSelected(false);
		}
	}
	row.setSelected(checked);
}

function getColumnOption(column,id){
	var options = column.options;
	for(var i=0;i<options.length;i++){
		var op = options[i];
		if(op.id == id){
			return op;
		}
	}
	return null;
}

function getColumnWidth(column){
	if(column==null)
		return 0;
	if(column.width == null){
		if(column.children!=null && column.children.length>0){
			var w = 0;
			for(var i=0;i<column.children.length;i++){
				var c = column.children[i];
				w = w+ getColumnWidth(c);
			}
			return w;
		}else{
			return 100;
		}
	}else{
		return parseInt(column.width);
	}
}

function formatNumber(value,column){
	var f = null;
	if(column.format!=null){
		f = column.format;
	}else{
		f = "#.00";
	}
	return formatToMoney(value,f);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -