021ffbfa6a7fcccc1bf31ec0050149280fdc69d9.svn-base 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  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[品质判定>>成分判定>>炉次号成分实绩录入]]>
  7. </xhtml:title>
  8. <model id="model1">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <formData>
  12. <CHARGENO/>
  13. <PROCCD>JJ</PROCCD>
  14. <guolv>C</guolv>
  15. <MOD_RMK/>
  16. </formData>
  17. <initChargeData/>
  18. <grid>
  19. <datagrid1/>
  20. <datagrid2/>
  21. <datagrid3/>
  22. <datagrid4/>
  23. <datagrid5/>
  24. </grid>
  25. <tempData>
  26. <tempData1/>
  27. <tempData2/>
  28. <tempData3/>
  29. <tempData4/>
  30. <tempData5/>
  31. </tempData>
  32. <jisuanshi/>
  33. <initProc>
  34. <ProcCDResult_Row>
  35. <LABEL/>
  36. <VALUE/>
  37. </ProcCDResult_Row>
  38. </initProc>
  39. <panding/>
  40. <fwdData>
  41. <UIB020030>
  42. <URL/>
  43. </UIB020030>
  44. </fwdData>
  45. <OtherInfo>
  46. <StlGrdResult_Row>
  47. <STL_GRD/>
  48. <PRODNM_CD/>
  49. <SLAB_RT/>
  50. <CHARGE_INGR_DEC_EMP_ID/>
  51. <REGID/>
  52. <LST_INGR_REG_DTIME/>
  53. </StlGrdResult_Row>
  54. </OtherInfo>
  55. </root>
  56. </instance>
  57. <script type="javascript" ev:event="xforms-ready">
  58. <![CDATA[
  59. if(window.parent==null) Init();
  60. ]]>
  61. </script>
  62. </model>
  63. <script type="javascript" src="../../js/boaCommon.js"/>
  64. <script type="javascript" src="../../js/b01.js"/>
  65. <script type="javascript">
  66. <![CDATA[
  67. function Init(node)
  68. {
  69. InitParams(node);
  70. input40.value = document.readIniFile("session1" , "UIB020030_01" , "" , "c:\\WINDOWS\\xgmes3.ini");
  71. radio1.value = document.readIniFile("session1" , "UIB020030_03" , "" , "c:\\WINDOWS\\xgmes3.ini");
  72. datagrid1.colStatus(0)=false; //使表格1中“选择”列不对结果产生影响
  73. //炉次号初始化
  74. if(combo2.value=="C")
  75. {
  76. commSubmit("UIB020030-service", "guolv", "glueAction.do");
  77. }
  78. else
  79. {
  80. commSubmit("UIB020030-service", "success", "glueAction.do");
  81. }
  82. model.copyNode("/root/initChargeData" , "/root/resData/ChargeNOResult_VO");
  83. model.copyNode("/root/initProc" , "/root/resData/ProcCDResult_VO");
  84. model.refresh();
  85. }
  86. function find()
  87. {
  88. ///获得请求参数
  89. model.removenode("/root/reqData");
  90. model.makeValue("/root/reqData/CHARGENO" , model.getValue("/root/formData/CHARGENO"));
  91. model.makeValue("/root/reqData/PROCCD" , model.getValue("/root/formData/PROCCD"));
  92. ///写入炉次号到文件中
  93. document.writeIniFile("session1" , "UIB020030_01" , input40.value , "c:\\WINDOWS\\xgmes3.ini");
  94. document.writeIniFile("session1" , "UIB020030_02" , combo2.value , "c:\\WINDOWS\\xgmes3.ini");
  95. document.writeIniFile("session1" , "UIB020030_03" , radio1.value , "c:\\WINDOWS\\xgmes3.ini");
  96. ///submit
  97. commSubmit("UIB020030-service", "findChargeInfo", "glueAction.do");
  98. model.copyNode("/root/OtherInfo" , "/root/resData/StlGrdResult_VO");
  99. ///copy to datagrid1
  100. model.copyNode("/root/grid/datagrid1" , "/root/resData/ChargeList_VO");
  101. removeGridData();//清除表2、3、4、5数据
  102. model.refresh();
  103. //恢复被改变的颜色
  104. datagrid2.rebuildStyle();
  105. datagrid3.rebuildStyle();
  106. datagrid4.rebuildStyle();
  107. datagrid5.rebuildStyle();
  108. datagrid1.clearStatus();
  109. datagrid2.clearStatus();
  110. datagrid3.clearStatus();
  111. datagrid4.clearStatus();
  112. datagrid5.clearStatus();
  113. }
  114. var selectRow = 0;//用于保存表1中查询的列
  115. function save()
  116. {
  117. if(selectRow == 0)
  118. {
  119. window.alert("非法操作!请先查询" , "提示");
  120. return;
  121. }
  122. if(commComfirmBox("确认保存?","提示")=="0") return;
  123. model.removenode("/root/reqData");
  124. model.makeNode("/root/reqData");
  125. model.removenode("/root/tempData");
  126. model.makeNode("/root/tempData/tempData1");
  127. model.makeNode("/root/tempData/tempData2");
  128. model.makeNode("/root/tempData/tempData3");
  129. model.makeNode("/root/tempData/tempData4");
  130. model.makeNode("/root/tempData/tempData5");
  131. ///生成请求参数
  132. // b01MultiUpdate(datagrid2,"/root/tempData/tempData1" ,"A", true, "rowStuts1");//表2
  133. b01MultiUpdate(datagrid2,"/root/tempData/tempData2" ,"A", true, "rowStuts2");//表2
  134. b01MultiUpdate(datagrid3,"/root/tempData/tempData3" ,"A", true, "rowStuts2");//表3
  135. b01MultiUpdate(datagrid4,"/root/tempData/tempData4" ,"A", true, "rowStuts2");//表4
  136. b01MultiUpdate(datagrid5,"/root/tempData/tempData5" ,"A", true, "rowStuts2");//表5
  137. commSendReq("/root/grid/datagrid1/ChargeList_Row["+selectRow+"]" ,
  138. "/root/tempData/tempData2","/root/tempData/tempData3","/root/tempData/tempData4");
  139. getLoggingInInfo();//获取登录人信息
  140. model.makeValue("/root/reqData/MOD_RMK" , model.getValue("/root/formData/MOD_RMK"));
  141. model.makeValue("/root/reqData/STL_GRD" , model.getValue("/root/OtherInfo/StlGrdResult_Row/STL_GRD"));
  142. commSubmit("UIB020030-service", "save", "glueAction.do");
  143. copyFixNode("/root/grid/datagrid2","/root/resData/SingleChem_VO/SingleChem_Row",1 , 13);//表2
  144. copyFixNode("/root/grid/datagrid3","/root/resData/SingleChem_VO/SingleChem_Row",14, 26);//表3
  145. copyFixNode("/root/grid/datagrid4","/root/resData/SingleChem_VO/SingleChem_Row",27,50);//表4
  146. model.copyNode("/root/grid/datagrid5" , "/root/resData/CompChem_VO");//表5
  147. model.refresh();
  148. selectRow = 0;
  149. datagrid1.clearStatus();
  150. datagrid2.clearStatus();
  151. datagrid3.clearStatus();
  152. datagrid4.clearStatus();
  153. datagrid5.clearStatus();
  154. }
  155. //查询表格1时需要清除表2、3、4、5原来数据
  156. function removeGridData()
  157. {
  158. model.removenode("/root/grid/datagrid2");
  159. model.removenode("/root/grid/datagrid3");
  160. model.removenode("/root/grid/datagrid4");
  161. model.removenode("/root/grid/datagrid5");
  162. model.makeNode("/root/grid/datagrid2");
  163. model.makeNode("/root/grid/datagrid3");
  164. model.makeNode("/root/grid/datagrid4");
  165. model.makeNode("/root/grid/datagrid5");
  166. }
  167. function XXX()
  168. {
  169. ///若当前行等于最后一行,则表2、3、4、5的值允许修改;否则不允许修改
  170. if(datagrid1.row==(datagrid1.rows-1))//可改
  171. {
  172. datagrid2.colAttribute(datagrid2.colRef("CHEM_VAL") , "editable") = "true";
  173. datagrid3.colAttribute(datagrid3.colRef("CHEM_VAL") , "editable") = "true";
  174. datagrid4.colAttribute(datagrid4.colRef("CHEM_VAL") , "editable") = "true";
  175. datagrid5.colAttribute(datagrid5.colRef("CHEM_VAL") , "editable") = "true";
  176. }
  177. else //不可改s
  178. {
  179. datagrid2.colAttribute(datagrid2.colRef("CHEM_VAL") , "editable") = "false";
  180. datagrid3.colAttribute(datagrid3.colRef("CHEM_VAL") , "editable") = "false";
  181. datagrid4.colAttribute(datagrid4.colRef("CHEM_VAL") , "editable") = "false";
  182. datagrid5.colAttribute(datagrid5.colRef("CHEM_VAL") , "editable") = "false";
  183. }
  184. //Y表质保书已发,成分不可再修改
  185. if(datagrid1.valueMatrix(datagrid1.row , datagrid1.colRef("UPDATE_NO_TP")) == "Y")
  186. {
  187. datagrid2.colAttribute(datagrid2.colRef("CHEM_VAL") , "editable") = "false";
  188. datagrid3.colAttribute(datagrid3.colRef("CHEM_VAL") , "editable") = "false";
  189. datagrid4.colAttribute(datagrid4.colRef("CHEM_VAL") , "editable") = "false";
  190. datagrid5.colAttribute(datagrid5.colRef("CHEM_VAL") , "editable") = "false";
  191. }
  192. }
  193. //不合格项变为红色
  194. function changeColor(grid)
  195. {
  196. var valCol = grid.colRef("CHEM_VAL");//实绩值做在列
  197. var minCol = grid.colRef("CHEM_MIN");//最小值的列
  198. var maxCol = grid.colRef("CHEM_MAX");//最大值的列
  199. grid.colstyle(valCol, "data", "background-color") = "#ffff99";//恢复初始的黄色再染色
  200. var min = "";
  201. var max = "";
  202. var val = "";
  203. for(var i = 1; i < grid.rows; i++)
  204. {
  205. min = grid.valueMatrix(i , minCol);//成分最小
  206. max = grid.valueMatrix(i , maxCol);//最大
  207. val = grid.valueMatrix(i , valCol);//实绩
  208. if(val != "" && min !="" && parseFloat(min) > parseFloat(val) )//实绩值应大于等于指示最小值,否则不合格
  209. {
  210. grid.cellStyle("background-color" , i , valCol) = "#ff0000";
  211. }
  212. if(val != "" && max != "" && parseFloat(max) < parseFloat(val))//实绩值应小于等于指示最大值,否则不合格
  213. {
  214. grid.cellStyle("background-color" , i , valCol) = "#ff0000";
  215. }
  216. if(val =="" && (max != "" || min !="") )
  217. {
  218. grid.cellStyle("background-color" , i , valCol) = "#cc99ff";
  219. }
  220. }
  221. }
  222. var value;//用于保存最终的计算值
  223. function calculateChem(grid)
  224. {
  225. var storChem;//保存每一个元素
  226. var chemCal = datagrid5.valueMatrix(datagrid5.row , datagrid5.colRef("COMP_CAL"));//保存复合元素计算式
  227. var chemRow = grid.colRef("CHEM_CD");//元素名所在列
  228. var chemVal = grid.colRef("CHEM_VAL"); //元素值所在列
  229. for(var i = grid.fixedRows; i < grid.rows; i++)
  230. {
  231. storChem = grid.valueMatrix(i , chemRow);
  232. chemCal = chemCal.replaceAll(storChem , grid.valueMatrix(i , chemVal)==""?0:grid.valueMatrix(i , chemVal));
  233. }
  234. value = eval(chemCal.replaceAll("=" , ""));
  235. }
  236. var count = 0;//控制表格2、3、4最后一次的回车数,若值变为2则跳到下一个表格
  237. ]]>
  238. </script>
  239. </xhtml:head>
  240. <xhtml:body accesskey="f2" pagewidth="980" pageheight="620" guideline="1,980;1,980;" style="text-align:center; ">
  241. <datagrid id="datagrid1" nodeset="/root/grid/datagrid1/ChargeList_Row" caption="选择^炉次号^工序^次数^工序代码^是否已判定" colsep="^" colwidth="43, 87, 40, 18, 77, 44" defaultrows="35" mergecellsfixedrows="bycolrec" rowheight="30" rowsep="|" tooltip="label" style="left:0px; top:85px; width:271px; height:510px; ">
  242. <col checkvalue="Y,N" ref="CHK" type="checkbox"/>
  243. <col editable="false" ref="CHARGE_NO" style="font-weight:bold; text-align:left; background-color:#ffffff; "/>
  244. <col disabled="true" ref="PROC_CD" type="combo" style="font-weight:bold; text-align:left; ">
  245. <choices>
  246. <item>
  247. <label>脱硫</label>
  248. <value>JA</value>
  249. </item>
  250. <item>
  251. <label>转炉</label>
  252. <value>JB</value>
  253. </item>
  254. <item>
  255. <label>CAS前</label>
  256. <value>J1</value>
  257. </item>
  258. <item>
  259. <label>CAS后</label>
  260. <value>J2</value>
  261. </item>
  262. <item>
  263. <label>LF站</label>
  264. <value>JL</value>
  265. </item>
  266. <item>
  267. <label>RH站</label>
  268. <value>JR</value>
  269. </item>
  270. <item>
  271. <label>连铸</label>
  272. <value>JJ</value>
  273. </item>
  274. <item>
  275. <label/>
  276. <value/>
  277. </item>
  278. </choices>
  279. </col>
  280. <col editable="false" ref="CHEM_SEQ" visibility="hidden" style="left:80px; top:20px; width:30px; height:20px; font-weight:bold; background-color:#ffffff; "/>
  281. <col ref="CHEM_L2_PROC_CD" type="input" style="text-align:left; background-color:#ffff99; "/>
  282. <col ref="DEC_YN" visibility="hidden"/>
  283. <script type="javascript" ev:event="ondblclick">
  284. <![CDATA[
  285. if(datagrid1.row > 0) //若双击的不是标题行
  286. {
  287. selectRow = datagrid1.row;//selectRow为全局变量
  288. ///获得请求参数
  289. model.removenode("/root/reqData");
  290. commSendReq("/root/grid/datagrid1/ChargeList_Row["+selectRow+"]"); //当前行的请求参数
  291. model.makeValue("/root/reqData/STL_GRD" , input1.value);//厂内排号
  292. model.makeValue("/root/reqData/PRODNM_CD", combo1.value);//板坯去向
  293. ///submit
  294. commSubmit("UIB020030-service", "findIngr", "glueAction.do");
  295. copyFixNode("/root/grid/datagrid2","/root/resData/SingleChem_VO/SingleChem_Row",1 , 13);//表2
  296. copyFixNode("/root/grid/datagrid3","/root/resData/SingleChem_VO/SingleChem_Row",14, 26);//表3
  297. copyFixNode("/root/grid/datagrid4","/root/resData/SingleChem_VO/SingleChem_Row",27,50);//表4
  298. model.copyNode("/root/grid/datagrid5" , "/root/resData/CompChem_VO");//表5
  299. model.refresh();
  300. changeColor(datagrid2);
  301. changeColor(datagrid3);
  302. changeColor(datagrid4);
  303. changeColor(datagrid5);
  304. datagrid2.clearStatus();
  305. datagrid3.clearStatus();
  306. datagrid4.clearStatus();
  307. datagrid5.clearStatus();
  308. }
  309. ]]>
  310. </script>
  311. <script type="javascript" ev:event="onentercell">
  312. <![CDATA[
  313. // datagrid1.editCell();
  314. ]]>
  315. </script>
  316. </datagrid>
  317. <datagrid id="datagrid2" nodeset="/root/grid/datagrid2/SingleChem_Row" caption="成分^最小^最大^实绩^EX" colsep="^" colwidth="45, 60, 60, 60, 42" defaultrows="14" mergecellsfixedrows="bycolrec" rowsep="|" selectionmode="free" tooltip="true" style="left:275px; top:65px; width:236px; height:296px; font-family:宋体; ">
  318. <col ref="CHEM_CD" style="font-weight:bold; text-align:left; "/>
  319. <col ref="CHEM_MIN" style="font-weight:bold; text-align:right; "/>
  320. <col ref="CHEM_MAX" style="font-weight:bold; text-align:right; "/>
  321. <col ref="CHEM_VAL" type="input" format="0.9999999" style="font-weight:bold; text-align:right; background-color:#ffff99; "/>
  322. <col ref="EX" visibility="hidden"/>
  323. <script type="javascript" ev:event="onclick">
  324. <![CDATA[
  325. datagrid2.editCell();
  326. ]]>
  327. </script>
  328. <script type="javascript" ev:event="onkeydown">
  329. <![CDATA[
  330. if(event.keyCode==13)//回车事件
  331. {
  332. datagrid2.row++;
  333. if(datagrid2.row == datagrid2.rows-1)//到表格2最后一行时,焦点转移到表格3,并将表格2的焦点移动到第0行
  334. {
  335. count++;
  336. if(count==2)
  337. {
  338. model.setFocus("datagrid3" , true);//设置焦点
  339. datagrid3.col = datagrid3.colRef("CHEM_VAL");//设置表格3的焦点位置
  340. datagrid3.row = 1; //设置表格3的焦点位置
  341. datagrid2.row = 0;
  342. count = 0;//重新归0;为下一个表格准备
  343. }
  344. }
  345. }
  346. // if(event.keyCode==109)//"-"事件
  347. // {
  348. // datagrid2.row--;
  349. // datagrid2.endEditCell();
  350. // }
  351. if(event.keyCode==107)//"+"事件
  352. {
  353. datagrid2.row--;
  354. datagrid2.endEditCell();
  355. }
  356. ]]>
  357. </script>
  358. <script type="javascript" ev:event="xforms-value-changed">
  359. <![CDATA[
  360. changeColor(datagrid2);
  361. ]]>
  362. </script>
  363. </datagrid>
  364. <datagrid id="datagrid3" nodeset="/root/grid/datagrid3/SingleChem_Row" caption="成分^最小^最大^实绩^EX" colsep="^" colwidth="45, 60, 60, 60, 41" defaultrows="14" mergecellsfixedrows="bycolrec" rowsep="|" selectionmode="free" style="left:517px; top:65px; width:227px; height:296px; ">
  365. <col ref="CHEM_CD" style="font-weight:bold; text-align:left; "/>
  366. <col ref="CHEM_MIN" style="font-weight:bold; text-align:right; "/>
  367. <col ref="CHEM_MAX" style="font-weight:bold; text-align:right; "/>
  368. <col ref="CHEM_VAL" type="input" format="0.9999999" style="font-weight:bold; text-align:right; background-color:#ffff99; "/>
  369. <col ref="EX" visibility="hidden"/>
  370. <script type="javascript" ev:event="onclick">
  371. <![CDATA[
  372. datagrid3.editCell();
  373. ]]>
  374. </script>
  375. <script type="javascript" ev:event="onkeydown">
  376. <![CDATA[
  377. if(event.keyCode==13)
  378. {
  379. datagrid3.row++;
  380. if(datagrid3.row == datagrid3.rows-1)//到表格3最后一行时,焦点转移到表格4,并将表格2的焦点移动到第0行
  381. {
  382. count++;
  383. if(count==2)
  384. {
  385. model.setFocus("datagrid4" , true);//设置焦点
  386. datagrid4.col = datagrid4.colRef("CHEM_VAL");//设置表格4的焦点位置
  387. datagrid4.row = 1; //设置表格4的焦点位置
  388. datagrid3.row = 0;
  389. count = 0;//为下一个表格最准备
  390. }
  391. }
  392. }
  393. // if(event.keyCode==109)//"-"事件
  394. // {
  395. // datagrid3.row--;
  396. // datagrid3.endEditCell();
  397. // }
  398. if(event.keyCode==107)//"+"事件
  399. {
  400. datagrid3.row--;
  401. datagrid3.endEditCell();
  402. }
  403. ]]>
  404. </script>
  405. <script type="javascript" ev:event="xforms-value-changed">
  406. <![CDATA[
  407. changeColor(datagrid3);
  408. ]]>
  409. </script>
  410. </datagrid>
  411. <datagrid id="datagrid4" nodeset="/root/grid/datagrid4/SingleChem_Row" caption="成分^最小^最大^实绩^EX" colsep="^" colwidth="45, 60, 60, 60, 41" defaultrows="14" mergecellsfixedrows="bycolrec" rowsep="|" selectionmode="free" style="left:750px; top:65px; width:227px; height:296px; ">
  412. <col ref="CHEM_CD" style="font-weight:bold; text-align:left; "/>
  413. <col ref="CHEM_MIN" style="font-weight:bold; text-align:right; "/>
  414. <col ref="CHEM_MAX" style="font-weight:bold; text-align:right; "/>
  415. <col ref="CHEM_VAL" type="input" format="0.9999999" style="font-weight:bold; text-align:right; background-color:#ffff99; "/>
  416. <col ref="EX" visibility="hidden"/>
  417. <script type="javascript" ev:event="onclick">
  418. <![CDATA[
  419. datagrid4.editCell();
  420. ]]>
  421. </script>
  422. <script type="javascript" ev:event="onkeydown">
  423. <![CDATA[
  424. if(event.keyCode==13)
  425. {
  426. datagrid4.row++;
  427. if(datagrid4.rows-1 == datagrid4.row)
  428. {
  429. count++;
  430. if(count==2)
  431. {
  432. model.setFocus("datagrid2" , true);//设置焦点
  433. datagrid2.col = datagrid2.colRef("CHEM_VAL");//设置表格4的焦点位置
  434. datagrid2.row = 1; //设置表格4的焦点位置
  435. datagrid2.row = 0;
  436. count = 0;//重新归0,避免会到表格2时出问题
  437. }
  438. }
  439. }
  440. // if(event.keyCode==109)//"-"事件
  441. // {
  442. // datagrid4.row--;
  443. // datagrid4.editCell();
  444. // }
  445. if(event.keyCode==107)//"+"事件
  446. {
  447. datagrid4.row--;
  448. datagrid4.editCell();
  449. }
  450. ]]>
  451. </script>
  452. <script type="javascript" ev:event="xforms-value-changed">
  453. <![CDATA[
  454. changeColor(datagrid4);
  455. ]]>
  456. </script>
  457. </datagrid>
  458. <datagrid id="datagrid5" nodeset="/root/grid/datagrid5/CompChem_Row" caption="元素标识^复合元素或计算式^最小^最大^实绩^EX^成分" colsep="^" colwidth="112, 382, 60, 60, 60, 28, 56" defaultrows="12" mergecellsfixedrows="bycolrec" rowsep="|" selectionmode="free" tooltip="true" style="left:275px; top:365px; width:701px; height:173px; font-weight:bold; ">
  459. <col ref="COMP_DETAIL" style="font-weight:bold; text-align:left; "/>
  460. <col ref="COMP_CAL" style="font-weight:bold; text-align:left; "/>
  461. <col ref="CHEM_MIN" style="font-weight:bold; text-align:right; "/>
  462. <col ref="CHEM_MAX" style="font-weight:bold; text-align:right; "/>
  463. <col ref="CHEM_VAL" type="input" style="text-align:right; background-color:#ffff99; "/>
  464. <col ref="EX" visibility="hidden"/>
  465. <col ref="CHEM_CD" visibility="hidden"/>
  466. <script type="javascript" ev:event="onclick">
  467. <![CDATA[
  468. // datagrid5.editCell();
  469. if(datagrid5.row <= 0) return;
  470. try
  471. {
  472. var storChem;//保存每一个元素
  473. var chemCal = datagrid5.valueMatrix(datagrid5.row , datagrid5.colRef("COMP_CAL"));//保存复合元素计算式
  474. var chemRow = 0;//元素名所在列
  475. var chemVal = 3; //元素值所在列
  476. //在grid1、2、3中找到与复合计算式中相同的元素,并将对应元素的值替换到计算式中
  477. for(var i = datagrid2.fixedRows; i < datagrid2.rows; i++)
  478. {
  479. storChem = datagrid2.valueMatrix(i , chemRow);//元素名
  480. chemCal = chemCal.replaceAll(storChem , datagrid2.valueMatrix(i , chemVal).Trim()==""?0:datagrid2.valueMatrix(i , chemVal));
  481. }
  482. for(var i = datagrid3.fixedRows; i < datagrid3.rows; i++)
  483. {
  484. storChem = datagrid3.valueMatrix(i , chemRow);
  485. chemCal = chemCal.replaceAll(storChem , datagrid3.valueMatrix(i , chemVal).Trim()==""?0:datagrid3.valueMatrix(i , chemVal));
  486. }
  487. for(var i = datagrid4.fixedRows; i < datagrid4.rows; i++)
  488. {
  489. storChem = datagrid4.valueMatrix(i , chemRow);
  490. chemCal = chemCal.replaceAll(storChem , datagrid4.valueMatrix(i , chemVal).Trim()==""?0:datagrid4.valueMatrix(i , chemVal));
  491. }
  492. // alert(chemCal);
  493. input2.value = eval(chemCal.replace("=" , "")) + "";
  494. model.refresh();
  495. datagrid5.valueMatrix(datagrid5.row , datagrid5.colRef("CHEM_VAL")) = input2.value.toFixed(2);//四舍五入
  496. datagrid5.addStatus(datagrid5.row , "update");
  497. model.refresh();
  498. }catch(e)
  499. {
  500. }
  501. ]]>
  502. </script>
  503. <script type="javascript" ev:event="onkeydown">
  504. <![CDATA[
  505. if(event.keyCode==13)
  506. {
  507. datagrid5.row = datagrid5.row+1;
  508. }
  509. ]]>
  510. </script>
  511. <script type="javascript" ev:event="xforms-value-changed">
  512. <![CDATA[
  513. changeColor(datagrid5);
  514. ]]>
  515. </script>
  516. </datagrid>
  517. <caption id="caption3" class="cell" style="left:65px; top:35px; width:585px; height:20px; "/>
  518. <caption id="caption8" class="cell" style="left:0px; top:35px; width:65px; height:20px; ">炼钢工序</caption>
  519. <caption id="caption10" class="cell" style="left:0px; top:597px; width:105px; height:20px; ">厂内牌号</caption>
  520. <select1 id="radio1" ref="/root/formData/PROCCD" appearance="full" cellspacing="13" cols="10" overflow="visible" style="left:65px; top:37px; width:575px; height:20px; border-style:none; ">
  521. <choices>
  522. <item>
  523. <label>脱硫</label>
  524. <value>JA</value>
  525. </item>
  526. <item>
  527. <label>吹炼前</label>
  528. <value>J5</value>
  529. </item>
  530. <item>
  531. <label>吹炼后</label>
  532. <value>J6</value>
  533. </item>
  534. <item>
  535. <label>转炉</label>
  536. <value>JB</value>
  537. </item>
  538. <item>
  539. <label>CAS前</label>
  540. <value>J1</value>
  541. </item>
  542. <item>
  543. <label>CAS后</label>
  544. <value>J2</value>
  545. </item>
  546. <item>
  547. <label>RH</label>
  548. <value>JR</value>
  549. </item>
  550. <item>
  551. <label>LF</label>
  552. <value>JL</value>
  553. </item>
  554. <item>
  555. <label>连铸</label>
  556. <value>JJ</value>
  557. </item>
  558. <item>
  559. <label>VD炉</label>
  560. <value>VD</value>
  561. </item>
  562. </choices>
  563. <script type="javascript" ev:event="onclick">
  564. <![CDATA[
  565. find();
  566. ]]>
  567. </script>
  568. </select1>
  569. <caption id="caption2" class="cell" style="left:0px; top:5px; width:80px; height:20px; ">炉次号</caption>
  570. <input id="input1" ref="/root/OtherInfo/StlGrdResult_Row/STL_GRD" editable="false" style="left:105px; top:597px; width:165px; height:20px; text-align:left; "/>
  571. <button id="button1" style="left:145px; top:65px; width:75px; height:20px; background-image:..\..\images\btn_add.gif; ">
  572. <caption>增加</caption>
  573. <script type="javascript" ev:event="DOMActivate">
  574. <![CDATA[
  575. if(beGridChanged(datagrid1 ,datagrid2 , datagrid3 , datagrid4 ,datagrid5)=="1")
  576. {
  577. window.alert("请先保存被修改的记录!", "警告");
  578. return;
  579. }
  580. model.removenode("/root/reqData");
  581. datagrid1.addRow();
  582. var currentRow = datagrid1.row;
  583. if(datagrid1.rows == 2)//若表格1中开始没有任何信息,增加一行后才变为2行
  584. {
  585. //赋值到新增的行中
  586. datagrid1.valueMatrix(currentRow , datagrid1.colRef("CHARGE_NO"))=input40.value.Trim();
  587. datagrid1.valueMatrix(currentRow , datagrid1.colRef("PROC_CD")) = radio1.value;
  588. datagrid1.valueMatrix(currentRow , datagrid1.colRef("CHEM_SEQ")) = "01";
  589. }
  590. else
  591. {
  592. ///获得增加行的上一行的各个值
  593. var chargeNO = datagrid1.valueMatrix(currentRow-1 , datagrid1.colRef("CHARGE_NO")) ;//炉次号
  594. var procCD = datagrid1.valueMatrix(currentRow-1 , datagrid1.colRef("PROC_CD")); //工序
  595. var chemSEQ = datagrid1.valueMatrix(currentRow-1 , datagrid1.colRef("CHEM_SEQ")); //次数
  596. chemSEQ = eval(chemSEQ)+1;
  597. if(chemSEQ <= 9)
  598. {
  599. chemSEQ = "0"+chemSEQ;
  600. }
  601. ///赋值到当前增加的行
  602. datagrid1.valueMatrix(currentRow , datagrid1.colRef("CHARGE_NO"))= chargeNO;
  603. datagrid1.valueMatrix(currentRow , datagrid1.colRef("PROC_CD")) = procCD;
  604. datagrid1.valueMatrix(currentRow , datagrid1.colRef("CHEM_SEQ")) = chemSEQ;
  605. }
  606. selectRow = datagrid1.row;
  607. var iii = "N";//是否保留上一个被选中行的成分实绩
  608. for(var i = datagrid1.fixedRows; i < datagrid1.rows; i++)
  609. {
  610. if(datagrid1.valueMatrix(i , 0) == "Y")
  611. {
  612. iii = "Y";
  613. break;
  614. }
  615. }
  616. if(iii == "Y")//表示需要进行insert的
  617. {
  618. for(var i = datagrid2.fixedRows; i < datagrid2.rows; i++)
  619. {
  620. datagrid2.addStatus(i , "update");
  621. datagrid2.valueMatrix(i , datagrid2.colRef("EX")) = "Y";
  622. }
  623. for(var i = datagrid3.fixedRows; i < datagrid3.rows; i++)
  624. {
  625. datagrid3.addStatus(i , "update");
  626. datagrid3.valueMatrix(i , datagrid3.colRef("EX")) = "Y";
  627. }
  628. for(var i = datagrid4.fixedRows; i < datagrid4.rows; i++)
  629. {
  630. datagrid4.addStatus(i , "update");
  631. datagrid4.valueMatrix(i , datagrid4.colRef("EX")) = "Y";
  632. }
  633. for(var i = datagrid5.fixedRows; i < datagrid5.rows; i++)
  634. {
  635. datagrid5.addStatus(i , "update");
  636. datagrid5.valueMatrix(i , datagrid5.colRef("EX")) = "Y";
  637. }
  638. }
  639. else
  640. {
  641. //炉次号
  642. // model.makeValue("/root/reqData/CHARGENO" , datagrid1.valueMatrix(currentRow , datagrid1.colRef("CHARGE_NO")));
  643. model.makeValue("/root/reqData/ADDPARAM" , input1.value+combo1.value);//厂内牌号+生产线
  644. //将TBB01_FAC_INGR中的单一和复合元素放入后面2、3、4、5表格中,并清除原来存在的数据
  645. removeGridData();
  646. commSubmit("UIB020030-service", "addRow", "glueAction.do");
  647. ///copy成分到2、3、4、5表格中,单一成分每个表为13个,最多容纳50个单一元素(表4可多于13个)
  648. copyFixNode("/root/grid/datagrid2","/root/resData/SingleChem_VO/SingleChem_Row",1 , 13);//表2
  649. copyFixNode("/root/grid/datagrid3","/root/resData/SingleChem_VO/SingleChem_Row",14, 26);//表3
  650. copyFixNode("/root/grid/datagrid4","/root/resData/SingleChem_VO/SingleChem_Row",27,50);//表4
  651. model.copyNode("/root/grid/datagrid5" , "/root/resData/CompChem_VO");//表5
  652. model.refresh();
  653. }
  654. //必须先对 datagrid1中被选中的行清掉,否则后面的datagrid1.rebuild()操作后界面上没有被选择了,但实际上仍被选择,删除操作会出问题
  655. for(var i = datagrid1.fixedRows; i < datagrid1.rows; i++)
  656. {
  657. datagrid1.valueMatrix(i , 0) = "N";
  658. }
  659. datagrid1.colAttribute(datagrid1.colRef("PROC_CD") , "disabled") = "true";
  660. datagrid1.rebuild();
  661. datagrid1.addStatus(selectRow , "insert");//因为被rebuild,所以需要重新增加插入状态
  662. datagrid1.refresh();
  663. ]]>
  664. </script>
  665. </button>
  666. <button id="button2" style="left:210px; top:65px; width:73px; height:20px; background-image:..\..\images\btn_move.gif; ">
  667. <caption>删除</caption>
  668. <script type="javascript" ev:event="DOMActivate">
  669. <![CDATA[
  670. //遍历寻找需要删除的行
  671. if(commComfirmBox("确认删除?","提示")=="0") return;
  672. for(var i = datagrid1.rows; i >= 1; i--)
  673. {
  674. if(datagrid1.valueMatrix(i , 0)=="Y")
  675. {
  676. datagrid1.deleteRow(i , false);
  677. }
  678. }
  679. model.removenode("/root/reqData");
  680. model.makeNode("/root/reqData");
  681. b01MultiUpdate(datagrid1,"/root/reqData" ,"A", true, "rowStatusD");//获得表1中增加的记录
  682. commSubmit("UIB020030-service", "save", "glueAction.do");//delete row
  683. removeGridData();//清除2\3\4原来的数据
  684. changeColor(datagrid2);
  685. changeColor(datagrid3);
  686. changeColor(datagrid4);
  687. changeColor(datagrid5);
  688. datagrid1.clearStatus();//清除表格1被删除的状态记录
  689. datagrid2.clearStatus();
  690. datagrid3.clearStatus();
  691. datagrid4.clearStatus();
  692. datagrid5.clearStatus();
  693. model.refresh();
  694. ]]>
  695. </script>
  696. </button>
  697. <line id="line1" style="x1:0px; y1:30px; x2:978px; y2:30px; "/>
  698. <line id="line2" style="x1:2px; y1:0px; x2:980px; y2:0px; "/>
  699. <input id="input40" ref="/root/formData/CHARGENO" editable="false" style="left:80px; top:5px; width:100px; height:20px; "/>
  700. <button id="button3" style="left:185px; top:5px; width:70px; height:20px; background-image:D:\Workspace\MESSpace\xgmes3\WebContents\images\btn_find.gif; ">
  701. <caption>选择</caption>
  702. <script type="javascript" ev:event="DOMActivate">
  703. <![CDATA[
  704. window.load("./_0200CHARGENO.xrw", "modal", "modalWin", "left:400; top:40; width:620px; height:500px;sysmenu:visible; min:visible; max:hidden; resize:true;" , "/root/initChargeData" , "/root/RadioResult");
  705. ]]>
  706. </script>
  707. </button>
  708. <script type="javascript" ev:event="onaccesskey">
  709. <![CDATA[
  710. openWindow("UIB020030");
  711. ]]>
  712. </script>
  713. <caption id="caption5" class="cell" visibility="hidden" style="left:630px; top:5px; width:80px; height:20px; ">产线</caption>
  714. <select1 id="combo1" ref="/root/OtherInfo/StlGrdResult_Row/SLAB_RT" disabled="true" visibility="hidden" appearance="minimal" style="left:710px; top:5px; width:85px; height:20px; ">
  715. <choices>
  716. <item>
  717. <label>热轧厂</label>
  718. <value>H</value>
  719. </item>
  720. <item>
  721. <label>冷轧厂</label>
  722. <value>C</value>
  723. </item>
  724. <item>
  725. <label>厚板厂</label>
  726. <value>P</value>
  727. </item>
  728. <item>
  729. <label>中板厂</label>
  730. <value>Z</value>
  731. </item>
  732. <item>
  733. <label/>
  734. <value/>
  735. </item>
  736. </choices>
  737. </select1>
  738. <script type="javascript" ev:event="onkeydown">
  739. <![CDATA[
  740. if(event.keyCode == 113)
  741. {
  742. window.load("../B03/UIB030203.xrw", "modal", "modalWin", "left:400; top:40; width:420px; height:420px;sysmenu:visible; min:visible; max:hidden; resize:false;");
  743. }
  744. if(event.keyCode==116)//按F5时刷新页面
  745. {
  746. model.removenode("/root/reqData");
  747. combo2.value = document.readIniFile("session1" , "fr" , "" , "c:\\WINDOWS\\xgmes3.ini");
  748. datagrid1.colStatus(0)=false; //使表格1中“选择”列不对结果产生影响
  749. //炉次号初始化
  750. if(combo2.value=="Y")
  751. {
  752. commSubmit("UIB020030-service", "guolv", "glueAction.do");
  753. }
  754. else
  755. {
  756. commSubmit("UIB020030-service", "success", "glueAction.do");
  757. }
  758. model.copyNode("/root/initChargeData" , "/root/resData/ChargeNOResult_VO");
  759. model.copyNode("/root/initProc" , "/root/resData/ProcCDResult_VO");
  760. model.refresh();
  761. }
  762. ]]>
  763. </script>
  764. <select1 id="combo2" ref="/root/formData/guolv" visibility="visible" appearance="minimal" style="left:270px; top:5px; width:100px; height:20px; text-align:left; ">
  765. <choices>
  766. <item>
  767. <label>无连铸成分炉号</label>
  768. <value>C</value>
  769. </item>
  770. <item>
  771. <label>未判定炉号</label>
  772. <value>B</value>
  773. </item>
  774. </choices>
  775. <script type="javascript" ev:event="xforms-value-changed">
  776. <![CDATA[
  777. model.removenode("/root/reqData");
  778. if(combo2.value=="C")
  779. {
  780. commSubmit("UIB020030-service", "guolv", "glueAction.do");
  781. // alert("Y");
  782. }
  783. else
  784. {
  785. // alert("N");
  786. commSubmit("UIB020030-service", "success", "glueAction.do");
  787. model.copyNode("/root/initProc" , "/root/resData/ProcCDResult_VO");
  788. }
  789. model.copyNode("/root/initChargeData" , "/root/resData/ChargeNOResult_VO");
  790. model.refresh();
  791. document.writeIniFile("session1" , "fr" , combo2.value.Trim() , "c:\\WINDOWS\\xgmes3.ini");
  792. ]]>
  793. </script>
  794. </select1>
  795. <line id="line3" style="x1:2px; y1:60px; x2:980px; y2:60px; "/>
  796. <caption id="caption1" class="cell" style="left:274px; top:541px; width:100px; height:20px; ">备注</caption>
  797. <textarea id="textarea1" ref="/root/formData/MOD_RMK" scroll="autovscroll" style="left:274px; top:560px; width:701px; height:57px; text-align:left; vertical-align:top; "/>
  798. <button id="button99" visibility="hidden" style="left:815px; top:5px; width:100px; height:20px; ">
  799. <caption>FIND</caption>
  800. <script type="javascript" ev:event="DOMActivate">
  801. <![CDATA[
  802. find();
  803. ]]>
  804. </script>
  805. </button>
  806. </xhtml:body>
  807. </xhtml:html>