javascript:eval function
function UltraWebGridText_AfterExitEditModeHandler(gridName, cellId)
{
try
{
var grid = igtbl_getGridById(gridName);
var cell = igtbl_getCellById(cellId);
/// 1.Find the cell of TotalNet(Be filled after calculation)
var TotalNet_ColumnKey ='';
for(var i=0;i<grid.Bands[0].Columns.length;i++)
{
TotalNet_ColumnKey = grid.Bands[0].Columns[i].Key;
if(TotalNet_ColumnKey.indexOf('|TotalNet|') > -1)
{
break; //Found!
}
}
if(TotalNet_ColumnKey == '') {return;}
var TotalNet_ColumnKey_Value = TotalNet_ColumnKey.replace(/\L2/g,'L2Value');
if(TotalNet_ColumnKey_Value == '') {return;}
var cell_TotalNet = cell.getRow().getCellFromKey(TotalNet_ColumnKey);
var cell_TotalNet_Value = cell.getRow().getCellFromKey(TotalNet_ColumnKey_Value);
if(typeof(cell_TotalNet) == 'undefined' || typeof(cell_TotalNet_Value) == 'undefined') { return; }
/// 2.Get the TotalNet's Formula.
//alert(TotalNet_ColumnKey);
var Array1 = TotalNet_ColumnKey.split('|'); // L2|143|../popup/abc.aspx|TotalNet|Column1+Column2,Column1$Column2
var FormulaStr ='';
if(Array1.length == 5)
{
FormulaStr = Array1[4];
}
if(FormulaStr == '') {return;}
/// 3.According to the formula,find all the related columns be calculated.(Split)
var Array2 = FormulaStr.split(','); //Column1+Column2,Column1$Column2
var Expression =''; //Calcuation real formula: Column1+Column2
if(Array2.length ==2)
{
Expression = Array2[0];
if(Expression =='') {return;}
var ColumnsList = '';
ColumnsList = Array2[1];
if(ColumnsList =='') {return;}
var Array3 = ColumnsList.split('$');
for(var i=0;i< Array3.length;i++)
{
var ColumnName = Array3[i];
ColumnName = trimAll(ColumnName);
//alert(ColumnName);continue;
if (ColumnName != '')
{
//Get the ColumnName's Value
var ColumnKey ='';
for(var j=0;j<grid.Bands[0].Columns.length;j++)
{
ColumnKey = grid.Bands[0].Columns[j].Key;
if(ColumnKey.indexOf('|' + ColumnName + '|') > -1)
{
break;
}
}
if(ColumnKey ==''){return;} //If anyone Column can't be found,return!
var cell_ColumnKey = cell.getRow().getCellFromKey(ColumnKey);
if(typeof(cell_ColumnKey) =='undefined') {return;}
var value = cell_ColumnKey.getValue();
//alert(value);
if(value ==null || trimAll(value) == '')
{
value = '0'; //Note: must be '0' can't be 0!
}
Expression = replaceSubstring(Expression,ColumnName,value);
}
}
//Calculate by Javascript
//alert(Expression);
var Sum = eval(Expression);
//alert(Sum);
cell_TotalNet.setValue(Sum);
cell_TotalNet_Value.setValue(Sum);
}
}
catch(e)
{
}
}
function UltraWebGridText_AfterExitEditModeHandler(gridName, cellId)
{
try
{
var grid = igtbl_getGridById(gridName);
var cell = igtbl_getCellById(cellId);
/// 1.Find the cell of TotalNet(Be filled after calculation)
var TotalNet_ColumnKey ='';
for(var i=0;i<grid.Bands[0].Columns.length;i++)
{
TotalNet_ColumnKey = grid.Bands[0].Columns[i].Key;
if(TotalNet_ColumnKey.indexOf('|TotalNet|') > -1)
{
break; //Found!
}
}
if(TotalNet_ColumnKey == '') {return;}
var TotalNet_ColumnKey_Value = TotalNet_ColumnKey.replace(/\L2/g,'L2Value');
if(TotalNet_ColumnKey_Value == '') {return;}
var cell_TotalNet = cell.getRow().getCellFromKey(TotalNet_ColumnKey);
var cell_TotalNet_Value = cell.getRow().getCellFromKey(TotalNet_ColumnKey_Value);
if(typeof(cell_TotalNet) == 'undefined' || typeof(cell_TotalNet_Value) == 'undefined') { return; }
/// 2.Get the TotalNet's Formula.
//alert(TotalNet_ColumnKey);
var Array1 = TotalNet_ColumnKey.split('|'); // L2|143|../popup/abc.aspx|TotalNet|Column1+Column2,Column1$Column2
var FormulaStr ='';
if(Array1.length == 5)
{
FormulaStr = Array1[4];
}
if(FormulaStr == '') {return;}
/// 3.According to the formula,find all the related columns be calculated.(Split)
var Array2 = FormulaStr.split(','); //Column1+Column2,Column1$Column2
var Expression =''; //Calcuation real formula: Column1+Column2
if(Array2.length ==2)
{
Expression = Array2[0];
if(Expression =='') {return;}
var ColumnsList = '';
ColumnsList = Array2[1];
if(ColumnsList =='') {return;}
var Array3 = ColumnsList.split('$');
for(var i=0;i< Array3.length;i++)
{
var ColumnName = Array3[i];
ColumnName = trimAll(ColumnName);
//alert(ColumnName);continue;
if (ColumnName != '')
{
//Get the ColumnName's Value
var ColumnKey ='';
for(var j=0;j<grid.Bands[0].Columns.length;j++)
{
ColumnKey = grid.Bands[0].Columns[j].Key;
if(ColumnKey.indexOf('|' + ColumnName + '|') > -1)
{
break;
}
}
if(ColumnKey ==''){return;} //If anyone Column can't be found,return!
var cell_ColumnKey = cell.getRow().getCellFromKey(ColumnKey);
if(typeof(cell_ColumnKey) =='undefined') {return;}
var value = cell_ColumnKey.getValue();
//alert(value);
if(value ==null || trimAll(value) == '')
{
value = '0'; //Note: must be '0' can't be 0!
}
Expression = replaceSubstring(Expression,ColumnName,value);
}
}
//Calculate by Javascript
//alert(Expression);
var Sum = eval(Expression);
//alert(Sum);
cell_TotalNet.setValue(Sum);
cell_TotalNet_Value.setValue(Sum);
}
}
catch(e)
{
}
}
浙公网安备 33010602011771号