行式填报表删除某行流水号更新方法
流水号其实是自动计算的一种,是一种特殊的自动计算。它是按照一定的递增或者递减规则,在当前值的基础上进行递增或者递减后算出来的值。因此,流水号在刚开始有一个初值,即第一次计算前的当前值。以后就把每一次计算出的新值作为当前值。
我们在实际应用中,遇到这样一种情况,当在页面中删除一行时,想让流水号重新计算,例如之前流水号是1.2.3.4.5,删除第3行后,当前页面流水号自动变为1,2,3,4。
下面我们来介绍一下如何来实现这个功能。
首先,制作一张带有流水号的行式填报表:
更新属性设置:
流水号初值设定:
流水号单元格的自动计算设置:
接着,我们需要编写一下页面的js函数,来完成自动更新流水号的过程:
function _updateVar(){ //获取当前单元格的原值与新值
var oldvalue=”"; //单元格修改前的原值
var tableRowNum = document.getElementById( “report1″ ).rows.length;
if(report1.currCell){
//取选中单元格的原值
oldvalue=report1.currCell.value;
var editValue = oldvalue;
//当前单元格的id
var currId = report1.currCell.id;
//取得当前行号
var currRowNum = currId.substr(9,10);
//循环的行数
var forLength = tableRowNum – currRowNum;
for (var i = 0;i< forLength;i++){
//将更新后的流水号计算出来
var cellN = parseInt(currRowNum) + parseInt(i) + 1;
var cell = document.getElementById( “report1_A”+cellN );
var cellV = parseInt(editValue) + i;
//设置更新后的流水号值
_setEditingValue( cell, cellV.toString(), cellV.toString() );
//删除行
_deleteRow( report1 );
}
函数的原理就是,取得删除行的当前流水号,然后把当前行后面的行的流水号按照顺序重新设置一下,然后把选中的这行删除。
我们看一下页面中的效果:
目前选中第三行,然后点按钮调用上面写的js:
我们看到,第四行到第六行的流水号重新计算并按顺序更新了。
这时点击提交即可保存数据了。