267161e6aa703c884fe711b50cb84a9c7e1acccd.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="../../css/body_crane.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[炼钢作业 >> 板坯库管理 >> 板坯库行车命令执行(UIG040042)]]>
  7. </xhtml:title>
  8. <model id="model1">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <searchData>
  12. <search1>
  13. <cr_no/>
  14. <yardClf/>
  15. <ord_type/>
  16. <LOC_CR_NO/>
  17. </search1>
  18. <search2>
  19. <FROM_ADDR/>
  20. <TO_ADDR/>
  21. <SLAB_NO/>
  22. </search2>
  23. <search3>
  24. <SCH_SLAB_NO/>
  25. <CUR_LOC/>
  26. </search3>
  27. </searchData>
  28. <gridData>
  29. <grid1/>
  30. <grid2/>
  31. <grid3/>
  32. </gridData>
  33. <resData/>
  34. <AUTO/>
  35. </root>
  36. </instance>
  37. <script type="javascript" ev:event="xforms-ready">
  38. <![CDATA[
  39. combo4.value = document.readIniFile("session1" , "UIG040042_CRNO" , "" , "c:\\WINDOWS\\xgmes3.ini") ;
  40. //clockTimer = window.setInterval("find()", 10000);
  41. ]]>
  42. </script>
  43. </model>
  44. <script type="javascript" src="../../js/boaCommon.js"/>
  45. <script type="javascript">
  46. <![CDATA[
  47. var ADDR_POSTIONS = 16;
  48. // 保存将要移动的板坯的数组
  49. var SLAB_ARRAY = new Array();
  50. var FROM_SLAB_POSTION = new Array();
  51. var TO_SLAB_POSTION = new Array();
  52. // 板坯移动块数
  53. var SLAB_CNT = "";
  54. // 操作标记
  55. var RIGHT_MOVED_TAG = false;
  56. var LEFT_MOVED_TAG = false;
  57. var clockTimer;//设置刷新时间返回的值
  58. /*
  59. *查询函数
  60. */
  61. function find()
  62. {
  63. /*if(!model.getValue("/root/searchData/search1/yardClf").CheckEmpty()){
  64. alert("跨区分不能为空!");return;
  65. }*/
  66. commSendReq("/root/searchData/search1");
  67. if(model.getValue("/root/searchData/search1/ord_type") == "B"){
  68. commSubmit("UIG040042-service","find3","glueAction.do");
  69. }else{
  70. commSubmit("UIG040042-service","find","glueAction.do");
  71. }
  72. commAppendData("/root/gridData/grid1/CrCommand_VO","/root/resData/CrCommand_VO");
  73. datagrid1.refresh();
  74. commSelectRow("datagrid1",datagrid1.fixedRows,"CHK");
  75. yardAddrHanel("datagrid1",datagrid1.fixedRows);
  76. }
  77. function isNullOrEmpty()
  78. {
  79. if(this.length != 0){
  80. return true;
  81. }
  82. else{
  83. return false;
  84. }
  85. }
  86. function commSelectRow(datagrid,rows,colChk) {
  87. if( typeof datagrid == 'string' ) grid = document.controls(datagrid);
  88. if( typeof colChk == 'string' ) colvalue = colChk;
  89. grid.rebuild();
  90. grid.isSelected(rows)=true;
  91. grid.valueMatrix(rows,grid.colRef(colvalue)) = "Y";
  92. grid.rowStatus(rows) = 1;
  93. }
  94. function yardAddrHanel(datagrid,rows){
  95. if( typeof datagrid == 'string' ) grid = document.controls(datagrid);
  96. var curLoc = grid.valueMatrix(rows,grid.colRef("FROM_ADDR"));
  97. var desLoc = grid.valueMatrix(rows,grid.colRef("TO_ADDR"));
  98. if(curLoc.substr(0,1) == "A" || curLoc.substr(curLoc,0,1) == "C" ||desLoc.substr(0,1) == "A" || desLoc.substr(0,1) == "C"){
  99. button4.visible = true;
  100. button7.visible = true;
  101. caption5.visible = true;
  102. }else{
  103. button4.visible = false;
  104. button7.visible = false;
  105. caption5.visible = false;
  106. }
  107. }
  108. function exeOrder()
  109. {
  110. model1.removenode("/root/reqData");
  111. model1.makeNode("/root/reqData");
  112. var nodeSet1 = datagrid1.nodeset;
  113. var row = datagrid1.row;
  114. var chk = datagrid1.valueMatrix(row, datagrid1.colRef("CHK"));
  115. commMultiUpdate(datagrid1,"/root/reqData","A",true,"rowStatus");
  116. model.makeValue("/root/reqData/LOC_CR_NO",model.getValue("/root/searchData/search1/LOC_CR_NO"));
  117. commSubmit("UIG040042-service","save","glueAction.do");
  118. //commAppendData("/root/gridData/grid2/FromYardResult_VO","/root/resData/FromYardResult_VO");
  119. //commAppendData("/root/gridData/grid3/ToYardResult_VO","/root/resData/ToYardResult_VO");
  120. commAppendData("/root/gridData/grid1/CrCommand_VO","/root/resData/CrCommand_VO");
  121. var SchSlabNo = model1.getValue("/root/resData/MillSchExist_VO/MillSchExist_Row/SCH_SLAB_NO");
  122. var CurLoc = model1.getValue("/root/resData/MillSchExist_VO/MillSchExist_Row/CUR_LOC");
  123. if (SchSlabNo != "" ) {
  124. alert(" @@@ 加热炉入炉顺序错误 前一板坯还未装炉--> YARD:"+CurLoc+" , SLAB_NO:"+ SchSlabNo);
  125. }
  126. find();
  127. commSelectRow("datagrid1",datagrid1.fixedRows,"CHK");
  128. }
  129. function selectFromAddrSlabs()
  130. {
  131. // FROM_ADDR:根据选中的行车命令中移动板坯数确定原板坯堆放跺位中将要移动的板坯,从跺位最上第一块开始遍历,
  132. // 如果某个位置板坯号不为空,则标记为选中,移动板坯块数减一,直到移动板坯块数为0
  133. var tempCnt = SLAB_CNT;
  134. for(var i = 1; i <= ADDR_POSTIONS; i++)
  135. {
  136. var tempSlabNo = datagrid2.valueMatrix(i,datagrid2.colRef("SLAB_NO"));
  137. if(tempSlabNo != "")
  138. {
  139. if(tempCnt > 0)
  140. {
  141. // 对要移动板坯CHK标记
  142. datagrid2.valueMatrix(i,datagrid2.colRef("CHK")) = "Y";
  143. datagrid2.rowStyle(i, "data", "background-color") = "#FFF000";
  144. // 每标记一块板坯 要移动板坯数减一
  145. tempCnt -= 1;
  146. }
  147. }
  148. }
  149. }
  150. function selectToAddrSlabs()
  151. {
  152. // TO_ADDR:根据选中的行车命令中移动板坯数确定原板坯堆放跺位中将要移动的板坯,从跺位最下面一块开始遍历,
  153. // 如果某个位置板坯号为空,则标记为选中,移动板坯块数减一,直到移动板坯块数为0
  154. tempCnt = SLAB_CNT;
  155. for(var i = ADDR_POSTIONS; i > 0 ; i--)
  156. {
  157. var tempSlabNo = datagrid3.valueMatrix(i,datagrid3.colRef("SLAB_NO"));
  158. if(tempSlabNo == "")
  159. {
  160. if(tempCnt <= 0)return;
  161. // 对要移动板坯CHK标记
  162. datagrid3.valueMatrix(i,datagrid3.colRef("CHK")) = "Y";
  163. datagrid3.rowStyle(i, "data", "background-color") = "#FFF000";
  164. datagrid3.rowStatus(i) = 2;
  165. // 把每块板坯所在的位置 保存到全局变量数组中
  166. // TO_SLAB_POSTION[tempCnt - 1] = i;
  167. // 每标记一块板坯 要移动板坯数减一
  168. tempCnt -= 1;
  169. }
  170. }
  171. }
  172. function FlagFresh()
  173. {
  174. model1.removenode("/root/reqData");
  175. model1.makeNode("/root/reqData");
  176. var fromAddr = model1.getValue("/root/searchData/search2/FROM_ADDR");
  177. var toAddr = model1.getValue("/root/searchData/search2/TO_ADDR");
  178. if (((fromAddr.substr(0,1) == "A" || fromAddr.substr(0,1) == "C") && toAddr.substr(0,1) == "Z" ) || (fromAddr.substr(0,1) == "Z" && (toAddr.substr(0,1) == "A" || toAddr.substr(0,1) == "C"))) {
  179. if (fromAddr.substr(0,1) == "A" || fromAddr.substr(0,1) == "C" ) {
  180. model1.makeValue("/root/reqData/YARD_ADDR",model1.getValue("/root/searchData/search2/FROM_ADDR"));
  181. } else if ( toAddr.substr(0,1) == "A" || toAddr.substr(0,1) == "C") {
  182. model1.makeValue("/root/reqData/YARD_ADDR",model1.getValue("/root/searchData/search2/TO_ADDR"));
  183. }
  184. // alert(instance1.selectSingleNode("/root/reqData").xml);
  185. commSubmit("UIG040042-service","initFlag","glueAction.do");
  186. model.setValue("/root/resData/SearchLockFlagResult_VO/SearchLockFlagResult_Row/LOCK_YN","2");
  187. switch (model.getValue("/root/resData/SearchLockFlagResult_VO/SearchLockFlagResult_Row/LOCK_YN"))
  188. {
  189. case "1" :
  190. caption5.value = "锁定解除";
  191. return;
  192. case "2" :
  193. caption5.value = "锁定";
  194. return;
  195. case "0" :
  196. caption5.value = "请求锁定";
  197. return;
  198. case "" :
  199. caption5.value = "";
  200. }
  201. }
  202. }
  203. ]]>
  204. </script>
  205. </xhtml:head>
  206. <xhtml:body guideline="2,615;" style="font-family:宋体; ">
  207. <caption id="caption1" class="cell2" style="left:0px; top:5px; width:105px; height:35px; font-weight:bold; border-color:#000000; ">跨区分</caption>
  208. <datagrid id="datagrid1" nodeset="/root/gridData/grid1/CrCommand_VO/CrCommand_Row" class="datagrid" allowuserresize="true" backcoloralternate="#f7f9f9" caption="选择^原位置^到位置^块数^行车编号^板坯号^轧制序号^命令日期^caption1" colwidth="60, 90, 90, 60, 110, 175, 100, 121, 51, 100" defaultrows="30" mergecellsfixedrows="bycolrec" rowsep="|" colsep="^" style="left:0px; top:55px; width:975px; height:534px; border-color:#000000; ">
  209. <col ref="CHK" type="radio" checkvalue="Y,N"/>
  210. <col ref="FROM_ADDR" style="font-size:14pt; "/>
  211. <col ref="TO_ADDR"/>
  212. <col ref="SLAB_CNT"/>
  213. <col ref="CR_NO"/>
  214. <col ref="SLAB_NO"/>
  215. <col ref="ROLL_SEQ"/>
  216. <col ref="REG_DTIME" format="yyyy-mm-dd hh:nn:ss"/>
  217. <col ref="SEQ_NO" visibility="hidden"/>
  218. <col ref="ORD_TYPE" visibility="hidden"/>
  219. <script type="javascript" ev:event="xforms-select">
  220. <![CDATA[
  221. if(datagrid1.row != datagrid1.fixedRows){
  222. alert("不能执行该条行车命令");
  223. find();
  224. }
  225. ]]>
  226. </script>
  227. </datagrid>
  228. <select1 id="combo1" ref="/root/searchData/search1/yardClf" class="cell2" appearance="minimal" editmode="search" style="left:105px; top:5px; width:95px; height:35px; background-color:#ffff99; border-color:#000000; ">
  229. <choices>
  230. <item>
  231. <label>Z1</label>
  232. <value>Z1</value>
  233. </item>
  234. <item>
  235. <label>Z2</label>
  236. <value>Z2</value>
  237. </item>
  238. <item>
  239. <label>Z3</label>
  240. <value>Z3</value>
  241. </item>
  242. <item>
  243. <label>L</label>
  244. <value>L</value>
  245. </item>
  246. <item>
  247. <label>-全部-</label>
  248. <value/>
  249. </item>
  250. </choices>
  251. <script type="javascript" ev:event="xforms-value-changed">
  252. <![CDATA[
  253. ]]>
  254. </script>
  255. </select1>
  256. <button id="button4" visibility="hidden" style="left:660px; top:7px; width:55px; height:30px; background-color:#00ccff; ">
  257. <caption>锁定请求</caption>
  258. <script type="javascript" ev:event="onclick">
  259. <![CDATA[
  260. // 如果目的位置步进梁为锁定则返回
  261. if(caption5.value == "2") {
  262. alert(" 已 锁定 ");
  263. return;
  264. } else{
  265. model1.removenode("/root/reqData");
  266. model1.makeNode("/root/reqData");
  267. model1.makeValue("/root/reqData/TC_ID","FML030");
  268. model1.makeValue("/root/reqData/LOCK_FLAG","1");
  269. model1.makeValue("/root/reqData/rowStatus","i");
  270. var fromAddr = model1.getValue("/root/searchData/search2/FROM_ADDR");
  271. var toAddr = model1.getValue("/root/searchData/search2/TO_ADDR");
  272. if (((fromAddr.substr(0,1) == "A" || fromAddr.substr(0,1) == "C") && toAddr.substr(0,1) == "Z" ) || (fromAddr.substr(0,1) == "Z" && (toAddr.substr(0,1) == "A" || toAddr.substr(0,1) == "C"))) {
  273. if (fromAddr.substr(0,1) == "A" || fromAddr.substr(0,1) == "C" ) {
  274. model1.makeValue("/root/reqData/LINE_POSITION",model1.getValue("/root/searchData/search2/FROM_ADDR"));
  275. } else if (toAddr.substr(0,1) == "A" || toAddr.substr(0,1) == "C") {
  276. model1.makeValue("/root/reqData/LINE_POSITION",model1.getValue("/root/searchData/search2/TO_ADDR"));
  277. }
  278. if(datagrid1.valueMatrix(datagrid1.row,datagrid1.colRef("CHK")) == "Y")
  279. {
  280. SlabNo = datagrid1.valueMatrix(datagrid1.row,datagrid1.colRef("SLAB_NO"));
  281. }
  282. model1.makeValue("/root/reqData/SLAB_NO",SlabNo);
  283. model1.makeValue("/root/reqData/FROM_ADDR",fromAddr);
  284. model1.makeValue("/root/reqData/TO_ADDR",toAddr);
  285. // alert(instance1.selectSingleNode("/root/reqData").xml);
  286. commSubmit("UIG040042-service","lock","glueAction.do");
  287. var SchSlabNo = model1.getValue("/root/resData/MillSchExist_VO/MillSchExist_Row/SCH_SLAB_NO");
  288. var CurLoc = model1.getValue("/root/resData/MillSchExist_VO/MillSchExist_Row/CUR_LOC");
  289. if (SchSlabNo != "" ) {
  290. alert(" @@@ 加热炉入炉顺序错误 前一板坯还未装炉--> YARD:"+CurLoc+" , SLAB_NO:"+ SchSlabNo+" @@@");
  291. } else {
  292. alert("@@@ 锁定请求 成功 @@@" );
  293. }
  294. }
  295. }
  296. FlagFresh();
  297. button5.visible = true;
  298. ]]>
  299. </script>
  300. </button>
  301. <button id="button5" class="cell2" style="left:875px; top:0px; width:100px; height:53px; background-color:#00ccff; ">
  302. <caption>执行完成</caption>
  303. <script type="javascript" ev:event="onclick">
  304. <![CDATA[
  305. var toAddrValue = model.getValue("/root/searchData/search2/TO_ADDR");
  306. var fromAddrValue = model.getValue("/root/searchData/search2/FROM_ADDR")
  307. // alert(toAddrValue.substr(0,1) + " to + from " + fromAddrValue.substr(0,1));
  308. // 选择行车命令时,就会给SLAB_ARRAY,FROM_SLAB_POSTION,TO_SLAB_POSTION,SLAB_CNT 赋值 ,
  309. // 执行命令完成后这些全局变量又会赋值为 null 防止一条命令被连续执行两次
  310. // if(SLAB_ARRAY == null && FROM_SLAB_POSTION == null && TO_SLAB_POSTION == null && SLAB_CNT == null){
  311. // alert("出错了! 板坯地址为空");
  312. // return;
  313. // }
  314. var SlabNo ;
  315. if(datagrid1.valueMatrix(datagrid1.row,datagrid1.colRef("CHK")) == "Y")
  316. {
  317. // 行车命令原堆放位置
  318. SlabNo = datagrid1.valueMatrix(datagrid1.row,datagrid1.colRef("SLAB_NO"));
  319. }
  320. if( (fromAddrValue.substr(0,1) == "A" && toAddrValue.substr(0,1) == "Z") ||
  321. (fromAddrValue.substr(0,1) == "Z" && toAddrValue.substr(0,1) == "A") ||
  322. (fromAddrValue.substr(0,1) == "C" && toAddrValue.substr(0,1) == "Z") ||
  323. (fromAddrValue.substr(0,1) == "Z" && toAddrValue.substr(0,1) == "C") )
  324. {
  325. // 判断步进梁是否锁定
  326. /*if(caption5.value != null && caption5.value != "锁定")
  327. {
  328. alert("步进梁锁定状态尚未就绪!");
  329. return;
  330. }*/
  331. // 如果是板坯上料,首先判断他是辊道,然后判断他不是炼钢板坯库的辊道 ,需确认此时辊道上的目地步进梁是否有板坯,有板坯则不能放
  332. if(toAddrValue.substr(0,1) == "A" && toAddrValue.substr(1,1) != "0" && datagrid3.valueMatrix(1,datagrid3.colRef("SLAB_NO")) != "")
  333. {
  334. alert("该位置已放置板坯");
  335. return;
  336. }
  337. }
  338. var temp1 = model.getValue("/root/searchData/search1/LOC_CR_NO");
  339. var temp2 = datagrid1.valueMatrix(1,datagrid1.colRef("FROM_ADDR")).substr(0,2);
  340. if(!(((temp1 == "1-1" || temp1 == "1-2")&&temp2 == "Z1")||((temp1 == "1-3" || temp1 == "1-4")&&temp2 == "Z2")||((temp1 == "1-5" || temp1 == "1-6")&&temp2 == "Z3"))
  341. ){
  342. alert("行车编号错误,不能执行!");
  343. return;
  344. }
  345. if(model.getValue("/root/searchData/search1/yardClf") != ""){
  346. alert("跨必须选择为全部!");
  347. return;
  348. }
  349. exeOrder();
  350. SLAB_ARRAY = null;
  351. FROM_SLAB_POSTION = null;
  352. TO_SLAB_POSTION = null;
  353. SLAB_CNT = null;
  354. ]]>
  355. </script>
  356. </button>
  357. <caption id="output" style="left:840px; top:7px; width:35px; height:30px; background-image:../../images/right.gif; "/>
  358. <caption id="caption5" visibility="hidden" style="left:782px; top:7px; width:55px; height:30px; font-size:9pt; text-align:center; background-color:#c0c0c0; "/>
  359. <button id="button7" visibility="hidden" style="left:720px; top:7px; width:60px; height:30px; background-color:#00ccff; ">
  360. <caption>刷新</caption>
  361. <script type="javascript" ev:event="DOMActivate">
  362. <![CDATA[
  363. FlagFresh();
  364. ]]>
  365. </script>
  366. </button>
  367. <line id="line2" style="x1:1px; y1:0px; x2:980px; y2:0px; "/>
  368. <line id="line3" style="x1:1px; y1:42px; x2:870px; y2:42px; "/>
  369. <caption id="caption4" class="cell2" style="left:415px; top:5px; width:129px; height:35px; font-weight:bold; border-color:#000000; ">本行车编号</caption>
  370. <select1 id="combo4" ref="/root/searchData/search1/LOC_CR_NO" class="cell2" appearance="minimal" editmode="search" style="left:544px; top:5px; width:100px; height:35px; background-color:#ffff99; border-color:#000000; ">
  371. <choices>
  372. <item>
  373. <label>1-1</label>
  374. <value>1-1</value>
  375. </item>
  376. <item>
  377. <label>1-2</label>
  378. <value>1-2</value>
  379. </item>
  380. <item>
  381. <label>1-3</label>
  382. <value>1-3</value>
  383. </item>
  384. <item>
  385. <label>1-4</label>
  386. <value>1-4</value>
  387. </item>
  388. <item>
  389. <label>1-5</label>
  390. <value>1-5</value>
  391. </item>
  392. <item>
  393. <label>1-6</label>
  394. <value>1-6</value>
  395. </item>
  396. <item>
  397. <label>A00</label>
  398. <value>A00</value>
  399. </item>
  400. <item>
  401. <label>-全部-</label>
  402. <value/>
  403. </item>
  404. </choices>
  405. <script type="javascript" ev:event="xforms-value-changed">
  406. <![CDATA[
  407. document.writeIniFile("session1" , "UIG040042_CRNO" , combo4.value.Trim() , "c:\\WINDOWS\\xgmes3.ini");
  408. ]]>
  409. </script>
  410. </select1>
  411. <caption id="caption2" class="cell2" style="left:205px; top:5px; width:105px; height:35px; font-weight:bold; border-color:#000000; ">命令类型</caption>
  412. <select1 id="combo2" ref="/root/searchData/search1/ord_type" class="cell2" appearance="minimal" editmode="search" style="left:310px; top:5px; width:95px; height:35px; background-color:#ffff99; border-color:#000000; ">
  413. <choices>
  414. <item>
  415. <label>上料</label>
  416. <value>B</value>
  417. </item>
  418. <item>
  419. <label>下线</label>
  420. <value>A</value>
  421. </item>
  422. <item>
  423. <label>移垛</label>
  424. <value>C</value>
  425. </item>
  426. <item>
  427. <label>全部</label>
  428. <value/>
  429. </item>
  430. </choices>
  431. <script type="javascript" ev:event="xforms-value-changed">
  432. <![CDATA[
  433. ]]>
  434. </script>
  435. </select1>
  436. </xhtml:body>
  437. </xhtml:html>