9b9f9af39672a263540edbe5e4d5f7adbd0fcca9.svn-base 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /**************************************************************************************************************/
  2. /**************************************************************************************************************/
  3. /*1)parseList 结果集转化为LIST
  4. /*2)
  5. /*3)
  6. /*4)
  7. /*5)
  8. /***************************************************************************************************************/
  9. /*
  10. *@desc : 将结果集转化为LIST
  11. *@param : nodePath 例:Customer_VO
  12. * arrayName 例:var arrayName = new Array()
  13. */
  14. function parseList(nodePath,arrayName)
  15. {
  16. var node = instance1.selectSingleNode(nodePath);
  17. var index = 0;
  18. if(node.hasChildNodes())
  19. {
  20. var List = node.childNodes;
  21. while (Map = List.nextNode())
  22. {
  23. var Child = Map.childNodes;
  24. arrayName[index] = new Array();
  25. while (Element = Child.nextNode())
  26. {
  27. var tagName = Element.tagName;
  28. var value = Element.value;
  29. arrayName[index][tagName]= value;
  30. }
  31. index++;
  32. }
  33. }
  34. }
  35. /*
  36. *@desc : 将结果集转化为json格式的字符串
  37. *@param : nodePath,VO赋值后的数据源.例:/root/datagrid1比如页面存在model.copyNode("/root/datagrid1" , "/root/resData/WgtList_VO").
  38. * 推荐使用 /root/datagrid1,虽然/root/resData/WgtList_VO也能取到值,但只限首次.
  39. *return : str
  40. */
  41. function parseVoToStr(nodePath)
  42. {
  43. var str = "[";
  44. var node = instance1.selectSingleNode(nodePath);
  45. if(node.hasChildNodes())
  46. {
  47. var List = node.childNodes;
  48. while (Map = List.nextNode())
  49. {
  50. var Child = Map.childNodes;
  51. str += "{";
  52. while (Element = Child.nextNode())
  53. {
  54. var tagName = Element.tagName;
  55. var value = Element.value;
  56. str += "\""+tagName+"\":\""+value+"\",";
  57. }
  58. str=str.substring(0,str.length-1);
  59. str += "},";
  60. }
  61. str=str.substring(0,str.length-1);
  62. }
  63. str += "]";
  64. return str;
  65. }
  66. /*
  67. *@desc : 获取datagrid列对应字段,以^连接
  68. *@param : nodePath,VO赋值后的数据源.例:/root/datagrid1
  69. *return : str
  70. */
  71. function getVoColrefs(nodePath)
  72. {
  73. var str = "";
  74. var node = instance1.selectSingleNode(nodePath);
  75. if(node.hasChildNodes())
  76. {
  77. var tagName="";
  78. var List = node.childNodes;
  79. Map = List.nextNode();
  80. var Child = Map.childNodes;
  81. while (Element = Child.nextNode())
  82. {
  83. tagName = Element.tagName;
  84. str += tagName+"^";
  85. }
  86. str=str.substring(0,str.length-1);
  87. }
  88. return str;
  89. }
  90. /*
  91. *@desc : 公用导出EXCEL方法
  92. *@param : sheetName,工作表名称.例:XX报表
  93. * title,首行列名.例:序号^班组
  94. * nodePath,VO赋值后的数据源.例:/root/datagrid1
  95. * serviceName,请求service地址.例:UIG100001-service
  96. * jsonMerges,合并行列json格式字符串.导出正常表格请传空值.
  97. * oType,导出文件类型.例:Excel
  98. */
  99. function commonOutExcel(sheetName,title,nodePath,serviceName,jsonMerges,oType)
  100. {
  101. model.removenode("/root/reqData");
  102. model.makeNode("/root/reqData");
  103. if ( oType == "" ) {
  104. window.alert("请选择导出文件类型","提示");
  105. return;
  106. }
  107. model.makeValue("/root/reqData/oType",oType);
  108. model.makeValue("/root/reqData/sheetName",sheetName);
  109. model.makeValue("/root/reqData/title",title);
  110. model.makeValue("/root/reqData/colRef",getVoColrefs(nodePath));
  111. var list = parseVoToStr(nodePath);//数据集
  112. model.makeValue("/root/reqData/list",list);
  113. model.makeValue("/root/reqData/jsonMerges",jsonMerges);
  114. commSubmit(serviceName , "outExcel" , "glueAction.do");
  115. var errorMes = model.getValue("/root/resData/errorData");
  116. if(errorMes != "")
  117. {
  118. window.alert(errorMes,"错误");
  119. model.removenode("/root/resData/errorData");
  120. }else{
  121. window.alert("导出成功!" , "提示");
  122. window.load(url+"excelDown.down?filepath="+sheetName+"."+oType,"html");
  123. }
  124. }
  125. /*
  126. *@desc : 公用导出EXCEL方法
  127. *@param : sheetName,工作表名称.例:XX报表
  128. * title,首行列名.例:序号^班组
  129. * colRef,列对应字段.例:NAME^SUM_DAY_WGT
  130. * jsonDatas,要导出的json格式数据集.例:/root/datagrid1
  131. * serviceName,请求service地址.例:UIG100001-service
  132. * jsonMerges,合并行列json格式字符串.导出正常表格请传空值.
  133. * oType,导出文件类型.例:Excel
  134. */
  135. function commonOuterExcel(sheetName,title,colRef,jsonDatas,serviceName,jsonMerges,oType)
  136. {
  137. model.removenode("/root/reqData");
  138. model.makeNode("/root/reqData");
  139. if ( oType == "" ) {
  140. window.alert("请选择导出文件类型","提示");
  141. return;
  142. }
  143. model.makeValue("/root/reqData/oType",oType);
  144. model.makeValue("/root/reqData/sheetName",sheetName);
  145. model.makeValue("/root/reqData/title",title);
  146. model.makeValue("/root/reqData/colRef",colRef);
  147. model.makeValue("/root/reqData/list",jsonDatas);
  148. model.makeValue("/root/reqData/jsonMerges",jsonMerges);
  149. commSubmit(serviceName , "outExcel" , "glueAction.do");
  150. var errorMes = model.getValue("/root/resData/errorData");
  151. if(errorMes != "")
  152. {
  153. window.alert(errorMes,"错误");
  154. model.removenode("/root/resData/errorData");
  155. }else{
  156. window.alert("导出成功!" , "提示");
  157. //var filename = window.fileDialog("save", ",", false, "", "xls", "Excel File(*.xls)|*.xls");
  158. window.load(url+"excelDown.down?filepath="+sheetName+"."+oType,"html");
  159. //window.download(url+"excelDown.down?filepath="+sheetName+"."+oType,filename,false);
  160. }
  161. }