/* 炼钢实绩查询及录入的相关常量和函数 */ /**************************************************************************************************************/ var METALFLAG = false;//炼钢实绩表查询及录入中,判断铁合金实绩表是否更新 var NONMETALFLAG = false;//炼钢实绩表查询及录入中,判断辅料实绩表是否更新 var SCRAPFLAG = false;//炼钢实绩表查询及录入中,判断废料实绩表是否更新 var SELECTFLAG = false;//执行查询后才能进行更新操作的标记 var HNUMBER = 11; //铁合金CODE有11个 var BNUMBER = 14; //辅原料CODE有14个 var SNUMBER = 5; //废料CODE共有5个 /***************************************************************************************************************/ /***************************************************************************************************************/ /* /*1) dynamicChemColumn /*2) matchChargeNo /*3) caiLiaoSelect /* /***************************************************************************************************************/ function CurentYear(){ var now = new Date(); var yy = now.getYear(); return yy; } function CurentMonth(){ var clock = ""; var now = new Date(); var mm = now.getMonth()+1; if(mm < 10) clock += '0'; clock += mm + ""; return clock; } function CurentDate(){ var now = new Date(); var yy = now.getYear(); var mm = now.getMonth()+1; var dd = now.getDate(); var clock = yy + ""; if(mm < 10) clock += '0'; clock += mm + ""; if(dd < 10) clock += '0'; clock += dd + ""; return clock; } function CurentTime(){ var now = new Date(); var yy = now.getYear(); var mm = now.getMonth()+1; var dd = now.getDate(); var hh = now.getHours(); var mi = now.getMinutes(); var ss = now.getTime() % 60000; ss = (ss - (ss % 1000)) / 1000; var clock = yy + ""; if(mm < 10) clock += '0'; clock += mm + ""; if(dd < 10) clock += '0'; clock += dd + ""; if(hh < 10)clock += '0'; clock += hh + ""; if (mi < 10) clock += '0'; clock += mi + ""; if (ss < 10) clock += '0'; clock += ss + ""; return clock; } /** * @desc :datagrid中化学成分动态展示 * @param :datagridID * @author 王小炎 * @date 2009-1-13 */ function dynamicChemGridDisplay(gridID){ // delete the created columns,rows for(var i = gridID.cols ; i > 1 ; i--){ gridID.deleteColumn(1,false); } for(var i = gridID.rows ; i > 1 ; i--){ gridID.deleteRow(1,false); } var chmChildDatas = instance1.selectSingleNode("/root/resData/AAAAAA_VO/AAAAAA_Row").childNodes; if(chmChildDatas.length <1)return; // 成份表的行数-1 因为gridRows是数组的下标 从零开始 ,所以行数 = gridRows + 1 // 成份表的列数-1 因为gridCols是数组的下标 从零开始 ,所以列数 = gridCols + 1 var gridRows = 0; var gridCols = 0; // 遍历所有节点,获得最大的行下标,列下标,即为成份表的行 和 列数 while (tempNode = chmChildDatas.nextNode()){ if(parseInt(tempNode.nodeName.substr(3,1)) > gridRows)gridRows = parseInt(tempNode.nodeName.substr(3,1)); if(parseInt(tempNode.nodeName.substr(4,1)) > gridCols)gridCols = parseInt(tempNode.nodeName.substr(4,1)); } // 根据已经获得的成份表的行数 gridRows + 1 ,列数 gridCols + 1 定义一个数组,用来保存每一行的数据,包括列标题 var rowsArray = new Array(); for(var i = 0 ; i <= gridRows ; i++){ rowsArray[i] = new Array(); } // 必须加上这句 以为前面已经遍历过一次 相当于指针已经指导最后一条记录,必须重新赋值,从头开始遍历 chmChildDatas = instance1.selectSingleNode("/root/resData/AAAAAA_VO/AAAAAA_Row").childNodes; while (tempNode = chmChildDatas.nextNode()){ rowsArray[tempNode.nodeName.substr(3,1)][tempNode.nodeName.substr(4,1)] = tempNode.value; } // 动态生成列啊 for( var i = 0; i <= gridCols; i++){ gridID.addColumn("ref:" + rowsArray[0][i],false); gridID.caption = gridID.caption + "^" + rowsArray[0][i]; } // 根据获得的行数生成表的行数 for(var i = 0 ; i < gridRows ; i++){ gridID.addRow(false); } // 对表第一列的表头数据项赋值,目标值,最大值,最小值,1次处理 gridID.valueMatrix(1,0) = "目标值"; gridID.valueMatrix(2,0) = "最小值"; gridID.valueMatrix(3,0) = "最大值"; for(var i = 1 ; i <= (gridRows - 3) ; i++){ gridID.valueMatrix(i+3,0) = i + "次处理"; } // 对每个单元格赋值 for(var i = 1 ; i <= gridRows ; i++){ for(var j = 0 ; j <= gridCols ; j++){ gridID.valueMatrix(i,j+1) = rowsArray[i][j]; } } } /** * @desc :getDate 获取当前时间 * @param : * @author 王小炎 * @date 2009-2-21 * @return String YYYYMMDD */ function getData(){ var now = new Date(); var year = now.getYear(); var month = now.getMonth()+1; var date = now.getDate(); if(month < 10) month = "0" + month; nowData = year + month + date + ""; return nowData; } /** * @desc :datagrid中动态增加成分列 * @param :chemXpath 返回值(resData)的xpath * @author 梅贵平 * @date 2008-8-29 */ function dynamicChemColumn(chemXpath,gridID) { var datagridID = (typeof gridID == 'string')?document.controls(gridID):gridID; //获得CasChemResult_Row集合数 var nodeListChemResult_Row = instance1.selectNodes(chemXpath); //alert(typeof nodeListChemResult_Row); var numberChemResult_Row = nodeListChemResult_Row.length; // alert(numberCasChemResult_Row); if(numberChemResult_Row < 3 ) return;//无实绩值则退出 var childNodeChem; var nodeListChem = new Array(); for(var i=3; i <= numberChemResult_Row; i++) { //将各CasChemResult_Row对应的xPath生成为Node对象 childNodeChem = instance1.selectSingleNode(chemXpath+"["+i+"]"); //将各对象Node转换为NodeList集合对象 nodeListChem[i] = childNodeChem.childNodes; } //获得成分的数量(长度) var chemLength = instance1.selectSingleNode(chemXpath).childNodes.length; var BASICCOLUMN = 3; //增加列的caption和ref var BASICITEM = 3;//Max与Min不做为标准,从第三组开始 //判断每列值是否为空 for(var i=BASICCOLUMN; i < chemLength; i++)//列数 { var flag = false; //判断每一列的值是否全为空 for(var j=BASICITEM; j <=numberChemResult_Row; j++)//行数 { flag = (nodeListChem[j].item(i).value != "")||flag; } if(flag)//若i列有值存在 { var nodeName = nodeListChem[BASICITEM].item(i).nodeName; datagridID.addColumn("ref:"+nodeName+";",false); datagridID.caption = datagridID.caption+"^"+nodeName; } } } /** * @desc :判断炉次号格式是否匹配 * @param :strChargeNo 炉次号,为字符串类型 */ function matchChargeNo(strChargeNo) { var strReg = "^[J][\\d]{2}[-][^\\s]{6}$"; var reg = new RegExp(strReg); var flag = reg.test(strChargeNo); if(!flag) { window.alert("请输入正确的炉次号","提示"); } return flag; } /** * @desc :通过选择铁合金,辅料、废料实绩表中CODE,更新相应的CODE内容 * @param :gridID为datagrid的ID号,caiXpath如:"root/datagrid4/BofMetalResult_Row", * flag为标记变量,查询前的判断条件。一般设定它的值为:铁合金为metal,废物为scrap,辅料为nonMetal * @return :boolean */ function caiLiaoSelect(gridID,caiXpath,flag) { var datagridID = (typeof gridID == 'string')?document.controls(gridID):gridID; //当datagrid中值被改变且是第一列的值发生改变时,按MAINRAW_CD的值对该行进行查询,获得MAINRAW_CD_DESC和MAINRAW_WGT mainRowflag = true;//表示录入时候可更新或插入原料表中的更改记录 var itemNumber = datagridID.row-1; //判断当前是哪列 var codeStringNode = caiXpath+"["+itemNumber+"]/MAINRAW_CD"; var descStringNode = caiXpath+"["+itemNumber+"]/MAINRAW_CD_DESC"; var codeNode = instance1.selectSingleNode(codeStringNode);//生成node对象,准备赋值给reqData model.removenode("/root/reqData"); model.makeValue("/root/reqData/FLAG",flag); //标记变量,查询前的判断条件 model.makeValue("/root/reqData/MAINRAW_CD",codeNode.nodeValue);//查询条件,获得原料CODE commSubmit("UIG020COMM-service","searchWk","glueAction.do");//按上面3条件查询 var descResStrNode = "/root/resData/CommResult_VO/CommResult_Row/CD_DESC";//查询后生成的MAINRAW_CD_DESC节点 var descResNode = instance1.selectSingleNode(descResStrNode); if(descResNode != null ) { var descValue = descResNode.nodeValue ;//获得节点MAINRAW_CD_DESC的值 model.setValue(descStringNode,descValue); } else { model.setValue(descStringNode,""); //alert("descResNode is null"); } model.setValue(codeStringNode,codeNode.nodeValue);//更新下拉框显示的值 model.refresh(); } /* */ function InitParams(node) { if (typeof node == "undefined" && typeof node != "object") return; model.removenode("/root/initData/rcvInfo"); model.makeNode("/root/initData/rcvInfo"); var nodeList = node.childNodes; for (var i = 0; i < nodeList.length; i++) model.instances(0).selectSingleNode("/root/initData/rcvInfo").appendChild(nodeList.item(i)); }