singleReport.xrw 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet href="../../css/body.css" type="text/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[新余钢铁有限责任公司产销MES系统]]>
  7. </xhtml:title>
  8. <model id="model1">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <initData>
  12. <rcvInfo>
  13. <REG_ID>r2</REG_ID>
  14. <REG_NM>生产报表浏览</REG_NM>
  15. <DEPT_CD>01100000</DEPT_CD>
  16. <DEPT_MNG_YN>N</DEPT_MNG_YN>
  17. <ROOT_AMN_YN>N</ROOT_AMN_YN>
  18. <ROLE_CD>report2</ROLE_CD>
  19. <LOCKED_YN>N</LOCKED_YN>
  20. </rcvInfo>
  21. <scrInfo>
  22. <MNSCR_URL>../../G/G07/UIG070020.xrw</MNSCR_URL>
  23. <SCR_PATH>../../R/R07/</SCR_PATH>
  24. <MNSCR_ID>UIR070020</MNSCR_ID>
  25. <P_MNSCR_ID>R03</P_MNSCR_ID>
  26. </scrInfo>
  27. <scrList>
  28. <!--
  29. <ListResult_0_VO>
  30. <ListResult_0_Row>
  31. <LEVEL>2</LEVEL>
  32. <MNSCR_ID>UIR070020</MNSCR_ID>
  33. <MNSCR_NM>交货期攻关统计报表</MNSCR_NM>
  34. <MNSCR_URL>../../G/G07/UIG070020.xrw</MNSCR_URL>
  35. </ListResult_0_Row>
  36. </ListResult_0_VO>
  37. -->
  38. </scrList>
  39. </initData>
  40. <codeData>
  41. </codeData>
  42. </root>
  43. </instance>
  44. <script type="javascript" ev:event="xforms-ready">
  45. <![CDATA[
  46. Init();
  47. ]]>
  48. </script>
  49. </model>
  50. <script type="javascript" src="../../js/boaCommon.js"/>
  51. <script type="javascript" src="../../js/boaMsg.js"/>
  52. <script type="javascript" src="../../js/mesCommon.js"/>
  53. <script type="javascript">
  54. <![CDATA[
  55. submitID = "main-service";
  56. // url = "http://localhost:8080/mymes/";
  57. var isAdmin = false;
  58. function Init() {
  59. //isAdmin = model.getValue("/root/initData/rcvInfo/ROOT_AMN_YN") == "Y";
  60. cookie = viewer.item.errorPage;
  61. if (cookie != "") {
  62. viewer.item.errorPage = "";
  63. cookies = cookie.split("|"); // username & password & url
  64. model.setValue("/root/initData/scrInfo/MNSCR_URL", cookies[2]);
  65. }
  66. showProgressBar();
  67. exec("/root/initData", "", "", "/root/codeData/ListResult_0_VO");
  68. if (model.getValue("/root/resData/userRegInfoData") != "") return;
  69. // 新闻发布
  70. //if (model.getXPathValue("count(/root/codeData/ListResult_1_VO/ListResult_1_Row)") > 0)
  71. //{
  72. // capState.value = "有重要信息发布";
  73. //}
  74. JsObject.makeButton("/root/codeData/ListResult_0_VO/ListResult_0_Row");
  75. var isNeedInit = false;
  76. if (model.getXPathValue("count(/root/initData/fwdData)") > 0) {
  77. isNeedInit = true;
  78. var url = model.getValue("/root/initData/fwdData/URL");
  79. model.removenode("/root/initData/fwdData/URL");
  80. if (url.substring(0, 1) == "/")
  81. model.setValue("/root/initData/scrInfo/MNSCR_URL", url);
  82. else
  83. model.setValue("/root/initData/scrInfo/MNSCR_URL", model.getValue("/root/initData/scrInfo/SCR_PATH") + url);
  84. model.setValue("/root/initData/scrInfo/MNSCR_ID", url.substring(url.lastIndexOf("/")+1, url.lastIndexOf(".")));
  85. }
  86. model.removenode("/root/resData");
  87. load();
  88. if (isNeedInit) model.removenode("/root/initData/fwdData");
  89. removeProgressBar();
  90. window.showPopupMenu(false);
  91. iviewer1.window.showPopupMenu(false);
  92. //iviewer1.window.setPopupMenu(true, "/root/popup/item", "label", "func", false);
  93. capID.value = "登录人:" + model.getValue("/root/initData/rcvInfo/REG_NM");
  94. }
  95. function pageInit() {
  96. model.removenode("/root/reqData");
  97. model.removenode("/root/resData");
  98. model.refresh();
  99. }
  100. function load() {
  101. showProgressBar();
  102. try {
  103. JsObject.setCookie();
  104. var mnscrid = model.getValue("/root/initData/scrInfo/MNSCR_ID");
  105. var url = model.getValue("/root/initData/scrInfo/MNSCR_URL");
  106. if (url == "") {
  107. url = model.getValue("/root/initData/scrInfo/SCR_PATH") +
  108. model.getValue("/root/initData/scrInfo/MNSCR_ID") + ".xrw";
  109. } else {
  110. model.setValue("/root/initData/scrInfo/MNSCR_ID", url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf(".")));
  111. }
  112. iviewer1.src = url;
  113. exec("/root/initData", "", "find");
  114. model.setValue("/root/initData/scrInfo/MNSCR_ID", mnscrid);
  115. if (model.getValue("/root/resData/userRegInfoData") != "") return;
  116. JsObject.setButton("/root/resData/ListResult_0_VO/ListResult_0_Row");
  117. pageInit();
  118. JsObject.setGrid();
  119. var java = iviewer1.window.javaScript;
  120. try {
  121. // java.Init(model.instances(0).selectSingleNode("/root/initData/rcvInfo"));
  122. var submodel = iviewer1.window.model;
  123. // if (submodel.getXPathValue("count(/root/initData/rcvInfo)") == 0) {
  124. submodel.makeNode("/root/initData/rcvInfo");
  125. var nodeList = model.instances(0).selectSingleNode("/root/initData/rcvInfo").childNodes;
  126. node = submodel.instances(0).selectSingleNode("/root/initData/rcvInfo");
  127. for (var i = 0; i < nodeList.length; i++)
  128. node.appendChild(nodeList.item(i));
  129. // }
  130. // if (submodel.getXPathValue("count(/root/popup)") == 0) {
  131. // submodel.makeNode("/root/popup");
  132. // var nodeList = model.instances(0).selectSingleNode("/root/popup").childNodes;
  133. // node = submodel.instances(0).selectSingleNode("/root/popup");
  134. // for (var i = 0; i < nodeList.length; i++)
  135. // node.appendChild(nodeList.item(i));
  136. // }
  137. java.Init();
  138. } catch(e) {}
  139. var title = "";
  140. try {
  141. title = " " + java.setTitle();
  142. } catch(e) {
  143. title = " " + iviewer1.window.document.title;
  144. }
  145. title = " " + title.substring(0, title.lastIndexOf(">>") + 2) + "\n " + title.substring(title.lastIndexOf(">>") + 2);
  146. capTitle.text = title;
  147. capUI.value = "登录界面:" + url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("."))
  148. } catch(e) {
  149. } finally {
  150. removeProgressBar();
  151. }
  152. }
  153. function open(node) {
  154. model.makeNode("/root/initData/fwdData");
  155. var destnode = model.instances(0).selectSingleNode("/root/initData/fwdData");
  156. if (typeof node == "object") duplicate(node, destnode);
  157. var vleft = window.screenLeft + 20;
  158. var vtop = window.screenTop + 20;
  159. window.load("./main.xrw", "new", "",
  160. "left:"+vleft+"; top:"+vtop+"; width:990; height:730;", "/root/initData", "root/initData");
  161. model.removenode("/root/initData/fwdData");
  162. }
  163. function getInitDataNode() {
  164. try {
  165. return model.instances(0).selectSingleNode("/root/initData/fwdData");
  166. } catch (e) {
  167. return null;
  168. }
  169. }
  170. function JsClass() {
  171. var btns;
  172. this.makeButton = function(nodeset) { // 动态生成按钮
  173. var cnt = model.getXPathValue("count(" + nodeset + ")");
  174. btns = new Array(cnt);
  175. for (var i=cnt; i>0; i--) {
  176. btns[i-1] = group1.createChild("xforms:button", "id:" + model.getValue(nodeset + "["+i+"]/FC_ID") +
  177. ";left:893px; top:27px; width:70px; height:18px;");
  178. }
  179. }
  180. this.setButton = function(nodeset) {
  181. var length = btns.length;
  182. for (var i=0; i<length; i++) {
  183. btns[i].visible = false;
  184. }
  185. //var btnPosition = new Array(920, 845, 770, 695, 620, 545, 470, 395);
  186. var btnLimm = 980-75; // 最后一个按键的位置
  187. var btnSize = 75;
  188. var cnt = model.getXPathValue("count(" + nodeset + ")");
  189. for (var i=cnt; i>0; i--) {
  190. var id = model.getValue(nodeset + "[" + i + "]/FC_ID");
  191. // if (id == "NULL") continue;
  192. var control = document.controls(id);
  193. control.visible = true;
  194. control.disabled = false;
  195. control.attribute("left") = btnLimm;
  196. if (model.getValue(nodeset + "[" + i + "]/FC_NM").length > 2)
  197. control.attribute("text-align") = "right";
  198. control.text = model.getValue(nodeset + "[" + i + "]/FC_NM");
  199. control.attribute("background-image") = model.getValue(nodeset + "[" + i + "]/FN_IMG_URL");
  200. control.attribute("js_func") = model.getValue(nodeset + "[" + i + "]/JS_FUNC_NM");
  201. btnLimm -= btnSize;
  202. }
  203. if (getDocument()) {
  204. var srcNode = "/root/cookieData/" + docName + "/buttons";
  205. if (nodeset != srcNode) {
  206. model.removenode(srcNode);
  207. model.makeNode(srcNode);
  208. var cnt = model.getXPathValue("count(" + nodeset + ")");
  209. for (var i=1; i<=cnt; i++) {
  210. model.makeValue(srcNode + "[" + i + "]/FC_ID", model.getValue(nodeset + "[" + i + "]/FC_ID"));
  211. model.makeValue(srcNode + "[" + i + "]/FC_NM", model.getValue(nodeset + "[" + i + "]/FC_NM"));
  212. model.makeValue(srcNode + "[" + i + "]/FN_IMG_URL", model.getValue(nodeset + "[" + i + "]/FN_IMG_URL"));
  213. model.makeValue(srcNode + "[" + i + "]/JS_FUNC_NM", model.getValue(nodeset + "[" + i + "]/JS_FUNC_NM"));
  214. }
  215. } else {
  216. model.setValue("/root/initData/scrInfo/MNSCR_ID", docName);
  217. model.refresh();
  218. }
  219. }
  220. }
  221. var docName = "";
  222. this.setCookie = function() {
  223. if (!getDocument()) return;
  224. var arrGrid = getGrid();
  225. var length = arrGrid.length;
  226. for (var i = 0; i < length; i++) {
  227. var oGrid = arrGrid[i];
  228. var cols = oGrid.cols;
  229. var colwidth = "";
  230. for (var j = 0; j < cols; j++)
  231. colwidth += "," + oGrid.colWidth(j);
  232. var name = docName + "." + oGrid.attribute("id");
  233. model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\Comsquare\\TFViewer\\DataGrid", name, "STRING") = colwidth.substring(1);
  234. }
  235. }
  236. this.setGrid = function() {
  237. if (!getDocument()) return;
  238. var arrGrid = getGrid();
  239. var length = arrGrid.length;
  240. for (var i = 0; i < length; i++) {
  241. var oGrid = arrGrid[i];
  242. var name = docName + "." + oGrid.attribute("id");
  243. var colwidth = model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\Comsquare\\TFViewer\\Config", name, "STRING");
  244. if (typeof colwidth == "undefined" || colwidth == "") continue;
  245. colwidth = colwidth.split(",");
  246. var cols = (colwidth.length < oGrid.cols)? colwidth.length : oGrid.cols;
  247. for (var j = 0; j < cols; j++) {
  248. if (colwidth[j] == 0 && isAdmin) continue;
  249. oGrid.colWidth(j) = colwidth[j];
  250. }
  251. }
  252. }
  253. function getDocument() {
  254. var src = iviewer1.src;
  255. if (src == "") return false;
  256. src = iviewer1.window.document.url;
  257. docName = src.substring(src.lastIndexOf("/") + 1, src.lastIndexOf("."));
  258. return true;
  259. }
  260. function getGrid() {
  261. var arrGrid = new Array();
  262. var controls = iviewer1.window.document.controls;
  263. var length = controls.length;
  264. var idx = 0;
  265. for (var i = 0; i < length; i++ ) {
  266. var control = controls.item(i);
  267. if (control.elementName == "xforms:datagrid")
  268. arrGrid[idx++] = control;
  269. }
  270. return arrGrid;
  271. }
  272. }
  273. var JsObject = new JsClass();
  274. var clockTimer;
  275. function setPage() {
  276. clockTimer = window.setInterval("intervalRun()", 100);
  277. }
  278. function intervalRun() {
  279. window.clearInterval(clockTimer);
  280. var src = iviewer1.window.document.url;
  281. JsObject.setButton("/root/cookieData/" + src.substring(src.lastIndexOf("/") + 1, src.lastIndexOf(".")) + "/buttons");
  282. }
  283. ]]>
  284. </script>
  285. </xhtml:head>
  286. <xhtml:body overflow="hidden" scroll="vertical" pagewidth="980" pageheight="695" style="font-family:宋体; ">
  287. <group id="group1" style="left:0px; top:0px; width:980px; height:67px; ">
  288. <caption id="caption1" style="left:705px; top:0px; width:55px; height:20px; vertical-align:middle; border-color:#000000; border-style:solid; cursor:hand; ">
  289. <![CDATA[界面选取]]>
  290. <script type="javascript" ev:event="onclick">
  291. <![CDATA[
  292. var vleft = window.screenLeft + window.width/2 - 355;
  293. var vtop = window.screenTop + window.height/2 - 250;
  294. window.load("./menu2.xrw",
  295. "modal",
  296. "",
  297. "left:"+vleft+"; top:"+vtop+"; width:715; height:500; sysmenu:visible; min:visible; max:true; resize:true; caption:hidden;",
  298. "/root/initData", "/root/initData");
  299. Init();
  300. ]]>
  301. </script>
  302. </caption>
  303. <caption id="caption2" style="left:770px; top:0px; width:55px; height:20px; vertical-align:middle; ">我的界面</caption>
  304. <select1 id="combo1" ref="/root/initData/scrInfo/MNSCR_ID" appearance="minimal" style="left:830px; top:0px; width:150px; height:20px; ">
  305. <choices>
  306. <itemset nodeset="/root/initData/scrList/ListResult_0_VO/ListResult_0_Row[LEVEL = 2]">
  307. <label ref="MNSCR_NM"/>
  308. <value ref="MNSCR_ID"/>
  309. </itemset>
  310. </choices>
  311. <script type="javascript" ev:event="xforms-value-changed">
  312. <![CDATA[
  313. model.setValue("/root/initData/scrInfo/MNSCR_URL",
  314. model.getValue("/root/initData/scrList/ListResult_0_VO/ListResult_0_Row[MNSCR_ID=/root/initData/scrInfo/MNSCR_ID]/MNSCR_URL"));
  315. load();
  316. ]]>
  317. </script>
  318. </select1>
  319. <script type="javascript" ev:event="onclick">
  320. <![CDATA[
  321. var target = event.target;
  322. var control = document.controls(target);
  323. if (control.elementName != "xforms:button") return;
  324. showProgressBar();
  325. try {
  326. var java = iviewer1.window.javaScript;
  327. if (control.attribute("js_func") != "") {
  328. eval(control.attribute("js_func"));
  329. }
  330. } catch(e) {
  331. alert("脚本执行错误:" + control.attribute("js_func"));
  332. }
  333. finally {
  334. removeProgressBar();
  335. }
  336. ]]>
  337. </script>
  338. <img id="img1" src="../../images/topframe.jpg" style="left:0px; top:0px; width:461px; height:40px; background-stretch:stretch; "/>
  339. <caption id="capTitle" style="left:470px; top:1px; width:235px; height:26px; color:#3366ff; vertical-align:top; background-image:../../images/tit.gif; "/>
  340. </group>
  341. <iviewer id="iviewer1" style="left:0px; top:50px; width:980px; height:620px; "/>
  342. <caption id="stateCaption" style="left:0px; top:675px; width:980px; height:20px; background-color:#ccccff; border-color:#ccccff; border-style:solid; "/>
  343. <caption id="capUI" style="left:0px; top:675px; width:200px; height:20px; text-align:center; background-color:#ccccff; border-color:#ccccff; border-style:solid; "/>
  344. <caption id="capID" style="left:780px; top:675px; width:200px; height:20px; text-align:center; background-color:#ccccff; border-color:#ccccff; border-style:solid; "/>
  345. </xhtml:body>
  346. </xhtml:html>