a7382d74206d851f26c32c23ba5a62f80336cb66.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="../../css/body.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>
  6. <![CDATA[炼钢作业 >> 板坯库管理 >> 板坯库行车命令制订(UIG040043)]]>
  7. </xhtml:title>
  8. <model id="model1">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <formData>
  12. <FROM_YARD_ADDR/>
  13. <TO_YARD_ADDR/>
  14. <FROM_ADDR/>
  15. <TO_ADDR/>
  16. <SLAB_CNT>1</SLAB_CNT>
  17. <CRANE_NO/>
  18. </formData>
  19. <reqData/>
  20. <gridData>
  21. <grid1/>
  22. <grid2/>
  23. <grid3/>
  24. </gridData>
  25. <resData/>
  26. <reqData/>
  27. <preData/>
  28. <msgData>
  29. <MSG_CON/>
  30. </msgData>
  31. <tempData/>
  32. <tempNode/>
  33. <comboNode>
  34. <crNo/>
  35. </comboNode>
  36. </root>
  37. </instance>
  38. <script type="javascript" ev:event="xforms-ready">
  39. <![CDATA[
  40. model1.setValue("/root/formData/FROM_YARD_ADDR",model.getValue("/root/preData/fromData"));
  41. model1.setValue("/root/formData/TO_YARD_ADDR",model.getValue("/root/preData/toData"));
  42. model1.refresh();
  43. ]]>
  44. </script>
  45. </model>
  46. <script type="javascript">
  47. <![CDATA[
  48. // 每个跺位最多能重叠放置16块板坯
  49. var MAX_SLAB_CNT = 16;
  50. var SLAB_CNT = 0;
  51. function setComboChild(nodePath,nodeValue,comboId){
  52. model.removenode("/root/tempNode/item");
  53. model.makeNode("/root/tempNode/item");
  54. model.makeValue("/root/tempNode/item/label",nodeValue);
  55. model.makeValue("/root/tempNode/item/value",nodeValue);
  56. model.duplicate(nodePath,"/root/tempNode/item",1);
  57. document.all(comboId).refresh();
  58. }
  59. /*
  60. * 查询函数
  61. */
  62. function find()
  63. {
  64. model1.setValue("/root/formData/FROM_ADDR",model1.getValue("/root/formData/FROM_YARD_ADDR"));
  65. model1.setValue("/root/formData/TO_ADDR",model1.getValue("/root/formData/TO_YARD_ADDR"));
  66. commSendReq("/root/formData");
  67. commSubmit("UIG040043-service","find","glueAction.do");
  68. model1.removenode("/root/gridData/grid1/fromYardAddrResult_VO");
  69. model1.removenode("/root/gridData/grid2/searchToYardAddrResult_VO");
  70. model1.removenode("/root/gridData/grid3/SearchCraneOrderResult_VO");
  71. model1.duplicate("/root/gridData/grid1","/root/resData/fromYardAddrResult_VO");
  72. model1.duplicate("/root/gridData/grid2","/root/resData/searchToYardAddrResult_VO");
  73. model1.duplicate("/root/gridData/grid3","/root/resData/SearchCraneOrderResult_VO");
  74. model1.refresh();
  75. model1.setValue("/root/formData/FROM_ADDR",model1.getValue("/root/formData/FROM_YARD_ADDR"));
  76. model1.setValue("/root/formData/TO_ADDR",model1.getValue("/root/formData/TO_YARD_ADDR"));
  77. input2.refresh();
  78. input3.refresh();
  79. model.removenode("/root/comboNode/crNo");
  80. model.makeNode("/root/comboNode/crNo");
  81. if(model.getValue("/root/formData/FROM_ADDR").substr(0,2) == "Z1"){
  82. model.removenode("");
  83. model.makeNode("");
  84. setComboChild("/root/comboNode/crNo","1-1","combo3");
  85. setComboChild("/root/comboNode/crNo","1-2","combo3");
  86. }
  87. else if(model.getValue("/root/formData/FROM_ADDR").substr(0,2) == "Z2"){
  88. model.removenode("");
  89. model.makeNode("");
  90. setComboChild("/root/comboNode/crNo","1-3","combo3");
  91. setComboChild("/root/comboNode/crNo","1-4","combo3");
  92. }
  93. else if(model.getValue("/root/formData/FROM_ADDR").substr(0,2) == "Z3"){
  94. model.removenode("");
  95. model.makeNode("");
  96. setComboChild("/root/comboNode/crNo","1-5","combo3");
  97. setComboChild("/root/comboNode/crNo","1-6","combo3");
  98. }
  99. selectSlabCnt()
  100. }
  101. // 删除已经制定好,尚未执行的行车命令
  102. function remove()
  103. {
  104. model1.removenode("/root/reqData");
  105. model1.makeNode("/root/reqData");
  106. commMultiUpdate(datagrid3,"/root/reqData","A",true,"rowStatus");
  107. commSubmit("UIG040043-service","delete","glueAction.do");
  108. model1.removenode("/root/gridData/grid1/fromYardAddrResult_VO");
  109. model1.removenode("/root/gridData/grid2/searchToYardAddrResult_VO");
  110. model1.removenode("/root/gridData/grid3/SearchCraneOrderResult_VO");
  111. model1.duplicate("/root/gridData/grid1","/root/resData/fromYardAddrResult_VO");
  112. model1.duplicate("/root/gridData/grid2","/root/resData/searchToYardAddrResult_VO");
  113. model1.duplicate("/root/gridData/grid3","/root/resData/SearchCraneOrderResult_VO");
  114. model1.refresh();
  115. }
  116. function save()
  117. {
  118. if(model.getValue("/root/formData/SLAB_CNT") == ""){
  119. alert(" 板坯块数不能为空! ");
  120. return;
  121. }
  122. if(model.getValue("/root/formData/CRANE_NO") == ""){
  123. alert(" 行车编号不能为空! ");
  124. return;
  125. }
  126. if(model.getValue("/root/formData/FROM_ADDR") == ""||model.getValue("/root/formData/TO_ADDR") == ""){
  127. alert(" 板坯位置错误 ");
  128. }
  129. commSendReq("/root/formData");
  130. commSubmit("UIG040043-service","save","glueAction.do");
  131. model1.removenode("/root/gridData/grid1/fromYardAddrResult_VO");
  132. model1.removenode("/root/gridData/grid2/searchToYardAddrResult_VO");
  133. model1.removenode("/root/gridData/grid3/SearchCraneOrderResult_VO");
  134. model1.duplicate("/root/gridData/grid1","/root/resData/fromYardAddrResult_VO");
  135. model1.duplicate("/root/gridData/grid2","/root/resData/searchToYardAddrResult_VO");
  136. model1.duplicate("/root/gridData/grid3","/root/resData/SearchCraneOrderResult_VO");
  137. var MsgCon = model.getValue("/root/resData/ConfMsg_VO/ConfMsg_Row/MSG_CON");
  138. if (MsgCon == "1" ) {
  139. alert(" 行车命令已经编制 ");
  140. return;
  141. }
  142. if (MsgCon == "2" ) {
  143. alert(" Top Slab Not Created C/R Command ");
  144. return;
  145. }
  146. // 命令制定完成,清除相关的值 防止连续保存两次的情况
  147. model.setValue("/root/formData/SLAB_CNT","");
  148. model.setValue("/root/formData/CRANE_NO","");
  149. model1.refresh();
  150. }
  151. function call_left_UIG040044()
  152. {
  153. if(model.getValue("/root/formData/TO_YARD_ADDR") != "" && model.getValue("/root/formData/TO_YARD_ADDR") != null){
  154. var fromAddr = model1.getValue("/root/formData/TO_YARD_ADDR").substr(0,2);
  155. model1.setValue("/root/tempData",fromAddr);
  156. }
  157. window.load("UIG040044.xrw","modal","", "left:228; top:78; width:320; height:480; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;");
  158. model1.setValue("/root/formData/FROM_YARD_ADDR",model1.getValue("/root/tempData"));
  159. model1.removenode("/root/tempData");
  160. model1.makeNode("/root/tempData");
  161. input1.refresh();
  162. }
  163. function call_righ_UIG040044()
  164. {
  165. // 控制原板坯位置 与 目的板坯位置在一个跨
  166. if(model.getValue("/root/formData/FROM_YARD_ADDR") != "" && model.getValue("/root/formData/FROM_YARD_ADDR") != null){
  167. var toAddr = model1.getValue("/root/formData/FROM_YARD_ADDR").substr(0,2);
  168. model1.setValue("/root/tempData",toAddr);
  169. }
  170. window.load("UIG040044.xrw","modal","", "left:600; top:78; width:320; height:480; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;");
  171. model1.setValue("/root/formData/TO_YARD_ADDR",model1.getValue("/root/tempData"));
  172. model1.removenode("/root/tempData");
  173. model1.makeNode("/root/tempData");
  174. input4.refresh();
  175. if(model.getValue("/root/formData/FROM_YARD_ADDR") != "" && model.getValue("/root/formData/FROM_YARD_ADDR") != null&& model.getValue("/root/formData/TO_YARD_ADDR").substr(0,2) != model.getValue("/root/formData/FROM_YARD_ADDR").substr(0,2)){
  176. alert(" 不在同一跨 ");
  177. model.setValue("/root/formData/TO_YARD_ADDR","");
  178. input4.refresh();
  179. }
  180. }
  181. function selectSlabCnt(){
  182. /*
  183. * 输入移动板坯块数后所做相应操作
  184. */
  185. // 原板坯位置跺位堆放的板坯数
  186. var fromSlabCnt = 0;
  187. // 目的板坯位置跺位堆放的板坯数
  188. var toSlabCnt = 0;
  189. // 原位置可编制板坯块数,例如一个跺位有6快板坯,但是上面5块已经编制命令,再要编制一条移动两块的行车命令就会出错
  190. var fromAddrAvailable = 0;
  191. // 目的位置可放置板坯块数,尚未编制行车命令的空位置
  192. var toAddrAvailable = 0;
  193. // 行车命令选择移动的板坯数
  194. var SLAB_CNT = model1.getValue("/root/formData/SLAB_CNT");
  195. // 定位到当前跺位最上面一块板坯的位置 gridFstRow,包括没有板坯的位置,是位置!
  196. // 注意这里第一行并不是1,前面有两行fixedRow
  197. var gridFstRow = 1 + (datagrid1.fixedRows - 1);
  198. for(var i = gridFstRow ; i < (16 + gridFstRow) ; i++)
  199. {
  200. // 遍历统计原位置,目的位置跺位堆放板坯块数
  201. if(datagrid1.valueMatrix(i,datagrid1.colRef("SLAB_NO")) != "") fromSlabCnt = fromSlabCnt + 1;
  202. if(datagrid2.valueMatrix(i,datagrid2.colRef("SLAB_NO")) == "") toSlabCnt = toSlabCnt + 1;
  203. if(datagrid1.valueMatrix(i,datagrid1.colRef("SLAB_NO")) != "" && datagrid1.valueMatrix(i,datagrid1.colRef("ORD_FLAG")) == "") fromAddrAvailable = fromAddrAvailable + 1;
  204. if(datagrid2.valueMatrix(i,datagrid2.colRef("SLAB_NO")) == "" && datagrid2.valueMatrix(i,datagrid2.colRef("ORD_FLAG")) == "") toAddrAvailable = toAddrAvailable + 1;
  205. }
  206. //alert(parseInt(fromAddrAvailable) +" "+ parseInt(SLAB_CNT) + " " + parseInt(toAddrAvailable) + " " + parseInt(SLAB_CNT));
  207. // 判断是否行车命令选择移动的板坯块数超过了原位置的最大板坯块数,或是超过目的位置的空闲位置数
  208. if(parseInt(fromAddrAvailable) < parseInt(SLAB_CNT) || (parseInt(toAddrAvailable) < parseInt(SLAB_CNT)) )
  209. {
  210. alert(" 板坯块数选择错误!");
  211. return;
  212. }
  213. // tempRow 遍历清除上次操作的选中状态时用的 计算器
  214. var tempRow = gridFstRow;
  215. // 每选择一次块数,清除上一次选择时给 两个表对应的板坯位置着色 的状态
  216. for(var i = 0 ; i < MAX_SLAB_CNT ; i++)
  217. {
  218. datagrid1.valueMatrix(tempRow,datagrid1.colRef("CHK")) = "N";
  219. datagrid1.rowStyle(tempRow,"data", "background-color") = "#FFFFFF";
  220. datagrid2.valueMatrix(tempRow,datagrid2.colRef("CHK")) = "N";
  221. datagrid2.rowStyle(tempRow,"data", "background-color") = "#FFFFFF";
  222. tempRow = tempRow + 1;
  223. }
  224. /*
  225. *FROM_YARD_ADDR 的CHK状态修改,确定选中位置
  226. */
  227. // 从上到下遍历 获取第一个位置gridFstRow:板坯号不为空 也就是已经放置板坯 ,且该位置尚未编制行车命令
  228. for( var j = 0 ; j < MAX_SLAB_CNT ; j++)
  229. {
  230. if(datagrid1.valueMatrix(gridFstRow,datagrid1.colRef("SLAB_NO")) != "" && datagrid1.valueMatrix(gridFstRow,datagrid1.colRef("ORD_FLAG")) == "")
  231. {
  232. break;
  233. }
  234. gridFstRow = gridFstRow + 1;
  235. }
  236. // 循环要移动板坯块数,选取要移动的板坯
  237. for(var i = SLAB_CNT ; i > 0 ; i--)
  238. {
  239. datagrid1.valueMatrix(gridFstRow,datagrid1.colRef("CHK")) = "Y";
  240. datagrid1.rowStyle(gridFstRow,"data", "background-color") = "#FFF000";
  241. gridFstRow = gridFstRow + 1;
  242. }
  243. /*
  244. *TO_YARD_ADDR 的CHK状态修改,确定放置位置
  245. */
  246. // grid2Row 是用来从跺位最底层一块开始遍历
  247. var grid2Row = MAX_SLAB_CNT + (datagrid2.fixedRows - 1);
  248. // 循环最大次数为跺位最大板坯块数MAX_SLAB_CNT,从跺位最上面开始遍历,找到第一个位置: 板坯号为空,且尚未对
  249. // 该位置编制行车命令
  250. for(var i = 0 ; i < MAX_SLAB_CNT ; i++)
  251. {
  252. // 板坯号为空,且尚未对该位置编制行车命令
  253. if(datagrid2.valueMatrix(grid2Row,datagrid2.colRef("SLAB_NO")) == "" && datagrid2.valueMatrix(grid2Row,datagrid2.colRef("ORD_FLAG")) == "")
  254. {
  255. for(var j = SLAB_CNT ; j > 0 ; j--)
  256. {
  257. datagrid2.valueMatrix(grid2Row,datagrid2.colRef("CHK")) = "Y";
  258. datagrid2.rowStyle(grid2Row,"data", "background-color") = "#FFF000";
  259. grid2Row = grid2Row -1;
  260. }
  261. return;
  262. }
  263. grid2Row = grid2Row -1;
  264. }
  265. }
  266. ]]>
  267. </script>
  268. <script type="javascript" src="../../js/boaCommon.js"/>
  269. </xhtml:head>
  270. <xhtml:body guideline="1,980;2,620;">
  271. <datagrid id="datagrid1" nodeset="/root/gridData/grid1/fromYardAddrResult_VO/fromYardAddrResult_Row" disabled="true" caption="块^板坯号^板坯规格^板坯规格^板坯规格^板坯规格^牌号^命令制定^选择|块^板坯号^厚度^宽度^长度^重量^牌号^命令制定^选择" colsep="^" colwidth="25, 85, 30, 30, 30, 30, 80, 30, 35" defaultrows="18" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:36px; width:375px; height:584px; border-color:#000000; ">
  272. <col ref="STORELAY"/>
  273. <col ref="SLAB_NO"/>
  274. <col ref="SLAB_THK"/>
  275. <col ref="SLAB_WTH"/>
  276. <col ref="SLAB_LEN"/>
  277. <col ref="SLAB_WGT"/>
  278. <col ref="STL_GRD"/>
  279. <col ref="ORD_FLAG" type="combo">
  280. <choices>
  281. <item>
  282. <label>制定</label>
  283. <value>1</value>
  284. </item>
  285. <item>
  286. <label>占位</label>
  287. <value>4</value>
  288. </item>
  289. <item>
  290. <label/>
  291. <value/>
  292. </item>
  293. </choices>
  294. </col>
  295. <col checkvalue="Y,N" ref="CHK" type="checkbox" visibility="hidden"/>
  296. </datagrid>
  297. <datagrid id="datagrid2" nodeset="/root/gridData/grid2/searchToYardAddrResult_VO/searchToYardAddrResult_Row" disabled="true" caption="块^板坯号^板坯规格^板坯规格^板坯规格^板坯规格^钢码^命令制定^选择|块^板坯号^厚度^宽度^长度^重量^钢码^命令制定^选择" colsep="^" colwidth="25, 85, 30, 30, 30, 30, 82, 30, 26" defaultrows="18" mergecellsfixedrows="bycolrec" rowsep="|" style="left:380px; top:36px; width:375px; height:584px; border-color:#000000; ">
  298. <col ref="STORELAY"/>
  299. <col ref="SLAB_NO"/>
  300. <col ref="SLAB_THK"/>
  301. <col ref="SLAB_WTH"/>
  302. <col ref="SLAB_LEN"/>
  303. <col ref="SLAB_WGT"/>
  304. <col ref="STL_GRD"/>
  305. <col ref="ORD_FLAG" type="combo">
  306. <choices>
  307. <item>
  308. <label>制定</label>
  309. <value>1</value>
  310. </item>
  311. <item>
  312. <label>占位</label>
  313. <value>4</value>
  314. </item>
  315. <item>
  316. <label/>
  317. <value/>
  318. </item>
  319. </choices>
  320. </col>
  321. <col checkvalue="Y,N" ref="CHK" type="checkbox" visibility="hidden"/>
  322. </datagrid>
  323. <datagrid id="datagrid3" nodeset="/root/gridData/grid3/SearchCraneOrderResult_VO/SearchCraneOrderResult_Row" caption="选择^原位置^目的位置^块数^行车^行车命令序号|选择^原位置^目的位置^块数^行车^行车命令序号" colsep="^" colwidth="25, 65, 65, 30, 33, 24" defaultrows="18" mergecellsfixedrows="bycolrec" rowsep="|" style="left:760px; top:75px; width:220px; height:545px; border-color:#000000; ">
  324. <col checkvalue="Y,N" ref="CHK" type="checkbox"/>
  325. <col ref="FROM_ADDR"/>
  326. <col ref="TO_ADDR"/>
  327. <col ref="SLAB_CNT"/>
  328. <col ref="CR_NO" type="combo">
  329. <choices>
  330. <item>
  331. <label>1-3</label>
  332. <value>1-3</value>
  333. </item>
  334. <item>
  335. <label>1-4</label>
  336. <value>1-4</value>
  337. </item>
  338. <item>
  339. <label>1-5</label>
  340. <value>1-5</value>
  341. </item>
  342. <item>
  343. <label>1-6</label>
  344. <value>1-6</value>
  345. </item>
  346. <item>
  347. <label>1-1</label>
  348. <value>1-1</value>
  349. </item>
  350. <item>
  351. <label>1-2</label>
  352. <value>1-2</value>
  353. </item>
  354. </choices>
  355. </col>
  356. <col ref="SEQ_NO" visibility="hidden"/>
  357. </datagrid>
  358. <caption id="caption1" class="cell2" style="left:760px; top:35px; width:55px; height:20px; ">原位置</caption>
  359. <caption id="caption2" class="cell2" style="left:815px; top:35px; width:60px; height:20px; ">目的位置</caption>
  360. <caption id="caption3" class="cell2" style="left:875px; top:35px; width:50px; height:20px; ">块数</caption>
  361. <caption id="caption4" class="cell2" style="left:925px; top:35px; width:54px; height:20px; ">行车编号</caption>
  362. <input id="input2" ref="/root/formData/FROM_ADDR" editable="false" style="left:760px; top:55px; width:55px; height:20px; text-align:center; "/>
  363. <input id="input3" ref="/root/formData/TO_ADDR" editable="false" style="left:815px; top:55px; width:60px; height:20px; text-align:center; "/>
  364. <select1 id="combo3" ref="/root/formData/CRANE_NO" appearance="minimal" style="left:925px; top:55px; width:55px; height:20px; text-align:center; ">
  365. <choices>
  366. <itemset nodeset="/root/comboNode/crNo/item">
  367. <label ref="label"/>
  368. <value ref="value"/>
  369. </itemset>
  370. </choices>
  371. </select1>
  372. <select1 id="combo4" ref="/root/formData/SLAB_CNT" appearance="minimal" style="left:875px; top:55px; width:50px; height:20px; text-align:center; ">
  373. <choices>
  374. <item>
  375. <label>1</label>
  376. <value>1</value>
  377. </item>
  378. <item>
  379. <label>2</label>
  380. <value>2</value>
  381. </item>
  382. </choices>
  383. <script type="javascript" ev:event="xforms-select">
  384. <![CDATA[
  385. selectSlabCnt();
  386. ]]>
  387. </script>
  388. </select1>
  389. <caption id="caption5" class="cell" style="left:0px; top:5px; width:100px; height:20px; font-weight:bold; border-color:#000000; ">原板坯位置</caption>
  390. <caption id="caption6" class="cell" style="left:380px; top:5px; width:100px; height:20px; font-weight:bold; border-color:#000000; ">目的板坯位置</caption>
  391. <input id="input1" ref="/root/formData/FROM_YARD_ADDR" style="left:102px; top:5px; width:95px; height:20px; ">
  392. <script type="javascript" ev:event="ondblclick">
  393. <![CDATA[
  394. call_left_UIG040044();
  395. ]]>
  396. </script>
  397. </input>
  398. <input id="input4" ref="/root/formData/TO_YARD_ADDR" style="left:482px; top:5px; width:95px; height:20px; ">
  399. <script type="javascript" ev:event="ondblclick">
  400. <![CDATA[
  401. call_righ_UIG040044();
  402. ]]>
  403. </script>
  404. </input>
  405. <line id="line2" style="x1:1px; y1:0px; x2:980px; y2:0px; "/>
  406. <line id="line3" style="x1:1px; y1:30px; x2:980px; y2:30px; "/>
  407. </xhtml:body>
  408. </xhtml:html>