mesCommon.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498
  1. function xforms_submit_error() {
  2. commMsgBox(error.description);
  3. event.stoppropagation();
  4. }
  5. function commCurDateTimeFormat() {
  6. var dte = new Date();
  7. var year = dte.getYear();
  8. var month = (dte.getMonth() + 1);
  9. var day = dte.getDate();
  10. var hour = dte.getHours();
  11. var minute = dte.getMinutes();
  12. var seconds = dte.getSeconds();
  13. dte = null;
  14. if(month < 10) month = "0" + month;
  15. if(day < 10) day = "0" + day;
  16. if (hour < 10) hour = "0" + hour;
  17. if (minute < 10) minute = "0" + minute;
  18. if (seconds < 10) seconds = "0" + seconds;
  19. // return year + "-" + month + "-" + day + " " +
  20. // hour + ":" + minute + ":" + seconds;
  21. return year + "" + month + "" + day + "" +
  22. hour + "" + minute + "" + seconds;
  23. }
  24. function showProgressBar() {
  25. var pbWidth = 200;
  26. var pbHeight = 100;
  27. var width = window.width;
  28. var height = window.height;
  29. var left = window.screenLeft + (width - pbWidth) / 2;
  30. var top = window.screenTop + (height - pbHeight) / 2;
  31. body.createChild("xforms:group", "id:progressBar;left:" + left + "px; top:" + top + "px; width:" + pbWidth + "px; height:" + pbHeight + "px; popup:true; showeffect:blend 300; background-color:#dddddd; background-image:../../images/progress.gif; background-position:center; background-stretch:no-stretch;");
  32. }
  33. function removeProgressBar() {
  34. body.removeChild("progressBar");
  35. }
  36. function commAddRow(datagrid) {
  37. if( typeof datagrid == 'string' ) datagrid = document.controls(datagrid);
  38. datagrid.addRow();
  39. //datagrid.rowStyle(datagrid.rows-1,"data","background-color") = insertRowStyle;
  40. var row = datagrid.rows-1;
  41. if (arguments.length > 1) {
  42. var cols = arguments[1];
  43. if ( typeof cols == 'string' && cols != "")
  44. cellStyle(datagrid, row, cols);
  45. }
  46. datagrid.row = row;
  47. datagrid.isSelected(datagrid.rows) = true;
  48. }
  49. function commDelRow(datagrid, chkRef) {
  50. if( typeof datagrid == 'string' ) datagrid = document.controls(datagrid);
  51. var length = arguments.length;
  52. chkRef = datagrid.colRef(chkRef);
  53. for (var i=datagrid.rows; i>(datagrid.fixedRows-1); i--) {
  54. if(datagrid.valueMatrix(i, chkRef)=='true' || datagrid.valueMatrix(i, chkRef)=='Y') {
  55. if( datagrid.rowStatus(i)==1 || datagrid.rowStatus(i)==3 ) {
  56. datagrid.deleteRow(i);
  57. } else {
  58. datagrid.isReadOnly(i, 0, i, (datagrid.cols-1)) = true;
  59. datagrid.isReadOnly(i, chkRef, i, chkRef) = false;
  60. if (length > 2) {
  61. var cols = arguments[2].split(",");
  62. for(var j = 0; j<cols.length; j++) {
  63. var col = datagrid.colRef(cols[j]);
  64. datagrid.isReadOnly(i, col, i, col) = false;
  65. }
  66. }
  67. datagrid.rowStyle(i, "data", "background-color") = deleteRowStyle;
  68. datagrid.addStatus(i, "delete");
  69. }
  70. } else {
  71. datagrid.isReadOnly(i, 0, i, (datagrid.cols-1)) = false;
  72. if (length > 3) {
  73. var cols = arguments[3].split(",");
  74. for(var j = 0; j<cols.length; j++) {
  75. var col = datagrid.colRef(cols[j]);
  76. datagrid.isReadOnly(i, col, i, col) = true;
  77. }
  78. }
  79. datagrid.rowStyle(i, "data", "background-color") = initCellStyle;
  80. datagrid.removeStatus(i, "delete");
  81. if (length > 4) cellStyle(datagrid, i, arguments[4]);
  82. }
  83. }
  84. }
  85. function commMultiUpdate(gridID,newNodesetPath,multiFlag,bRebuild,newEleName,addonNode) {
  86. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  87. var data = oGrid.getUpdateData();
  88. var rowSep = (oGrid.attribute("rowsep")=='')?'|':oGrid.attribute('rowsep');
  89. var colSep = (oGrid.attribute("colsep")=='')?'^':oGrid.attribute('colsep');
  90. var up_data = data.split(rowSep);
  91. var nHeaderLen = 2;
  92. var nodesetPath = oGrid.attribute("nodeset");
  93. if(up_data.length <= nHeaderLen){
  94. return false;
  95. }
  96. var insertFlag = 0;
  97. var updateFlag = 0;
  98. var deleteFlag = 0;
  99. var arrHeader = new Array();
  100. var arrData = new Array();
  101. var oldNodeset = model.instances(0).selectSingleNode(nodesetPath);
  102. var strNodesetName = nodesetPath.substring(nodesetPath.lastIndexOf("/")+1);
  103. model.makeNode(newNodesetPath);
  104. var parentNode = model.instances(0).selectSingleNode(newNodesetPath);
  105. for(var i=0;i<up_data.length-1;i++){
  106. var vRow = up_data[i].split(colSep);
  107. if(i==0) {
  108. arrHeader = vRow;
  109. continue;
  110. }
  111. var up_flag = vRow[0];
  112. var bInsert = (up_flag == "i" && multiFlag=="I")?true:false;
  113. var bUpdate = (up_flag == "u" && multiFlag=="U")?true:false;
  114. var bDelete = (up_flag == "d" && multiFlag=="D")?true:false;
  115. var bMulti = (multiFlag=="A")?true:false;
  116. if(bInsert){
  117. if(!bRebuild) {
  118. var rowNode = model.instances(0).createElement(newEleName);
  119. rowNode.nodeValue = up_data[i];
  120. parentNode.appendChild(rowNode);
  121. } else {
  122. arrData[insertFlag++] = vRow;
  123. }
  124. } else if(bUpdate){
  125. if(!bRebuild) {
  126. var rowNode = model.instances(0).createElement(newEleName);
  127. rowNode.nodeValue = up_data[i];
  128. parentNode.appendChild(rowNode);
  129. } else {
  130. arrData[updateFlag++] = vRow;
  131. }
  132. }else if(bDelete){
  133. if(!bRebuild) {
  134. var rowNode = model.instances(0).createElement(newEleName);
  135. rowNode.nodeValue = up_data[i];
  136. parentNode.appendChild(rowNode);
  137. } else {
  138. arrData[deleteFlag++] = vRow;
  139. }
  140. }else if(bMulti){
  141. if(!bRebuild) {
  142. var rowNode = model.instances(0).createElement(newEleName);
  143. rowNode.nodeValue = up_data[i];
  144. parentNode.appendChild(rowNode);
  145. } else {
  146. arrData[(i-1)] = vRow;
  147. }
  148. }
  149. }
  150. if(arrData.length < 1 && bRebuild) return false;
  151. if(bRebuild) {
  152. var addonNodes, endIdx = -1, startRow = oGrid.fixedRows, startCol = oGrid.fixedCols;
  153. if (typeof addonNode == "string" && addonNode != "") {
  154. addonNodes = addonNode.split(",");
  155. endIdx = addonNodes.length;
  156. // for (var i=0; i<endIdx; i++)
  157. // addonNodes[i] = addonNodes[i].Trim();
  158. }
  159. for(var i=0; i<arrData.length; i++) {
  160. var r = arrData[i];
  161. var rowNode = model.instances(0).createElement(strNodesetName);
  162. for(var j=0; j<arrHeader.length; j++) {
  163. var colName;
  164. if(j==1) {
  165. for (var n=0; n<endIdx; n++) {
  166. colName = addonNodes[n];
  167. if (colName == "") continue;
  168. var colNode = model.instances(0).createElement(colName);
  169. var curFocusedIdx = Number(r[1]) - startRow + 1;
  170. colNode.nodeValue = model.getValue(nodesetPath + "[" + curFocusedIdx + "]/" + colName);
  171. rowNode.appendChild(colNode);
  172. }
  173. continue;
  174. }
  175. if(j==0) {
  176. colName = newEleName;
  177. } else {
  178. colName = arrHeader[j];
  179. // key = false
  180. if (oGrid.colAttribute(j-2+startCol, "key") == "false" )
  181. continue;
  182. }
  183. var colNode = model.instances(0).createElement(colName);
  184. colNode.nodeValue = r[j];
  185. rowNode.appendChild(colNode);
  186. }
  187. parentNode.appendChild(rowNode);
  188. var flagNode = model.instances(0).selectNodes(newNodesetPath+"/"+strNodesetName+"["+(i+1)+"]/"+newEleName);
  189. if( flagNode.length > 1 ) {
  190. for( var k = 2; k <= flagNode.length; k++ ) {
  191. model.removeNode(newNodesetPath+"/"+strNodesetName+"["+(i+1)+"]/"+newEleName+"["+k+"]");
  192. }
  193. }
  194. }
  195. }
  196. return true;
  197. }
  198. function commGridLevels(gridID) {
  199. var datagrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  200. var nodeset = datagrid.nodeset;
  201. var start = datagrid.fixedRows;
  202. var cnt = model.getXPathValue("count(" + nodeset + ")");
  203. for(var i=1; i<=cnt; i++)
  204. datagrid.outlinelevel(start+i-1) = model.getValue(nodeset + "["+i+"]/LEVEL");
  205. datagrid.outlinebar = 4;
  206. datagrid.treecolor = "red";
  207. }
  208. function commGridLevel2(gridID) {
  209. var datagrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  210. datagrid.rebuild();
  211. commGridInit(datagrid);
  212. if (datagrid.rows > datagrid.fixedRows) {
  213. commGridLevels(datagrid);
  214. var rows = datagrid.rows;
  215. var colChk = datagrid.colRef("CHK");
  216. var alternate = false;
  217. for (var i=datagrid.fixedRows; i<rows; i++) {
  218. datagrid.valueMatrix(i, colChk) = "N";
  219. if (model.getValue(datagrid.nodeset + "[" + i + "]/LEVEL") == "2") {
  220. datagrid.rowStyle(i, "data", "background-color") = deleteRowStyle;
  221. datagrid.isReadOnly(i, colChk, i, colChk) = true;
  222. } else {
  223. datagrid.isCollapsed(i) = 1;
  224. if (alternate) {
  225. datagrid.rowStyle(i, "data", "background-color") = "#F7F9F9";
  226. alternate = false;
  227. } else {
  228. alternate = true;
  229. }
  230. }
  231. }
  232. }
  233. }
  234. function commSendReq() {
  235. try {
  236. var length = arguments.length;
  237. model.removeNodeset("/root/reqData");
  238. model.makeNode("/root/reqData");
  239. for(var j = 0; j<length; j++) {
  240. var srcref = arguments[j];
  241. var dup_node = instance1.selectSingleNode(srcref);
  242. var dup_nodeList = dup_node.childNodes;
  243. var nodeCnt = dup_nodeList.length;
  244. if (nodeCnt == 0) {
  245. model.duplicate("/root/reqData", srcref);
  246. } else {
  247. var cnt =1;
  248. for (var i = 0; i < nodeCnt; i++) {
  249. var copy_node = srcref + "/" + dup_nodeList.item(i).nodeName;
  250. var nodeSetYn = instance1.selectNodes(copy_node);
  251. if(nodeSetYn.length>1) {
  252. model.duplicate("/root/reqData", copy_node+"["+cnt+"]");
  253. cnt++;
  254. } else {
  255. model.duplicate("/root/reqData", copy_node);
  256. }
  257. }
  258. }
  259. }
  260. } catch (e) {
  261. model.alert("Error", "Node Error!");
  262. return false;
  263. }
  264. }
  265. var submitID = "mes-service";
  266. var action = "glueAction.do";
  267. function exec(searchInfo, datagrid, serviceTag) {
  268. if(typeof searchInfo == "string" && searchInfo != "") {
  269. var searchInfos = searchInfo.split(",");
  270. searchInfo = "'" + searchInfos[0] + "'";
  271. for (var i = 1; i < searchInfos.length; i++)
  272. searchInfo += ", '" + searchInfos[i] + "'";
  273. eval("commSendReq(" + searchInfo + ")");
  274. }
  275. var Idx = 3;
  276. var length = arguments.length;
  277. var multiStatus = false; // multi grids
  278. if (length > Idx && typeof arguments[Idx] == "boolean") {
  279. multiStatus = arguments[Idx];
  280. Idx++;
  281. }
  282. var multiFlag = "A";
  283. if (length > Idx && typeof arguments[Idx] == "string") {
  284. multiFlag = arguments[Idx];
  285. if (multiFlag == "A" || multiFlag == "U" || multiFlag == "I" || multiFlag == "D")
  286. Idx++;
  287. else multiFlag = "A";
  288. }
  289. var addonNode = "";
  290. if (length > Idx && typeof arguments[Idx] == "string" && arguments[Idx].indexOf("/") == -1) {
  291. addonNode = arguments[Idx];
  292. Idx++;
  293. }
  294. if(typeof datagrid == "string" && datagrid != "") {
  295. var datagrids = datagrid.split(",");
  296. for (var i=0; i<datagrids.length; i++) {
  297. datagrid = datagrids[i];
  298. if (datagrid == "") continue;
  299. if (multiStatus)
  300. commMultiUpdate(datagrid, "/root/reqData", "A", true, "rowStatus_"+i, addonNode);
  301. else commMultiUpdate(datagrid, "/root/reqData", "A", true, "rowStatus", addonNode);
  302. }
  303. } else if(typeof datagrid == "object") {
  304. commMultiUpdate(datagrid, "/root/reqData", "A", true, "rowStatus", addonNode);
  305. }
  306. if(serviceTag == null || serviceTag == "")
  307. serviceTag = "success";
  308. commSubmit(submitID, serviceTag, action);
  309. if (model.getValue("/root/resData/errorData") != "") {
  310. removeProgressBar();
  311. alert(model.getValue("/root/resData/errorData"));
  312. } else {
  313. for (var i = Idx; i < length; i++) {
  314. var srcref = arguments[i];
  315. var Idx = srcref.lastIndexOf("/");
  316. var lastref = srcref.substr(Idx + 1);
  317. commAppendData(srcref, "/root/resData/" + lastref);
  318. };
  319. }
  320. }
  321. function alertXML(nodeset) {
  322. if (typeof nodeset == "undefined") nodeset = "/root/reqData";
  323. try {
  324. model.alert(model.instances(0).selectSingleNode(nodeset).xml);
  325. } catch(e) {
  326. model.alert(nodeset);
  327. }
  328. }
  329. function alertGrid(gridID, addonNode) {
  330. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  331. commMultiUpdate(oGrid, "/root/reqData", "A", true, "rowStatus", addonNode);
  332. alertXML();
  333. }
  334. /*
  335. var _countTimer = 0;
  336. var _clockTimer = new Array();
  337. var _msg = new Array();
  338. function alert(msg) {
  339. body.removeChild("progressBar");
  340. _clockTimer[_countTimer] = window.setInterval("intervalRun()", 100);
  341. _msg[_countTimer++] = msg;
  342. }
  343. function intervalRun() {
  344. window.clearInterval(_clockTimer[--_countTimer]);
  345. model.alert(_msg[_countTimer]);
  346. }
  347. */
  348. function InitParams(node) {
  349. if (typeof node == "undefined" && typeof node != "object") return;
  350. model.removenode("/root/initData/rcvInfo");
  351. model.makeNode("/root/initData/rcvInfo");
  352. var nodeList = node.childNodes;
  353. node = model.instances(0).selectSingleNode("/root/initData/rcvInfo");
  354. for (var i = 0; i < nodeList.length; i++)
  355. node.appendChild(nodeList.item(i));
  356. }
  357. function copyNode(srcnode, destref) {
  358. if (srcnode == null || destref == "") return;
  359. model.removenode(destref);
  360. model.makeNode(destref);
  361. var destnode = model.instances(0).selectSingleNode(destref);
  362. var nodeList = srcnode.childNodes;
  363. for (var i = 0; i < nodeList.length; i++)
  364. destnode.appendChild(nodeList.item(i));
  365. }
  366. function duplicate(srcnode, destnode) {
  367. if (srcnode == null || destnode == null) return;
  368. var nodeList = destnode.childNodes;
  369. for (var i = 0; i < nodeList.length; i++)
  370. destnode.removeChild(nodeList.item(i));
  371. nodeList = srcnode.childNodes;
  372. for (var i = 0; i < nodeList.length; i++)
  373. destnode.appendChild(nodeList.item(i));
  374. }
  375. function cellStyle(gridID, row, cols) {
  376. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  377. cols = cols.split(",");
  378. for (var i=0; i<cols.length; i++)
  379. oGrid.cellStyle("background-color", row, oGrid.colRef(cols[i])) = insertRowStyle;
  380. }
  381. function colStyle(gridID, cols) {
  382. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  383. cols = cols.split(",");
  384. for (var i=0; i<cols.length; i++)
  385. oGrid.colStyle(oGrid.colRef(cols[i]), "data", "background-color") = insertRowStyle;
  386. }
  387. function isReadOnly(gridID, cols) {
  388. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  389. cols = cols.split(",");
  390. rows = oGrid.rows - 1;
  391. for (var i=0; i<cols.length; i++) {
  392. var colRef = oGrid.colRef(cols[i]);
  393. oGrid.isReadOnly(0, colRef, rows, colRef) = true;
  394. }
  395. }
  396. function setReqData(node) {
  397. var reqData = "";
  398. if (node.hasChildNodes()) {
  399. var nodeList = node.childNodes;
  400. for (var i = 0; i < nodeList.length; i++) {
  401. reqData += setReqData(nodeList.item(i));
  402. }
  403. } else {
  404. reqData = "&" + node.nodeName + "=" + node.nodeValue;
  405. }
  406. return reqData;
  407. }
  408. function excelSubmit(submitID, serviceTag) {
  409. var reqData = setReqData(model.instances(0).selectSingleNode("/root/reqData"));
  410. window.load(url + "etAction.jsp?ServiceName=" + submitID + "&" + serviceTag + "=1" + reqData, "html");
  411. }
  412. function excelExport() {
  413. var filename = window.fileDialog("save", ",", false, "", "xls", "Excel File(*.xls)|*.xls");
  414. if(filename!="") {
  415. var gridID;
  416. try {
  417. var java = iviewer1.window.javaScript;
  418. gridID = java.excelExport();
  419. try {
  420. alert("开始导出 Excel 文件:" + filename + " !!!!!!!!");
  421. //var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  422. var oGrid = (typeof gridID == 'string')?document.controls(gridID):gridID;
  423. oGrid.saveExcel(filename, "sheetname:Transaction;colhiddenextend:true;exportfalserows:0;");
  424. //oGrid.saveExcel(filename, "sheetname:sheet1;colhiddenextend:false;rowhiddenextend:false;exportfalsecols:1,2;exportfalserows:0;col_1:label;");
  425. alert("导出 Excel 文件位置:" + filename + " 成功!!!");
  426. } catch(e) {
  427. alert("导出 Excel 出错,请确认已安装 Microsoft Office!!!");
  428. }
  429. } catch(e) {
  430. alert("脚本执行错误:excelExport()!!");
  431. }
  432. }
  433. }
  434. //从远程服务器地址strRemoteURL下载文件到本地strLocalURL
  435. function downURL(strRemoteURL, strLocalURL){
  436. try{
  437. var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
  438. xmlHTTP.open("post", strRemoteURL, false);
  439. xmlHTTP.send();
  440. var adodbStream = new ActiveXObject("ADODB.Stream");
  441. adodbStream.Type = 1;//1=adTypeBinary
  442. adodbStream.Open();
  443. adodbStream.write(xmlHTTP.responseBody);
  444. adodbStream.SaveToFile(strLocalURL, 2);
  445. adodbStream.Close();
  446. adodbStream = null;
  447. xmlHTTP = null;
  448. }
  449. catch (e){
  450. alert("数据处理失败,请重新打印");
  451. return false;
  452. }
  453. alert("下载完成.");
  454. return true;
  455. }