6a913faaa07b6cda8be035a9cbff76e0a86c3564.svn-base 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. /* 炼钢实绩查询及录入的相关常量和函数 */
  2. /**************************************************************************************************************/
  3. var METALFLAG = false;//炼钢实绩表查询及录入中,判断铁合金实绩表是否更新
  4. var NONMETALFLAG = false;//炼钢实绩表查询及录入中,判断辅料实绩表是否更新
  5. var SCRAPFLAG = false;//炼钢实绩表查询及录入中,判断废料实绩表是否更新
  6. var SELECTFLAG = false;//执行查询后才能进行更新操作的标记
  7. var HNUMBER = 11; //铁合金CODE有11个
  8. var BNUMBER = 14; //辅原料CODE有14个
  9. var SNUMBER = 5; //废料CODE共有5个
  10. /***************************************************************************************************************/
  11. /***************************************************************************************************************/
  12. /*
  13. /*1) dynamicChemColumn
  14. /*2) matchChargeNo
  15. /*3) caiLiaoSelect
  16. /*
  17. /***************************************************************************************************************/
  18. function CurentYear(){
  19. var now = new Date();
  20. var yy = now.getYear();
  21. return yy;
  22. }
  23. function CurentMonth(){
  24. var clock = "";
  25. var now = new Date();
  26. var mm = now.getMonth()+1;
  27. if(mm < 10) clock += '0';
  28. clock += mm + "";
  29. return clock;
  30. }
  31. function CurentDate(){
  32. var now = new Date();
  33. var yy = now.getYear();
  34. var mm = now.getMonth()+1;
  35. var dd = now.getDate();
  36. var clock = yy + "";
  37. if(mm < 10) clock += '0';
  38. clock += mm + "";
  39. if(dd < 10) clock += '0';
  40. clock += dd + "";
  41. return clock;
  42. }
  43. function CurentTime(){
  44. var now = new Date();
  45. var yy = now.getYear();
  46. var mm = now.getMonth()+1;
  47. var dd = now.getDate();
  48. var hh = now.getHours();
  49. var mi = now.getMinutes();
  50. var ss = now.getTime() % 60000;
  51. ss = (ss - (ss % 1000)) / 1000;
  52. var clock = yy + "";
  53. if(mm < 10) clock += '0';
  54. clock += mm + "";
  55. if(dd < 10) clock += '0';
  56. clock += dd + "";
  57. if(hh < 10)clock += '0';
  58. clock += hh + "";
  59. if (mi < 10) clock += '0';
  60. clock += mi + "";
  61. if (ss < 10) clock += '0';
  62. clock += ss + "";
  63. return clock;
  64. }
  65. /**
  66. * @desc :datagrid中化学成分动态展示
  67. * @param :datagridID
  68. * @author 王小炎
  69. * @date 2009-1-13
  70. */
  71. function dynamicChemGridDisplay(gridID){
  72. // delete the created columns,rows
  73. for(var i = gridID.cols ; i > 1 ; i--){
  74. gridID.deleteColumn(1,false);
  75. }
  76. for(var i = gridID.rows ; i > 1 ; i--){
  77. gridID.deleteRow(1,false);
  78. }
  79. var chmChildDatas = instance1.selectSingleNode("/root/resData/AAAAAA_VO/AAAAAA_Row").childNodes;
  80. if(chmChildDatas.length <1)return;
  81. // 成份表的行数-1 因为gridRows是数组的下标 从零开始 ,所以行数 = gridRows + 1
  82. // 成份表的列数-1 因为gridCols是数组的下标 从零开始 ,所以列数 = gridCols + 1
  83. var gridRows = 0;
  84. var gridCols = 0;
  85. // 遍历所有节点,获得最大的行下标,列下标,即为成份表的行 和 列数
  86. while (tempNode = chmChildDatas.nextNode()){
  87. if(parseInt(tempNode.nodeName.substr(3,1)) > gridRows)gridRows = parseInt(tempNode.nodeName.substr(3,1));
  88. if(parseInt(tempNode.nodeName.substr(4,1)) > gridCols)gridCols = parseInt(tempNode.nodeName.substr(4,1));
  89. }
  90. // 根据已经获得的成份表的行数 gridRows + 1 ,列数 gridCols + 1 定义一个数组,用来保存每一行的数据,包括列标题
  91. var rowsArray = new Array();
  92. for(var i = 0 ; i <= gridRows ; i++){
  93. rowsArray[i] = new Array();
  94. }
  95. // 必须加上这句 以为前面已经遍历过一次 相当于指针已经指导最后一条记录,必须重新赋值,从头开始遍历
  96. chmChildDatas = instance1.selectSingleNode("/root/resData/AAAAAA_VO/AAAAAA_Row").childNodes;
  97. while (tempNode = chmChildDatas.nextNode()){
  98. rowsArray[tempNode.nodeName.substr(3,1)][tempNode.nodeName.substr(4,1)] = tempNode.value;
  99. }
  100. // 动态生成列啊
  101. for( var i = 0; i <= gridCols; i++){
  102. gridID.addColumn("ref:" + rowsArray[0][i],false);
  103. gridID.caption = gridID.caption + "^" + rowsArray[0][i];
  104. }
  105. // 根据获得的行数生成表的行数
  106. for(var i = 0 ; i < gridRows ; i++){
  107. gridID.addRow(false);
  108. }
  109. // 对表第一列的表头数据项赋值,目标值,最大值,最小值,1次处理
  110. gridID.valueMatrix(1,0) = "目标值";
  111. gridID.valueMatrix(2,0) = "最小值";
  112. gridID.valueMatrix(3,0) = "最大值";
  113. for(var i = 1 ; i <= (gridRows - 3) ; i++){
  114. gridID.valueMatrix(i+3,0) = i + "次处理";
  115. }
  116. // 对每个单元格赋值
  117. for(var i = 1 ; i <= gridRows ; i++){
  118. for(var j = 0 ; j <= gridCols ; j++){
  119. gridID.valueMatrix(i,j+1) = rowsArray[i][j];
  120. }
  121. }
  122. }
  123. /**
  124. * @desc :getDate 获取当前时间
  125. * @param :
  126. * @author 王小炎
  127. * @date 2009-2-21
  128. * @return String YYYYMMDD
  129. */
  130. function getData(){
  131. var now = new Date();
  132. var year = now.getYear();
  133. var month = now.getMonth()+1;
  134. var date = now.getDate();
  135. if(month < 10) month = "0" + month;
  136. nowData = year + month + date + "";
  137. return nowData;
  138. }
  139. /**
  140. * @desc :datagrid中动态增加成分列
  141. * @param :chemXpath 返回值(resData)的xpath
  142. * @author 梅贵平
  143. * @date 2008-8-29
  144. */
  145. function dynamicChemColumn(chemXpath,gridID)
  146. {
  147. var datagridID = (typeof gridID == 'string')?document.controls(gridID):gridID;
  148. //获得CasChemResult_Row集合数
  149. var nodeListChemResult_Row = instance1.selectNodes(chemXpath); //alert(typeof nodeListChemResult_Row);
  150. var numberChemResult_Row = nodeListChemResult_Row.length; // alert(numberCasChemResult_Row);
  151. if(numberChemResult_Row < 3 ) return;//无实绩值则退出
  152. var childNodeChem;
  153. var nodeListChem = new Array();
  154. for(var i=3; i <= numberChemResult_Row; i++)
  155. {
  156. //将各CasChemResult_Row对应的xPath生成为Node对象
  157. childNodeChem = instance1.selectSingleNode(chemXpath+"["+i+"]");
  158. //将各对象Node转换为NodeList集合对象
  159. nodeListChem[i] = childNodeChem.childNodes;
  160. }
  161. //获得成分的数量(长度)
  162. var chemLength = instance1.selectSingleNode(chemXpath).childNodes.length;
  163. var BASICCOLUMN = 3; //增加列的caption和ref
  164. var BASICITEM = 3;//Max与Min不做为标准,从第三组开始
  165. //判断每列值是否为空
  166. for(var i=BASICCOLUMN; i < chemLength; i++)//列数
  167. {
  168. var flag = false;
  169. //判断每一列的值是否全为空
  170. for(var j=BASICITEM; j <=numberChemResult_Row; j++)//行数
  171. {
  172. flag = (nodeListChem[j].item(i).value != "")||flag;
  173. }
  174. if(flag)//若i列有值存在
  175. {
  176. var nodeName = nodeListChem[BASICITEM].item(i).nodeName;
  177. datagridID.addColumn("ref:"+nodeName+";",false);
  178. datagridID.caption = datagridID.caption+"^"+nodeName;
  179. }
  180. }
  181. }
  182. /**
  183. * @desc :判断炉次号格式是否匹配
  184. * @param :strChargeNo 炉次号,为字符串类型
  185. */
  186. function matchChargeNo(strChargeNo)
  187. {
  188. var strReg = "^[J][\\d]{2}[-][^\\s]{6}$";
  189. var reg = new RegExp(strReg);
  190. var flag = reg.test(strChargeNo);
  191. if(!flag)
  192. {
  193. window.alert("请输入正确的炉次号","提示");
  194. }
  195. return flag;
  196. }
  197. /**
  198. * @desc :通过选择铁合金,辅料、废料实绩表中CODE,更新相应的CODE内容
  199. * @param :gridID为datagrid的ID号,caiXpath如:"root/datagrid4/BofMetalResult_Row",
  200. * flag为标记变量,查询前的判断条件。一般设定它的值为:铁合金为metal,废物为scrap,辅料为nonMetal
  201. * @return :boolean
  202. */
  203. function caiLiaoSelect(gridID,caiXpath,flag)
  204. {
  205. var datagridID = (typeof gridID == 'string')?document.controls(gridID):gridID;
  206. //当datagrid中值被改变且是第一列的值发生改变时,按MAINRAW_CD的值对该行进行查询,获得MAINRAW_CD_DESC和MAINRAW_WGT
  207. mainRowflag = true;//表示录入时候可更新或插入原料表中的更改记录
  208. var itemNumber = datagridID.row-1; //判断当前是哪列
  209. var codeStringNode = caiXpath+"["+itemNumber+"]/MAINRAW_CD";
  210. var descStringNode = caiXpath+"["+itemNumber+"]/MAINRAW_CD_DESC";
  211. var codeNode = instance1.selectSingleNode(codeStringNode);//生成node对象,准备赋值给reqData
  212. model.removenode("/root/reqData");
  213. model.makeValue("/root/reqData/FLAG",flag); //标记变量,查询前的判断条件
  214. model.makeValue("/root/reqData/MAINRAW_CD",codeNode.nodeValue);//查询条件,获得原料CODE
  215. commSubmit("UIG020COMM-service","searchWk","glueAction.do");//按上面3条件查询
  216. var descResStrNode = "/root/resData/CommResult_VO/CommResult_Row/CD_DESC";//查询后生成的MAINRAW_CD_DESC节点
  217. var descResNode = instance1.selectSingleNode(descResStrNode);
  218. if(descResNode != null )
  219. {
  220. var descValue = descResNode.nodeValue ;//获得节点MAINRAW_CD_DESC的值
  221. model.setValue(descStringNode,descValue);
  222. }
  223. else
  224. {
  225. model.setValue(descStringNode,""); //alert("descResNode is null");
  226. }
  227. model.setValue(codeStringNode,codeNode.nodeValue);//更新下拉框显示的值
  228. model.refresh();
  229. }
  230. /*
  231. */
  232. function InitParams(node)
  233. {
  234. if (typeof node == "undefined" && typeof node != "object") return;
  235. model.removenode("/root/initData/rcvInfo");
  236. model.makeNode("/root/initData/rcvInfo");
  237. var nodeList = node.childNodes;
  238. for (var i = 0; i < nodeList.length; i++)
  239. model.instances(0).selectSingleNode("/root/initData/rcvInfo").appendChild(nodeList.item(i));
  240. }