作者:Yan
//过滤筛选
function dCell_ChangeCell(col, row, text) {
if(row == 2)
{
var colCount= dCell.GetCols(0);
var rowCount= dCell.GetRows(0);
var v_row;
var v_col;
var arr_header = new Array();
var filterExpr = "",filterExprLen=0;
for(v_col=1;v_col<=maxFilterCol;v_col++){
filterExpr = dCell.GetCellString2(v_col,2,0).toUpperCase();
filterExprLen = filterExpr.length;
if( filterExprLen > 0 & filterExpr.indexOf("%") === filterExprLen-1 & filterExpr.lastIndexOf("%") === filterExprLen-1 ) { //模糊匹配:开头固定
filterExpr = "^"+filterExpr.replace(/%/g,"");
filterExpr = new RegExp(filterExpr);
} else if( filterExprLen > 0 & filterExpr.indexOf("%") === 0 & filterExpr.lastIndexOf("%") === 0 ) { //模糊匹配:结尾固定
filterExpr = filterExpr.replace(/%/g,"")+"$";
filterExpr = new RegExp(filterExpr);
} else if( filterExprLen > 0 & filterExpr.indexOf("%") === 0 & filterExpr.lastIndexOf("%") === filterExprLen-1 ) { //模糊匹配:中间固定
filterExpr = filterExpr.replace(/%/g,"");
filterExpr = new RegExp(filterExpr);
} else {}
arr_header[v_col-1] = filterExpr;
}
var v_flag, v_value1, v_value2;
for(v_row=3;v_row<rowCount;v_row++)
{
v_flag = 0;
for(v_col=1;v_col<=maxFilterCol;v_col++)
{
v_value1 = arr_header[v_col-1];
if(v_value1 == ""||text == "")
continue;
v_value2 = dCell.GetCellString(v_col,v_row,0).toUpperCase();
/*if( v_value2.indexOf(v_value1) == -1 ){
v_flag = 1;
break;
}*/
//如果精确查询和模糊查询都不匹配,则标记为隐藏
//alert(v_value1 + " : " +v_value2);
if ( v_value1.constructor === String & v_value1 !== v_value2 ) {
v_flag = 1;
break;
} else if ( v_value1.constructor === RegExp & !(v_value1.test(v_value2)) ) {
v_flag = 1;
break;
} else {}
}
if(v_flag == 1)
dCell.SetRowHidden(v_row,v_row);
else
dCell.SetRowUnHidden(v_row,v_row);
}
}
}