var mygrid_recv_2; var page_count = 5; var column_count; var jsonWmsZXInfoObj; var changeCount = 0; //两端去空格函数 String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); } function $(id) { return document.getElementById(id); } function initWinScreen2() { var winScreenHeight = 0; var winScreenWidth = 0; if (window.screen.height) { winScreenHeight = window.screen.height; } if (window.screen.width) { winScreenWidth = window.screen.width; } if (winScreenWidth >= 1440 && winScreenWidth >= 900) { document.getElementById("mygrid_recv_2").style.height = "580px"; } else if (winScreenWidth >= 1366 && winScreenWidth >= 768) { document.getElementById("mygrid_recv_2").style.height = "340px"; } else if (winScreenWidth >= 1024 && winScreenWidth >= 768) { document.getElementById("mygrid_recv_2").style.height = "300px"; } } function doInitRecvGrid2() { mygrid_recv_2 = new dhtmlXGridObject('mygrid_recv_2'); mygrid_recv_2.setImagePath("../images/"); mygrid_recv_2.setSkin("xp"); // 0 1 2 3 4 5 6 7 8 9 10 11 //mygrid_recv_2.setHeader(",计费等级,费用类别,计费区间,单价,增值价,单位,结束计费日期,备注,创建人,创建时间,委托单号"); // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 mygrid_recv_2.setHeader(",计费等级,费用类别,开始计费日期,结束计费日期,计费区间,单位,单价,出库量,仓储费,备注,创建人,创建时间,关联出库明细GID"); mygrid_recv_2.setInitWidths("30,80,80,100,100,80,80,80,80,80,120,80,120,0"); mygrid_recv_2.setColAlign("center,center,center,center,center,center,center,center,center,center,center,center,center,center"); mygrid_recv_2.setColSorting("na,str,str,str,str,str,str,str,str,str,str,str,str,str"); mygrid_recv_2.setColTypes("ch,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro"); //mygrid_recv_2.setColTypes("ch,ro,co,ed,ed,ed,co,ed,ro,ed,ed,ro,ro,ro"); var ASSOCIATEDNO = ASSOCIATEDNO = commonGridObj_wmsin.getGridObj().getSelectedRowId(); if (ASSOCIATEDNO == null) { ASSOCIATEDNO = ""; } var urlVal = "../SeaiFee/WmsRateDetailGridSource.aspx?read=exist&showcount=1&id=" + $("h_outgid").value + "&associatedno=" + ASSOCIATEDNO + "&val=" + newGuid(); var loader = dhtmlxAjax.getSync(urlVal); var loadVal = loader.xmlDoc.responseText; loader = null; if (parseInt(loadVal) == 1) { mygrid_recv_2.loadXML("../SeaiFee/WmsRateDetailGridSource.aspx?read=init&showcount=1&id=" + $("h_outgid").value + "&associatedno=" + ASSOCIATEDNO + "&val=" + newGuid()); setTimeout(function() { //ReShowLabel2(mygrid_recv_2); }, 200); } mygrid_recv_2.init(); mygrid_recv_2.enableEditEvents(true, false, true); mygrid_recv_2.enableMultiselect(true); mygrid_recv_2.enableKeyboardSupport(true); var pushVal = ""; var pressRecord = ""; var pressRowIndex = -1; var pressCellIndex = -1; var pressCount = 0; var isExchange = false; var shiftCount = 0; var isDelete = 0; var flagFilter = 0; var flagTab = 0; var flagEnter = 0; var flagDelete = 0; mygrid_recv_2.attachEvent("onEditCell", function (stage, rId, cInd, nValue, oValue) { if (cInd == 0) { return true; } return false; }); /* //手动编写Grid控件编辑事件,由于免费控件没有提供完整的编辑判断功能,现特此做更改 mygrid_recv_2.attachEvent("onEditCell", function (stage, rId, cInd, nValue, oValue) { var newCheckValue = false; //初始化状态 if (stage == 0) { var selectedId = mygrid_recv_2.getSelectedRowId(); var rowIndex = mygrid_recv_2.getRowIndex(selectedId); var oldVal = mygrid_recv_2.cellByIndex(rowIndex, 0).getValue().trim(); return true; } if (stage == 1) { var rowIndex = mygrid_recv_2.getRowIndex(rId); var txtEdit; for (i = 0; i < document.all.length; i++) { if (document.all(i).tagName == "TEXTAREA") { txtEdit = document.all(i); txtEdit.focus(); txtEdit.select(); break; } } } //如果编辑结束 if (stage == 2) { //获取当前RowID var selectedId = mygrid_recv_2.getSelectedRowId(); //获取当前RowIndex var rowIndex = mygrid_recv_2.getRowIndex(selectedId); //获取当前CellIndex(ind) var ind = mygrid_recv_2.getSelectedCellIndex(); //触发操作事件前获取单元值 var oldVal = mygrid_recv_2.cellByIndex(rowIndex, ind).getValue(); if (cInd == 5) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, cInd).getValue(); if (cellVal.trim() != "") { var isint = IsNum(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, cInd).setLabel(""); //alert("计费区间格式有误!"); return true; } } return true; } else if (cInd == 7 || cInd == 9) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, cInd).getValue(); if (cellVal.trim() != "") { var isint = IsNum(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, cInd).setLabel("0.00"); //alert("单价或出库量或仓储费用格式有误!"); return true; } } return true; } else if (cInd == 3 || cInd == 4) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, cInd).getValue(); //日期完整检查 if (cellVal.trim() != "") { var isint = CheckDate(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, cInd).setLabel(""); alert("日期格式有误!"); return true; } } return true; } else { return true; } } }); //键盘操作事件 mygrid_recv_2.attachEvent("onKeyPress", function (code, cFlag, sFlag) { // if ($("hdEnabled").value.trim() == "false") { // return false; // } // //onKeyPress begin //获取当前RowID var selectedId = mygrid_recv_2.getSelectedRowId(); //获取当前RowIndex var rowIndex = mygrid_recv_2.getRowIndex(selectedId); //获取当前CellIndex(ind) var ind = mygrid_recv_2.getSelectedCellIndex(); //触发操作事件前获取单元值 var oldVal = mygrid_recv_2.cellByIndex(rowIndex, ind).getValue(); //获取编辑单元 var txtEdit; for (i = 0; i < document.all.length; i++) { if (document.all(i).tagName == "TEXTAREA") { txtEdit = document.all(i); break; } } if (code == 9)//Tab键 { var colCount = mygrid_recv_2.getColumnsNum(); var rowCount = mygrid_recv_2.getRowsNum(); if (ind == 5) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, ind).getValue(); if (cellVal.trim() != "") { var isint = IsNum(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, ind).setLabel(""); //alert("计费区间格式有误!"); return true; } } } else if (ind == 7 || ind == 9) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, ind).getValue(); if (cellVal.trim() != "") { var isint = IsNum(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, ind).setLabel("0.00"); //alert("单价或出库量或仓储费格式有误!"); return true; } } } else if (ind == 3 || ind == 4) { var cellVal = mygrid_recv_2.cellByIndex(rowIndex, ind).getValue(); if (cellVal.trim() != "") { //日期完整检查 var isint = CheckDate(cellVal); if (!isint) { mygrid_recv_2.cellByIndex(rowIndex, ind).setLabel(""); //alert("日期格式有误!"); return true; } } return true; } if (ind < colCount) { isExchange = false; pressRecord = ""; pressRowIndex = -1; pressCellIndex = -1; var cInd = ind; var rId = selectedId; mygrid_recv_2.selectCell(rowIndex, ind + 1, true, true); mygrid_recv_2.editCell(); if (ind == colCount - 1) { if (rowIndex < rowCount) { mygrid_recv_2.editStop(true); mygrid_recv_2.clearSelection(); mygrid_recv_2.selectCell(rowIndex + 1, 2, true, true); mygrid_recv_2.editCell(); } else { return; } } else { return; } } } else if (code >= 65 && code <= 90) {//如果是输入英文字符 if (ind == 8) { return true; } } else if (code == 8)//delete { return true; } else if (code == 40)//向下方向键 { if (ind == 2 || ind == 6) { return true; } var rowCount = mygrid_recv_2.getRowsNum(); mygrid_recv_2.clearSelection(); mygrid_recv_2.editStop(); if (rowIndex == (rowCount - 1)) { addRecvRow2(); } else { mygrid_recv_2.selectCell(rowIndex + 1, 2, true, true); mygrid_recv_2.editCell(); } } else if (code == 38)//向上箭头 { if (ind == 2 || ind == 6) { return true; } if (rowIndex > 0) { mygrid_recv_2.clearSelection(); mygrid_recv_2.editStop(); mygrid_recv_2.selectCell(rowIndex - 1, 2, true, true); mygrid_recv_2.editCell(); } } else { return true; } }); */ setTimeout(function() { markStatusColor2(mygrid_recv_2); }, 400); } //讲下拉列表Combo所有生成Array数组 function setComboByArray2(gridNewObj, comboObj, rowGID, colIndex) { var comboVal_arg = new Array(); comboVal_arg = comboObj.getKeys(); var newCombo = gridNewObj.getCustomCombo(rowGID, colIndex); for (var i = 0; i < comboVal_arg.length; i++) { var txtValue = comboObj.get(comboVal_arg[i]); newCombo.put(comboVal_arg[i], txtValue); } } function addRecvRow2() { var ASSOCIATEDNO = commonGridObj_wmsin.getGridObj().getSelectedRowId(); if (ASSOCIATEDNO == null) { $("recvContainer_2").value = ""; alert("请先选择要添加费率的出库明细!"); return -1; } // if (mygrid_recv_2.getRowsNum() > 0) { var newId = newGuid(); //获取插入新纪录位置 var rowCount = mygrid_recv_2.getRowsNum(); // // 1 2 3 4 5 6 7 8 9 10 11 //计费等级,费用类别,计费区间,单价,增值价,单位,结束计费日期,备注,创建人,创建时间,委托单号 // 1 2 3 4 5 6 7 8 9 10 11 12 //计费等级,费用类别,开始计费日期,结束计费日期,计费区间,单位,单价,出库量,仓储费,备注,创建人,创建时间 // var fylb = "收"; var dw = "吨天"; if (rowCount > 0) { fylb = mygrid_recv_2.cellByIndex(rowCount - 1, 2).getValue(); if (fylb == 1) { fylb = "收"; //费用类别 } else if (fylb == 2) { fylb = "付"; //费用类别 } dw = mygrid_recv_2.cellByIndex(rowCount - 1, 6).getValue(); } mygrid_recv_2.addRow(newId, [0, rowCount + 1, fylb, "", "", "", dw, "0.00", "0.00", "0.00", "", "", "", ASSOCIATEDNO], rowCount); // mygrid_recv_2.clearSelection(); var rId = mygrid_recv_2.getRowId(rowCount - 1); var combo_customer; combo_customer = mygrid_recv_2.getCustomCombo(rId, 2); setComboByArray2(mygrid_recv_2, combo_customer, newId, 2); combo_customer = mygrid_recv_2.getCustomCombo(rId, 6); setComboByArray2(mygrid_recv_2, combo_customer, newId, 6); // mygrid_recv_2.editStop(true); mygrid_recv_2.selectCell(mygrid_recv_2.getRowIndex(newId), 2, true, true); mygrid_recv_2.editCell(); } else { var ASSOCIATEDNO = commonGridObj_wmsin.getGridObj().getSelectedRowId(); if (ASSOCIATEDNO == null) { $("recvContainer_2").value = ""; alert("请先选择要添加费率的出库明细!"); return -1; } mygrid_recv_2.loadXML("../SeaiFee/WmsRateDetailGridSource.aspx?read=add&showcount=1&id=" + $("h_outgid").value + "&associatedno=" + ASSOCIATEDNO + "&val=" + newGuid()); } } function deleteRecvRow2() { mygrid_recv_2.editStop(); // var selRowID = mygrid_recv_2.getCheckedRows(0); //所有选中的grid的id编号 var selGroup = new Array(); if (selRowID.indexOf(",") > 0) { selGroup = selRowID.split(","); } else { if (selRowID != null) { selGroup.push(selRowID); } } //查看是否有被选中的币别项 if (selGroup.length > 0) { if (window.confirm("您确定要将所选的删除吗?")) { var dg = new dialog(); dg.html = ""; dg.width = 200; dg.height = 100; dg.title = "标题"; dg.show(); for (var i = 0; i < selGroup.length; i++) { var rowIndex = mygrid_recv_2.getRowIndex(selGroup[i]); var cusName = mygrid_recv_2.cellByIndex(rowIndex, 1).getValue(); var urlVal = "../SeaiFee/WmsRateDetailGridSource.aspx?read=delete&gid=" + selGroup[i] + "&val=" + newGuid(); var loader = dhtmlxAjax.getSync(urlVal); var loadVal = loader.xmlDoc.responseText; if (loadVal > 0) { mygrid_recv_2.deleteRow(selGroup[i]); } else { mygrid_recv_2.deleteSelectedRows(); } } dg.close(); } } else { alert("未选中要操作的币别项"); } } function saveRecvChange2() { var BSNO = ""; BSNO = $("h_outgid").value.trim(); // if (BSNO == "") { // alert("请先保存入库信息!"); // return; // } // var cus = ""; if ($("txt_customer").value != null) { cus = $("txt_customer").value; } if (cus == "") { alert("货主不能为空"); return -1; } // mygrid_recv_2.editStop(); var jsonRateObj = null; for (var i = 0; i < mygrid_recv_2.getRowsNum(); i++) { var rowId = mygrid_recv_2.getRowId(i); var FEEGRADE = mygrid_recv_2.cellByIndex(i, 1).getValue(); //计费等级 //var FEEGRADE = i+1; //计费等级 var FEETYPE = mygrid_recv_2.cellByIndex(i, 2).getValue(); //费用类别 if (FEETYPE == "收") { FEETYPE = 1; //费用类别 } else if (FEETYPE == "付") { FEETYPE = 2; //费用类别 } var STARTBILLINGDATE = mygrid_recv_2.cellByIndex(i, 3).getValue(); //开始计费日期 var ENDBILLINGDATE = mygrid_recv_2.cellByIndex(i, 4).getValue(); //结束计费日期 var FEESCALE = mygrid_recv_2.cellByIndex(i, 5).getValue(); //计费区间 var FEEUNIT = mygrid_recv_2.cellByIndex(i, 6).getValue(); //计费单位 var FEEPRICE = mygrid_recv_2.cellByIndex(i, 7).getValue(); //单价 var GOODSPFSL = mygrid_recv_2.cellByIndex(i, 8).getValue(); //出库量 var OUTFEE = mygrid_recv_2.cellByIndex(i, 9).getValue(); //仓储费 var REMARK = mygrid_recv_2.cellByIndex(i, 10).getValue(); //备注 var ASSOCIATEDNO = mygrid_recv_2.cellByIndex(i, 13).getValue(); // // if (FEEUNIT.trim() == "") { $("recvContainer_2").value = ""; alert("费用类别不能为空"); return -1; } if (i == 0 && FEEPRICE == "") { FEEPRICE = 0; } if (parseInt(FEESCALE) == 0) { $("recvContainer_2").value = ""; alert("计费区间不能为零"); return -1; } if (STARTBILLINGDATE.trim() == "") { $("recvContainer_2").value = ""; alert("开始计费日期不能为空"); return -1; } if (ENDBILLINGDATE.trim() == "") { $("recvContainer_2").value = ""; alert("结束计费日期不能为空"); return -1; } // if (jsonRateObj == null) { var cacheBuffer = ""; cacheBuffer += "{"; cacheBuffer += "\"id\":\"" + rowId + "\","; cacheBuffer += "\"cus\":\"" + cus + "\","; cacheBuffer += "\"fgrade\":\"" + FEEGRADE + "\","; cacheBuffer += "\"feetype\":\"" + FEETYPE + "\","; cacheBuffer += "\"startbillingdate\":\"" + STARTBILLINGDATE + "\","; cacheBuffer += "\"endbillingdate\":\"" + ENDBILLINGDATE + "\","; cacheBuffer += "\"fscale\":\"" + FEESCALE + "\","; cacheBuffer += "\"funit\":\"" + FEEUNIT + "\","; cacheBuffer += "\"fprice\":\"" + FEEPRICE + "\","; cacheBuffer += "\"goodspfsl\":\"" + GOODSPFSL + "\","; cacheBuffer += "\"outfee\":\"" + OUTFEE + "\","; cacheBuffer += "\"remark\":\"" + REMARK + "\","; cacheBuffer += "\"associatedno\":\"" + ASSOCIATEDNO + "\""; cacheBuffer += "}"; var result = ""; result += "{\"rates\":["; result += cacheBuffer; result += "]}"; jsonRateObj = eval('(' + result + ')'); } else { var newRateRow = jsonRateObj.rates; newRateRow = { id: rowId, cus: cus, fgrade: FEEGRADE, feetype: FEETYPE, startbillingdate: STARTBILLINGDATE, endbillingdate: ENDBILLINGDATE, fscale: FEESCALE, funit: FEEUNIT, fprice: FEEPRICE, goodspfsl: GOODSPFSL, outfee: OUTFEE, remark: REMARK, associatedno: ASSOCIATEDNO }; jsonRateObj.rates.push(newRateRow); } } $("recvContainer_2").value = JSON.stringify(jsonRateObj); return 1; } function saveRecvChange3() { var fhz = saveRecvChange2(); if (fhz > -1) { $("h_post_2").value = 4; msgBox(); setTimeout(postEnter, 200); } } //post数据 function postEnter() { var myForm = document.getElementById("form1"); myForm.submit(); } function initGrid2() { doInitRecvGrid2(); } //放弃应收币别修改 重新加载页面 function recoverRecvChange2() { mygrid_recv_2.editStop(); var selRowID = mygrid_recv_2.getSelectedRowId(); //查看是否有被选中的项 if (selRowID != null) { var rowIndex = mygrid_recv_2.getRowIndex(selRowID); var status = mygrid_recv_2.cellByIndex(rowIndex, 0).getValue(); var cusName = mygrid_recv_2.cellByIndex(rowIndex, 1).getValue(); if (window.confirm("您确定放弃当前行的修改吗?")) { var dg = new dialog(); dg.html = ""; dg.width = 200; dg.height = 100; dg.title = "标题"; dg.show(); var urlVal = "../SeaiFee/WmsRateDetailGridSource.aspx?read=recovergid=" + selRowID + "&val=" + newGuid(); var loader = dhtmlxAjax.getSync(urlVal); var loadVal = loader.xmlDoc.responseText; if (!IsNum(loadVal)) { var recvArg = new Array(); recvArg = loadVal.split(","); var selRowIndex = mygrid_recv_2.getRowIndex(recvArg[0]); var colCount = mygrid_recv_2.getColumnsNum(); for (var i = 0; i < colCount; i++) { mygrid_recv_2.cellByIndex(selRowIndex, i).setValue(recvArg[i + 1]); } dg.close(); //alert("恢复成功"); //refreshRecv2();//刷新 } else { if (parseInt(loadVal) == -3) { mygrid_recv_2.deleteSelectedRows(); } dg.close(); } //ReShowLabel2(mygrid_recv_2); } else { return; } } else { alert("未选中要操作的币别项"); } } //下拉框内容显示value的值 function ReShowLabel2(gridObj) { var columnCount = gridObj.getColumnsNum(); var rowCount = gridObj.getRowsNum(); if (rowCount > 0) { for (var i = 0; i < rowCount; i++) { for (var j = 0; j < columnCount; j++) { // if (j == 3) { // var cellCurVal = gridObj.cellByIndex(i, j).getValue(); // gridObj.cellByIndex(i, j).setLabel(cellCurVal); // } } } } } function markStatusColor2(gridObj) { var count = gridObj.getRowsNum(); for (var i = 0; i < count; i++) { var status = gridObj.cellByIndex(i, 0).getValue(); var rowId = gridObj.getRowId(i); } } //刷新应收 function refreshRecv2() { doInitRecvGrid2(); } //全选框 function checkall2() { var checkStatus = $("ck_all").checked; if (checkStatus == 1) { var iCount = mygrid_recv_2.getRowsNum(); for (var i = 0; i < iCount; i++) { mygrid_recv_2.cellByIndex(i, 0).setValue(1); } } else { var iCount = mygrid_recv_2.getRowsNum(); for (var i = 0; i < iCount; i++) { mygrid_recv_2.cellByIndex(i, 0).setValue(0); } } } //获取GUID function newGuid() { var guid = ""; for (var i = 1; i <= 32; i++) { var n = Math.floor(Math.random() * 16.0).toString(16); guid += n; if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) guid += "-"; } return guid.toUpperCase(); } //------------------------------------------------------------------------------------------------------------------------ function clearNoNum2(valObj) { //先把非数字的都替换掉,除了数字和. valObj = valObj.replace(/[^\d.]/g, ""); //必须保证第一个为数字而不是. valObj = valObj.replace(/^\./g, ""); //保证只有出现一个.而没有多个. valObj = valObj.replace(/\.{2,}/g, "."); //保证.只出现一次,而不能出现两次以上 valObj = valObj.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); return valObj; } //是否为数字 function IsNum(val) { var re = /^[-\+]?\d+(\.\d+)?$/; if (!re.test(val)) { return false; } else { return true; } } //是否为数字,且数值格式是否正确 function IsNumFormat(val) { var re = /^[-\+]?\d+(\.\d+)?$/; if (!re.test(val)) { return false; } else { if (val.toString().indexOf(".") > 0) { val.toString().replace("-", ""); val.toString().replace("+", ""); if (val.toString().substr(0, 1) == "0" && val.toString().substr(0, 2) != "0.") { return false; } } else { var re1 = /^[-\+]+[1-9]+[0-9]*]*$/; if (!re1.test(val)) { re1 = /^[1-9]+[0-9]*]*$/; if (!re1.test(val)) { return false; } } } return true; } } //是否为整数 function IsIntFormat(val) { re1 = /^[1-9]+[0-9]*]*$/; if (!re1.test(val)) { return false; } return true; } // function getIsNum(x) { var str = x.value.trim(); if (str == "0") { return; } else if (str == "") { str = 0; x.value = 0; } else { var bl = IsNumFormat(str); if (!bl) { alert("数值格式错误!"); x.focus(); x.select(); } } }