rexpert30.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. var reportId = 0;
  2. function makeReportId() {
  3. reportId = reportId + 1;
  4. return reportId;
  5. }
  6. // Rexpert30 오픈
  7. function exeReportPreview30(reportIDs, params, options, prnopt, parentObjId)
  8. {
  9. var reportNames = new Array();
  10. var uniqueId = makeReportId();
  11. for (var i=0; i<reportIDs.length;i++ )
  12. {
  13. var reportURL = "/himed/webapps/com/commonweb/rex/"+reportIDs[i]+".reb";
  14. reportNames.push(reportURL + ":" + reportIDs[i]);
  15. }
  16. if (params == null)
  17. {
  18. params = new Array();
  19. }
  20. // 세션 정보를 파라메터에 추가 (필요시코딩)
  21. for (var j = 0; j < reportNames.length; ++j) {
  22. if (j >= params.length) {
  23. params.push(new Object());
  24. }
  25. addSessionValues(params[j]);
  26. }
  27. if (options == null) {
  28. // options = "open=0;save=1;directprint=0;printdailog=0;print=1;stop=0;excel=1;zoomin=0;zoomout=1;moveprev=1;movenext=1;combo=1;movefirst=1;movelast=1;help=1";
  29. // 아래 옵션은 "open=0;save=1" 와 같음. default설정된 걸 명시적으로 선언해 둔 것. 2013.04.02 손병은
  30. options = "open=0;save=1;directprint=0;printdailog=0;print=1;zoom=1;moveprev=1;movenext=1;movefirst=1;movelast=1;refresh=1;excel=1;pdf=1;hwp=1;page=1;about=1;tab=0;statusbar=1";
  31. }
  32. if (prnopt == null) {
  33. prnopt = "1";
  34. }
  35. // Iveiwer 객체
  36. var iveiwerObj = null;
  37. if(parentObjId == null || parentObjId == ""){
  38. if(document.all("brs_report") == null)
  39. {
  40. //popup
  41. iveiwerObj = null;
  42. }
  43. else
  44. {
  45. //browser
  46. iveiwerObj = brs_report;
  47. }
  48. }
  49. else{
  50. var parentObj = document.all(parentObjId);
  51. if(parentObj != null){
  52. var childObj = document.all("brs_"+parentObjId);
  53. if(childObj != null){
  54. iveiwerObj = childObj;
  55. }
  56. }
  57. }
  58. if (checkOpener())
  59. {
  60. opener.htmlwindow.openReport(reportNames, params, options, prnopt, uniqueId, iveiwerObj);
  61. }
  62. else
  63. {
  64. htmlwindow.openReport(reportNames, params, options, prnopt, uniqueId, iveiwerObj);
  65. }
  66. }
  67. function addSessionValues(obj)
  68. {
  69. var userInfoKeyStr = new String(htmlwindow.sessionFormat);
  70. var userInfoKeyArr = userInfoKeyStr.split("|");
  71. var userInfoStr = getGlobalVariable("userinfos");
  72. var userInfoArr = userInfoStr.split("|");
  73. var len = userInfoArr.length;
  74. for(i=0;i<len;i++)
  75. {
  76. obj["session_"+userInfoKeyArr[i]] = userInfoArr[i];
  77. }
  78. // 시스템 변수를 넣어준다.
  79. var baseURLArr = htmlwindow.location.href.split("/");
  80. obj["system_logo"] = baseURLArr[0]+"//"+baseURLArr[2] + "/himed/rexpert/logo_"+ getUserInfo("systeminstcd") +".gif";
  81. }
  82. function getCSVString(ref, names)
  83. {
  84. var nodeList = instance1.selectNodes(ref);
  85. if( nodeList.length == 0 )
  86. return "";
  87. var sColSep = "|*|";
  88. var sRowSep = "^#^";
  89. var rCSV = "";
  90. var childNodeList = nodeList.item(0).childNodes;
  91. var childNodeCnt = childNodeList.length;
  92. if( childNodeCnt == 0 )
  93. return;
  94. var i, j;
  95. var index = new Array(); // 리턴한 컬럼인덱스
  96. if (names == null)
  97. {
  98. names = new Array();
  99. }
  100. if (names.length == 0) // 배열이 없으면 전체를 대상으로 함
  101. {
  102. for( j = 0; j < childNodeCnt - 1; j++)
  103. {
  104. index.push(j); // 컬럼인덱스를 집어 넣음
  105. }
  106. }
  107. else // 배열이 있으면 해당 컬럼만 대상으로 함
  108. {
  109. for (var i=0; i<names.length;i++)
  110. {
  111. var isAdded = false;
  112. for( j = 0; j < childNodeCnt - 1; j++)
  113. {
  114. if (names[i] == childNodeList.item(j).nodeName)
  115. {
  116. index.push(j); // 컬럼인덱스를 집어 넣음
  117. isAdded = true;
  118. break;
  119. }
  120. }
  121. if (isAdded == false)
  122. {
  123. index.push(-1);
  124. }
  125. }
  126. }
  127. // 배열의 갯수가 0이면 전체를 대상으로 함
  128. /*
  129. for( i = 0; i < childNodeCnt - 1; i++) {
  130. rCSV += childNodeList.item(i).nodeName + sColSep;
  131. }
  132. rCSV += childNodeList.item(i).nodeName + sRowSep;
  133. */
  134. var node;
  135. var cur_count = 0;
  136. while( node = nodeList.nextNode() ) {
  137. childNodeList = node.childNodes;
  138. for( i = 0; i < index.length; i++) {
  139. var pos = parseInt(index[i]);
  140. if (pos >= 0)
  141. {
  142. rCSV += childNodeList.item(pos).text + sColSep;
  143. }
  144. else
  145. {
  146. rCSV += "" + sColSep;
  147. }
  148. }
  149. cur_count++;
  150. if (cur_count < nodeList.length)
  151. {
  152. rCSV += sRowSep;
  153. }
  154. }
  155. return rCSV;
  156. }
  157. function makeReportPreview30(left, top, width, height, parentObjId){
  158. if(left==null || top==null || width==null || height==null){
  159. messageBox("미리보기 크기정보가", "I004");
  160. }else{
  161. if(parentObjId == null || parentObjId == ""){
  162. if(document.all("brs_report") == null){
  163. if(document.all("grp_biz") == null){
  164. body.createChild("xforms:iviewer", "id:brs_report; src:../../../com/commonweb/xrw/SPZUR00400_보고서30.xrw; left:"+left+"px; top:"+top+"px; width:"+width+"px; height:"+height+"px;");
  165. }else{
  166. grp_biz.createChild("xforms:iviewer", "id:brs_report; src:../../../com/commonweb/xrw/SPZUR00400_보고서30.xrw; left:"+left+"px; top:"+top+"px; width:"+width+"px; height:"+height+"px;");
  167. }
  168. }
  169. }else{
  170. var parentObj = document.all(parentObjId);
  171. if(parentObj != null){
  172. //parentObj.createChild("xforms:iviewer", "id:brs_"+parentObjId+"; src:../../../com/commonweb/xrw/SPZUR00100_보고서.xrw; left:"+left+"px; top:"+top+"px; width:"+width+"px; height:"+height+
  173. parentObj.createChild("xforms:iviewer", "id:brs_"+parentObjId+"; src:../../../com/commonweb/xrw/SPZUR00400_보고서30.xrw; left:"+left+"px; top:"+top+"px; width:"+width+"px; height:"+height+"px;");
  174. }
  175. }
  176. }
  177. }