📄 list1.1.js
字号:
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] = ' ';
}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 = " ";
}
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 + -