在分配下一个发票行值时遇到问题。
我写了一段JavaScript来获取下一个值,但是不知何故它缺少下一个可用值,而仍然选择了最高值。
我需要的是最高或下一个可用数字,LineNo
是我需要的最高或下一个可用数字。
onGridBeforeEditLines: function (e) {//grid 2
var event123 = e;
var lineNo = 0;
var grid = $("#gridLines").data("kendoGrid");
$(grid.dataSource.data()).each(function (i, v) {
if (v != null) {
if (v.LineNo >= lineNo)
lineNo = v.LineNo; //Getting the highest value
}
});
lineNo++;
grid = $("#gridContracts").data("kendoGrid");
if (e.model.PaymentPeriodID == 0) {
var selectedItem = grid.dataItem(grid.select());
e.model.PaymentPeriodID = selectedItem.ID;
e.model.LineNo = lineNo; //setting the value to the grid
}
},
获得最高编号并将其加1似乎很好用。最高为3,因此4是下一个可用的行号。
当找到下一个可用号码时,它似乎不起作用。我删除了第2行,因此2应该是下一个可用的选项,但它仍然是最高的并添加1。
预先感谢您的帮助。
答案 0 :(得分:1)
if (v.LineNo > lineNo+1) { // then we skipped a space
// next open value is lineNo+1
lineNo = lineNo+1;
return false; // break loop
} else if (v.LineNo == lineNo+1) {
lineNo = v.LineNo; //Getting the next sequential value , keep looping
} else {
// lineNo should stay the same
}