SPZUR00100_보고서.html 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta content="initial-scale=1.0" name="viewport">
  4. <meta content="IE=edge" http-equiv="X-UA-Compatible">
  5. <script type="text/javascript">__LANGUAGE = "kr";__chromeFrame = false;__useBinding=false;__SoonsuViewer=true; htmlwindow=null; htmldocument=null;</script><script src="../../../com/commonweb/js/common.js.soonsu" type="text/javascript"></script><script src="../../../com/commonweb/js/SPZUR00100.js.soonsu" type="text/javascript"></script>
  6. <script src="/Soonsu/kr/comsquare/js/Library/Browser.js" type="text/javascript"></script>
  7. <script src="/Soonsu/kr/comsquare/js/Library/Language.js" type="text/javascript"></script>
  8. <script src="/Soonsu/kr/comsquare/js/Library/Define.js" type="text/javascript"></script>
  9. <script src="/Soonsu/kr/comsquare/js/Library/XmlLib.js" type="text/javascript"></script>
  10. <script src="/Soonsu/kr/comsquare/js/Library/HtmlLib.js" type="text/javascript"></script>
  11. <script src="/Soonsu/kr/comsquare/js/Library/HttpClient.js" type="text/javascript"></script>
  12. <script src="/Soonsu/kr/comsquare/js/Library/Graphics.js" type="text/javascript"></script>
  13. <script src="/Soonsu/kr/comsquare/js/Library/Format.js" type="text/javascript"></script>
  14. <script src="/Soonsu/kr/comsquare/js/Library/XpathProcessor.js" type="text/javascript"></script>
  15. <script src="/Soonsu/kr/comsquare/js/Library/ActionEvent.js" type="text/javascript"></script>
  16. <script src="/Soonsu/kr/comsquare/js/Library/jquery-1.7.min.js" type="text/javascript"></script>
  17. <script src="/Soonsu/kr/comsquare/js/XFormsElement.js" type="text/javascript"></script>
  18. <script src="/Soonsu/kr/comsquare/js/global/XFormsStyleSheet.js" type="text/javascript"></script>
  19. <script src="/Soonsu/kr/comsquare/js/global/XFormsWindow.js" type="text/javascript"></script>
  20. <script src="/Soonsu/kr/comsquare/js/global/XFormsDocument.js" type="text/javascript"></script>
  21. <script src="/Soonsu/kr/comsquare/js/global/XFormsModel.js" type="text/javascript"></script>
  22. <script src="/Soonsu/kr/comsquare/js/global/XFormsInstance.js" type="text/javascript"></script>
  23. <script src="/Soonsu/kr/comsquare/js/global/XFormsSubmission.js" type="text/javascript"></script>
  24. <script src="/Soonsu/kr/comsquare/js/global/XFormsBind.js" type="text/javascript"></script>
  25. <script src="/Soonsu/kr/comsquare/js/control/XFormsControl.js" type="text/javascript"></script>
  26. <script src="/Soonsu/kr/comsquare/js/control/XFormsBindableControl.js" type="text/javascript"></script>
  27. <script src="/Soonsu/kr/comsquare/js/control/XFormsCaption.js" type="text/javascript"></script>
  28. <script src="/Soonsu/kr/comsquare/js/control/XFormsGroup.js" type="text/javascript"></script>
  29. <script src="/Soonsu/kr/comsquare/js/control/XFormsCell.js" type="text/javascript"></script>
  30. <script src="/Soonsu/kr/comsquare/js/global/XHtml.js" type="text/javascript"></script>
  31. <script src="/Soonsu/kr/comsquare/js/control/XFormsCalendar.js" type="text/javascript"></script>
  32. <script src="/Soonsu/kr/comsquare/js/control/XFormsButton.js" type="text/javascript"></script>
  33. <script src="/Soonsu/kr/comsquare/js/control/XFormsTextArea.js" type="text/javascript"></script>
  34. <script src="/Soonsu/kr/comsquare/js/control/XFormsInput.js" type="text/javascript"></script>
  35. <script src="/Soonsu/kr/comsquare/js/control/XFormsSecret.js" type="text/javascript"></script>
  36. <script src="/Soonsu/kr/comsquare/js/control/XFormsOutput.js" type="text/javascript"></script>
  37. <script src="/Soonsu/kr/comsquare/js/control/XFormsSelect.js" type="text/javascript"></script>
  38. <script src="/Soonsu/kr/comsquare/js/control/XFormsSelect1.js" type="text/javascript"></script>
  39. <script src="/Soonsu/kr/comsquare/js/control/XFormsLine.js" type="text/javascript"></script>
  40. <script src="/Soonsu/kr/comsquare/js/control/XFormsObject.js" type="text/javascript"></script>
  41. <script src="/Soonsu/kr/comsquare/js/control/XFormsSelectItem.js" type="text/javascript"></script>
  42. <script src="/Soonsu/kr/comsquare/js/control/XFormsImg.js" type="text/javascript"></script>
  43. <script src="/Soonsu/kr/comsquare/js/control/XFormsBool.js" type="text/javascript"></script>
  44. <script src="/Soonsu/kr/comsquare/js/control/XFormsBrowser.js" type="text/javascript"></script>
  45. <script src="/Soonsu/kr/comsquare/js/control/XFormsDataGrid.js" type="text/javascript"></script>
  46. <script src="/Soonsu/kr/comsquare/js/control/XFormsSwitch.js" type="text/javascript"></script>
  47. <script src="/Soonsu/kr/comsquare/js/control/XFormsCase.js" type="text/javascript"></script>
  48. <script src="/Soonsu/kr/comsquare/js/control/XFormsGridCell.js" type="text/javascript"></script>
  49. <script src="/Soonsu/kr/comsquare/js/control/XFormsGridCol.js" type="text/javascript"></script>
  50. <script src="/Soonsu/kr/comsquare/js/control/XFormsIViewer.js" type="text/javascript"></script>
  51. <script src="/Soonsu/kr/comsquare/js/control/XFormsTreeView.js" type="text/javascript"></script>
  52. <script src="/Soonsu/kr/comsquare/js/control/XFormsTreeViewItem.js" type="text/javascript"></script>
  53. <script src="/Soonsu/kr/comsquare/js/control/XFormsTable.js" type="text/javascript"></script>
  54. <script src="/Soonsu/kr/comsquare/js/control/XFormsFile.js" type="text/javascript"></script>
  55. <script src="/Soonsu/kr/comsquare/js/control/XFormsShape.js" type="text/javascript"></script>
  56. <script src="/Soonsu/kr/comsquare/js/control/XFormsImport.js" type="text/javascript"></script>
  57. <script src="/Soonsu/kr/comsquare/js/control/XFormsContextMenu.js" type="text/javascript"></script>
  58. <title>보고서미리보기</title>
  59. <script event="EndLoadReport()" for="HE_objRexpert" language="javascript">
  60. // 해당 출력물의 전체 페이지 갯수 저장
  61. var pageCount = objRexpert.GetPageCount();
  62. opener.javascript.setParameter("reportPageCount", pageCount);
  63. //바로 파일 저장 설정
  64. //SaveAs([타입명], [저장 경로], [시작페이지], [끝페이지], [옵션리스트])
  65. var reportSaveFileType = gvMainReportInfos.get("rex_filetype");
  66. var reportSaveFileName = gvMainReportInfos.get("rex_filename");
  67. var reportSaveFileDialog = gvMainReportInfos.get("rex_filedialog");
  68. if (! isNull(reportSaveFileType)) {
  69. if(! checkSaveAsFileType(reportSaveFileType)) messageBox("지원하지 않는 파일타입", "E008");
  70. if( isNull(reportSaveFileName) ) reportSaveFileName = gvReportName;
  71. if( isNull(reportSaveFileDialog) ) reportSaveFileDialog = 0;
  72. objRexpert.SaveAs(reportSaveFileType, "c:\\report\\" + reportSaveFileName + "." + reportSaveFileType, 1, -1, "ShowFileDialog=" + reportSaveFileDialog);
  73. }
  74. //objRexpert.SaveAsFilter = "doc";
  75. //바로 출력 설정
  76. //PrintEx2([인쇄창보임여부], [시작페이지] [끝페이지], [출력매수], [출력프린터]);
  77. //<< 옵션으로 사용할수 있는 문자열>>
  78. //* enablezoom : 확대/축소인쇄가능 (예) - > 0/1
  79. //* zoomnumber : 모아찍기 (예) - > 0/1/2/3/4/5/6
  80. //* zoomdirection : 출력순서 (예) - > 0/1
  81. //* enablefittingpaper : 용지크기에 자동 맞춤 (예) - > 0/1
  82. //* printpaper : 출력용지 (예) - > 0/1/2/3/4/5/6
  83. //* printdirection : 용지방향 (예) - > 0/1
  84. //* papersetting : 용지설정 (예) - > 0/1
  85. //* offsetx : 인쇄위치(가로) (예) - > 100
  86. //* offsety : 인쇄위치(세로) (예) - > 100
  87. //* duplex : 양면인쇄 (예) - > 0/1/2/3
  88. //예)
  89. //objRexpert.PrintOption = "enablezoom=1;enablefittingpaper=0;printdirection=1;" (사용자정의)
  90. var reportPrint = gvMainReportInfos.get("rex_print");
  91. var reportPrintDialog = gvMainReportInfos.get("rex_printdialog");
  92. var reportPrintPaperBin = gvMainReportInfos.get("rex_printpaperbin");
  93. var reportPrintCount = gvMainReportInfos.get("rex_printcount");
  94. var reportPrintOption = gvMainReportInfos.get("rex_printoption");
  95. var reportPrinterName = "";
  96. // 바로 출력
  97. if (! (isNull(reportPrint) || reportPrint == "false") ){
  98. if(reportPrint == "true") {
  99. reportPrinterName = "";
  100. }else{
  101. reportPrinterName = reportPrint;
  102. }
  103. if( isNull(reportPrintDialog) ) reportPrintDialog = "false";
  104. if(! isNull(reportPrintPaperBin) ) objRexpert.PrinterPaperBin = reportPrintPaperBin;
  105. if( isNull(reportPrintCount) ) reportPrintCount = "1";
  106. if(! isNull(reportPrintOption) ) objRexpert.PrintOption = reportPrintOption;
  107. objRexpert.PrintEx2(reportPrintDialog, 1, -1, reportPrintCount, "printername="+reportPrinterName);
  108. }else{
  109. //이벤트가 끝나고 나서 "objRexpert.PrintEx2" 에서 FinishPrint 마무리 이벤트를 호출합니다.
  110. //위에 if문상 출력을 false하면 마무리 이벤트를 호출 안하니 else로 강제 호출하도록 추가합니다.
  111. //20101228 cys
  112. opener.model.dispatch("onPrintFinished");
  113. opener.javascript.setParameter("reportprintyn","Y");
  114. var reportCloseYn = gvMainReportInfos.get("rex_close");
  115. if(reportCloseYn == "true"){
  116. if(window.type == "iviewer"){
  117. opener.window.close();
  118. }else{
  119. window.close();
  120. }
  121. }
  122. }
  123. // 해당 출력물의 로딩(출력/저장포함)이 끝났을 경우 이벤트 발생(설정한 전체 페이지갯수를 전달할 포인트)
  124. opener.model.dispatch("onEndLoadReport");
  125. </script><script event="FinishPrint()" for="HE_objRexpert" language="javascript">
  126. // 사용자가 출력버튼 클릭 후, 인쇄작업이 끝났을 때 dispatch
  127. // 출력이 정상적으로 종료되었는지 아닌지는 알 수 없다.
  128. opener.model.dispatch("onPrintFinished");
  129. //messageBox("출력이", "I002");
  130. opener.javascript.setParameter("reportprintyn","Y");
  131. //미리보기창 닫기
  132. var reportCloseYn = gvMainReportInfos.get("rex_close");
  133. if(reportCloseYn == "true"){
  134. if(window.type == "iviewer"){
  135. opener.window.close();
  136. }else{
  137. window.close();
  138. }
  139. }
  140. </script><script event="FinishSaveAs(FileName)" for="HE_objRexpert" language="javascript">
  141. // 사용자가 저장버튼 클릭 후, 저장작업이 끝났을 때 dispatch
  142. opener.model.dispatch("onSaveFinished");
  143. //messageBox("파일저장이", "I002", FileName);
  144. opener.javascript.setParameter("reportsaveyn","Y");
  145. //미리보기창 닫기
  146. var reportCloseYn = gvMainReportInfos.get("rex_close");
  147. if(reportCloseYn == "true"){
  148. if(window.type == "iviewer"){
  149. opener.window.close();
  150. }else{
  151. window.close();
  152. }
  153. }
  154. </script>
  155. <script type="text/javascript">
  156. //<![CDATA[
  157. /* Do not delete or edit the following XForms Scripts.
  158. if you delete or edit it, it may not be normal behavior. */
  159. var model; var html;var head; var model1; var instance1; var body; var objRexpert;
  160. function __getAppName ()
  161. {
  162. return "/Soonsu";
  163. }
  164. function __createElements ()
  165. {
  166. html = new XHtmlHtml(null, "html", "xhtml:html");
  167. head = new XHtmlHead("html", "head", "xhtml:head");
  168. model1 = new XFormsModel("head", false, "model1", "xforms:model");
  169. model = model1;
  170. instance1 = new XFormsInstance("model1", "instance1", false, "xforms:instance", "", "", "\<root\>\<properties\>\<report\/\>\<\/properties\>\<\/root\>");
  171. body = new XHtmlBody("html", "", "", "", "", true, "", false, "body", -1, "scroll", "", "", "", "", "auto", "margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ", "xhtml:body", "visible");
  172. objRexpert = new XFormsObject("body", "", "", "", "", "", "{9e1f4a27-7eb0-4210-98d8-1ccf6671f483}", false, "objRexpert", -1, "left:1%; top:1%; width:98%; height:98%; ", "xforms:object", "visible","");
  173. }
  174. function __addEventListener ()
  175. {
  176. model.addEventListener("xforms-ready", "xforms_ready_model", "", "");
  177. model.addEventListener("xforms-close", "xforms_close_model", "", "");
  178. }
  179. //]]>
  180. </script>
  181. <script type="text/javascript">
  182. //<![CDATA[
  183. function xforms_close_model (event)
  184. {
  185. fCloseReport();
  186. }
  187. function xforms_ready_model (event)
  188. {
  189. if(checkOpener()){
  190. if(opener.getParameter("onready")){
  191. fInitRexpert();
  192. }
  193. }
  194. }
  195. function fInitRexpert() {
  196. fCloseReport();
  197. gvMainReportInfos = null;
  198. gvSubReportInfos = null;
  199. gvReportName = null;
  200. gvReportDataType = null;
  201. gvReportUserService = null;
  202. gvReportDataXPath = null;
  203. gvReportXPath = null;
  204. gvReportData = null;
  205. gvReportSubmitId = null;
  206. var iSubRptCnt = 0;
  207. var nodeList = opener.root.properties.report.childNodes ;
  208. for (i = 0; i < nodeList.length; i++) {
  209. node = nodeList.nextNode();
  210. if (node.nodeName == "mainreport") {
  211. gvMainReportInfos = initRexpertDictionay();
  212. nodeList_props = node.props.childNodes ;
  213. for (j = 0; j < nodeList_props.length; j++) {
  214. node_prop = nodeList_props.nextNode();
  215. gvMainReportInfos.add(node_prop.nodeName, node_prop.nodevalue);
  216. }
  217. gvReportName = gvMainReportInfos.get("rex_rptname");
  218. gvReportDataType = gvMainReportInfos.get("rex_datatype");
  219. gvReportSubmitId = gvMainReportInfos.get("rex_submitid");
  220. gvReportUserService = gvMainReportInfos.get("rex_userservice");
  221. gvReportDataXPath = gvMainReportInfos.get("rex_data_xpath");
  222. gvReportXPath = gvMainReportInfos.get("rex_xpath");
  223. nodeList_params = node.params.childNodes ;
  224. for (j = 0; j < nodeList_params.length; j++) {
  225. node_param = nodeList_params.nextNode();
  226. gvMainReportInfos.add(node_param.nodeName, node_param.nodevalue);
  227. }
  228. nodeList_options = node.options.childNodes ;
  229. for (j = 0; j < nodeList_options.length; j++) {
  230. node_option = nodeList_options.nextNode();
  231. gvMainReportInfos.add(node_option.nodeName, node_option.nodevalue);
  232. }
  233. if (gvReportDataType == "XMLSTR") {
  234. var sDataXpath = gvReportDataXPath;
  235. if (opener.getReportData != undefined) {
  236. gvMainReportInfos.add("rex_data", opener.fGetReportData());
  237. }
  238. if (isNull(sDataXpath)) {
  239. gvMainReportInfos.add("rex_data", opener.instance1.xml );
  240. } else {
  241. gvMainReportInfos.add("rex_data", opener.instance1.selectSingleNode(sDataXpath).xml );
  242. }
  243. gvReportData = gvMainReportInfos.get("rex_data");
  244. }
  245. }
  246. }
  247. fReportPreView();
  248. }
  249. function fReportPreView() {
  250. var oReport;
  251. var oSubReport;
  252. var oConnection;
  253. var oDataSet;
  254. var oSQL;
  255. var zoomRate = gvMainReportInfos.get("rex_zoomrate");
  256. if(!isNull(zoomRate)){
  257. objRexpert.zoom(zoomRate);
  258. }
  259. var reportPrint = gvMainReportInfos.get("rex_print");
  260. if (! (isNull(reportPrint) || reportPrint == "false") ){
  261. objRexpert.ShowProcessDialog = false;
  262. }
  263. var showToolbarButton = gvMainReportInfos.get("rex_showbutton");
  264. if(showToolbarButton == "hidden"){
  265. objRexpert.ShowToolBarButton(0, false);
  266. objRexpert.ShowToolBarButton(1, false);
  267. objRexpert.ShowToolBarButton(2, false);
  268. objRexpert.ShowToolBarButton(3, false);
  269. objRexpert.ShowToolBarButton(4, false);
  270. objRexpert.ShowToolBarButton(15, false);
  271. }
  272. objRexpert.ShowParameterDialog = false;
  273. if (isNull(gvMainReportInfos) || isNull(gvReportName)) return;
  274. if (gvMainReportInfos.Init != null) {
  275. gvMainReportInfos.Init(objRexpert);
  276. }
  277. try{
  278. oReport = objRexpert.OpenReport(getReportURL(gvReportName));
  279. }catch(e){
  280. messageBox(e.message, "I");
  281. return "error";
  282. }
  283. if(oReport == null) {
  284. messageBox("리포트를 열 수", "I004");
  285. return;
  286. }
  287. var obj = gvMainReportInfos.keys();
  288. for(var key in obj) {
  289. oReport.SetParameterFieldValue(key, obj[key]);
  290. }
  291. oConnection = fCreateConnection(gvReportDataType);
  292. fGetData(oReport, oConnection, gvReportDataType, gvReportUserService, gvReportData);
  293. if (fGetSubReportData() == "each") {
  294. if (gvReportDataType == "XMLFILE" || gvReportDataType == "XMLSTR") {
  295. var sXpath = gvReportXPath;
  296. if (isNull(sXpath)) {
  297. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, "", 0);
  298. } else {
  299. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, sXpath, 0);
  300. }
  301. } else {
  302. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, "root/main/rpt1/rexdataset/rexrow", 0);
  303. }
  304. if( oDataSet == null ) return ;
  305. if (gvMainReportInfos.CallBack != null) {
  306. gvMainReportInfos.CallBack(oReport, oDataSet);
  307. }
  308. }
  309. if (gvReportParamShare == "share") {
  310. if (fGetSubReportData() == "each") {
  311. if (gvSubReportInfos.length > 0) {
  312. var sDataType = "";
  313. var sUserService = "";
  314. var sData = "";
  315. for (i = 1; i <= gvSubReportInfos.length; i++) {
  316. oRptSubParam = gvSubReportInfos.get("" + i);
  317. if (oRptSubParam.get("rex_rptname") != "") {
  318. oSubReport = oReport.OpenReport(oRptSubParam.get("rex_rptname"));
  319. } else {
  320. messageBox("서브 리포트 파일이", "I004");
  321. return;
  322. }
  323. if (oSubReport == null) {
  324. messageBox("서브 리포트를 열 수", "I004");
  325. return;
  326. }
  327. var obj = gvMainReportInfos.keys();
  328. for(var key in obj) {
  329. oSubReport.SetParameterFieldValue(key, obj[key]);
  330. }
  331. if (oRptSubParam.get("rex_datatype") == null) {
  332. sDataType = gvMainReportInfos.get("rex_datatype");
  333. } else {
  334. sDataType = oRptSubParam.get("rex_datatype");
  335. }
  336. if (oRptSubParam.get("rex_userservice") == null || oRptSubParam.get("rex_userservice") == "") {
  337. sUserService = gvReportUserService;
  338. } else {
  339. sUserService = oRptSubParam.get("rex_userservice");
  340. }
  341. if (oRptSubParam.get("rex_data") == null) {
  342. sData = gvReportData;
  343. } else {
  344. sData = oRptSubParam.get("rex_data");
  345. }
  346. oConnection = fCreateConnection(sDataType);
  347. fGetData(oSubReport, oConnection, sDataType, sUserService, sData);
  348. if (sDataType == "XMLFILE" || sDataType == "XMLSTR") {
  349. var sXpath = gvReportXPath;
  350. if (isNull(sXpath)) {
  351. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, "", 0);
  352. } else {
  353. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, sXpath, 0);
  354. }
  355. } else {
  356. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, "root/main/rpt1/rexdataset/rexrow", 0);
  357. }
  358. if( oDataSet==null ) return ;
  359. if (oRptSubParam.CallBack != null) {
  360. oRptSubParam.CallBack(oSubReport, oDataSet);
  361. }
  362. }
  363. }
  364. } else {
  365. for (i = 1; i <= oReport.GetReportCount(); i++) {
  366. oSubReport = oReport.OpenReport(i - 1);
  367. if (oSubReport == null) {
  368. messageBox("서브 리포트를 열 수", "I004");
  369. return;
  370. }
  371. var obj = gvMainReportInfos.keys();
  372. for(var key in obj) {
  373. oSubReport.SetParameterFieldValue(key, obj[key]);
  374. }
  375. fGetData(oSubReport, oConnection, gvReportDataType, gvReportUserService, gvReportData);
  376. }
  377. }
  378. } else {
  379. if (gvSubReportInfos.length > 0) {
  380. var sDataType = "";
  381. var sUserService = "";
  382. var sData = "";
  383. for (i = 1; i <= gvSubReportInfos.length; i++) {
  384. oRptSubParam = gvSubReportInfos.get("" + i);
  385. if (oRptSubParam.get("rex_rptname") != "") {
  386. oSubReport = oReport.OpenReport(oRptSubParam.get("rex_rptname"));
  387. } else {
  388. messageBox("서브 리포트 파일이", "I004");
  389. return;
  390. }
  391. if (oSubReport == null) {
  392. messageBox("서브 리포트를 열 수", "I004");
  393. return;
  394. }
  395. var obj = oRptSubParam.keys();
  396. for(var key in obj) {
  397. oSubReport.SetParameterFieldValue(key, obj[key]);
  398. }
  399. if (oRptSubParam.get("rex_datatype") == null) {
  400. sDataType = gvMainReportInfos.get("rex_datatype");
  401. } else {
  402. sDataType = oRptSubParam.get("rex_datatype");
  403. }
  404. if (oRptSubParam.get("rex_userservice") == null || oRptSubParam.get("rex_userservice") == "") {
  405. sUserService = gvReportUserService;
  406. } else {
  407. sUserService = oRptSubParam.get("rex_userservice");
  408. }
  409. if (oRptSubParam.get("rex_data") == null) {
  410. sData = gvReportData;
  411. } else {
  412. sData = oRptSubParam.get("rex_data");
  413. }
  414. oConnection = fCreateConnection(sDataType);
  415. fGetData(oSubReport, oConnection, sDataType, sUserService, sData);
  416. if (fGetSubReportData() == "each") {
  417. if (sDataType == "XMLFILE" || sDataType == "XMLSTR") {
  418. var sXpath = oRptSubParam.get("rex_xpath");
  419. if (isNull(sXpath)) {
  420. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, "", 0);
  421. } else {
  422. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, sXpath, 0);
  423. }
  424. } else {
  425. oDataSet = fCreateDataSet(oSubReport, oConnection, sDataType, oDataSet, "root/main/rpt1/rexdataset/rexrow", 0);
  426. }
  427. if( oDataSet == null ) return ;
  428. if (oRptSubParam.CallBack != null) {
  429. oRptSubParam.CallBack(oSubReport, oDataSet);
  430. }
  431. }
  432. }
  433. }
  434. }
  435. if (fGetSubReportData() == "once") {
  436. if (gvReportDataType != "XMLSTR" && gvReportDataType != "CSVSTR") {
  437. try{
  438. oConnection.Send();
  439. }catch(e){
  440. alert(e.message);
  441. alert(oConnection.Response());
  442. }
  443. }
  444. if (gvReportDataType == "XMLFILE" || gvReportDataType == "XMLSTR") {
  445. var sXpath = gvReportXPath;
  446. if (isNull(sXpath)) {
  447. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, "", 0);
  448. } else {
  449. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, sXpath, 0);
  450. }
  451. } else {
  452. oDataSet = fCreateDataSet(oReport, oConnection, gvReportDataType, oDataSet, "root/main/rpt1/rexdataset/rexrow", 0);
  453. }
  454. if( oDataSet == null ) return ;
  455. if (gvMainReportInfos.CallBack != null) {
  456. gvMainReportInfos.CallBack(oReport, oDataSet);
  457. }
  458. for (i = 1; i <= oReport.GetReportCount(); i++) {
  459. oSubReport = oReport.OpenReport(i - 1);
  460. if (gvReportDataType == "XMLFILE" || gvReportDataType == "XMLSTR") {
  461. var sXpath = gvMainReportInfos.get("rex_xpath" + i);
  462. if (isNull(sXpath)) {
  463. oDataSet = fCreateDataSet(oSubReport, oConnection, gvReportDataType, oDataSet, "", i);
  464. } else {
  465. oDataSet = fCreateDataSet(oSubReport, oConnection, gvReportDataType, oDataSet, sXpath, i);
  466. }
  467. } else {
  468. oDataSet = fCreateDataSet(oSubReport, oConnection, gvReportDataType, oDataSet, "root/main/rpt" + (i + 1) + "/rexdataset/rexrow", i);
  469. }
  470. if( oDataSet == null ) return ;
  471. }
  472. }
  473. objRexpert.RunAsBlocking();
  474. }
  475. function fCreateConnection(sDataType)
  476. {
  477. var oConnection;
  478. if (sDataType == "XMLFILE")
  479. {
  480. oConnection = objRexpert.CreateConnection("http.get");
  481. }
  482. else if (sDataType == "CSVFILE")
  483. {
  484. oConnection = objRexpert.CreateConnection("http.csv");
  485. }
  486. else if (sDataType == "XML" || sDataType == "CSV" || sDataType == "" )
  487. {
  488. oConnection = objRexpert.CreateConnection("http.post");
  489. }
  490. else if (sDataType=="XMLSTR" || sDataType=="CSVSTR" )
  491. {
  492. oConnection = objRexpert.CreateConnection("connectionstring");
  493. }
  494. return oConnection;
  495. }
  496. function fGetData(oReport, oConnection, sDataType, sUserService, sData)
  497. {
  498. var oSQL;
  499. var oServerConnection;
  500. var oUserService;
  501. if (sDataType=="XML" || sDataType=="CSV")
  502. {
  503. oConnection.AddParameter("datatype", sDataType);
  504. oSQL = oReport.GetSQLControl();
  505. oServerConnection = oReport.GetServerConnection();
  506. oConnection.AddParameter("sql", oSQL.GetSQL());
  507. if ( isNull(sUserService) ) {
  508. oUserService = oServerConnection.GetParameterValue("service");
  509. if ( isNull(oUserService) ) {
  510. oUserService = "jdbc.comdb";
  511. }
  512. }else{
  513. oUserService = "jdbc."+sUserService+"db";
  514. }
  515. oConnection.AddParameter("userservice", oUserService);
  516. oConnection.Path = gvRexpertServiceURL + gvReportName;
  517. if (fGetSubReportData() == "each") {
  518. oConnection.Send();
  519. }
  520. }
  521. if (sDataType=="XMLFILE" || sDataType=="CSVFILE")
  522. {
  523. oConnection.Path = getActionURL(gvReportSubmitId) + addReportParameter();
  524. if (fGetSubReportData() == "each") {
  525. oConnection.Send();
  526. }
  527. }
  528. if (sDataType=="XMLSTR" || sDataType=="CSVSTR")
  529. {
  530. oConnection.AddValue("load", sData);
  531. }
  532. }
  533. function fCreateDataSet(oReport, oConnection, sDataType, oDataSet, sXpath, idx)
  534. {
  535. if (sDataType=="XMLFILE" || sDataType == "CSVFILE"){
  536. if(fGetUserErrorMsg(oConnection, sDataType) == "error") return null;
  537. }
  538. if (sDataType=="XML" || sDataType == "CSV"){
  539. if(fGetErrorMsg(oConnection, sDataType) == "error") return null;
  540. }
  541. if (sDataType == "CSV" || sDataType == "CSVFILE" || sDataType == "CSVSTR")
  542. {
  543. oDataSet = oReport.CreateDataSetCSV(oConnection, idx, rex_gsCsvSeparatorDataset, rex_gsCsvSeparatorRow, rex_gsCsvSeparatorColumn, "");
  544. }else{
  545. oDataSet = oReport.CreateDataSetXML(oConnection, sXpath, 0);
  546. }
  547. return oDataSet;
  548. }
  549. function fGetSubReportData()
  550. {
  551. var subreportData = gvMainReportInfos.get("rex_getsubreportdata");
  552. if ( isNull(subreportData) ) {
  553. return gvSubreportData;
  554. } else {
  555. return subreportData;
  556. }
  557. }
  558. function fGetErrorMsg(oConnection, sDataType)
  559. {
  560. try {
  561. if(sDataType == "CSV"){
  562. var sData = oConnection.Response();
  563. if (sData.length > 5) {
  564. if (sData.substr(0, 5) == "<?xml") {
  565. var idxStart = sData.indexOf("<error>");
  566. var idxEnd = sData.indexOf("</error>");
  567. if (idxStart == -1 || idxEnd == -1) return "";
  568. var sErrMsg = sData.substring(idxStart + 7 + 9, idxEnd - 3);
  569. messageBox(sErrMsg, "C");
  570. return "error";
  571. }
  572. }
  573. return "";
  574. }else{
  575. var oXMLDOM = oConnection.GetXMLDOM();
  576. if(oXMLDOM != null) {
  577. oXMLDOM.setProperty("SelectionLanguage", "XPath");
  578. var oNodes = oXMLDOM.selectSingleNode("rexpert/error");
  579. if(oNodes == null) {
  580. if (oXMLDOM.parseError.errorCode != 0) {
  581. var oError = oXMLDOM.parseError;
  582. messageBox(oError.reason,"C");
  583. return "error";
  584. }
  585. } else {
  586. messageBox(oNodes.text, "C");
  587. return "error";
  588. }
  589. }
  590. return "";
  591. }
  592. } catch(e) {
  593. messageBox(e.message, "C");
  594. return "error";
  595. }
  596. }
  597. function fGetUserErrorMsg(oConnection, sDataType)
  598. {
  599. var oXMLDOM = oConnection.GetXMLDOM();
  600. if(oXMLDOM != null) {
  601. try {
  602. oXMLDOM.setProperty("SelectionLanguage", "XPath");
  603. var oNode = oXMLDOM.selectSingleNode("//resultKM");
  604. var sErrMsg = oNode.getAttributeNode("description").text;
  605. handleSystemMessage(sErrMsg);
  606. showSystemMessage(false);
  607. } catch(e) {
  608. messageBox(e.message, "C");
  609. return "error";
  610. }
  611. }
  612. }
  613. function fCloseReport(){
  614. objRexpert.CloseReport();
  615. }
  616. //]]>
  617. </script>
  618. <script src="../../../com/commonweb/css/common.css.soonsu" type="text/javascript"></script></head>
  619. <body id="HE_body" onload="XFormsModel.onload();" onunload="XFormsModel.onunload();" style="position:absolute; margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; width:100%; height:100%; visibility:hidden; ">
  620. <object CLASSID="clsid:{9e1f4a27-7eb0-4210-98d8-1ccf6671f483}" id="HE_objRexpert" style="position:absolute; left:1%; top:1%; width:98%; height:98%; "></object>
  621. <form action="/Soonsu/FileUpload.tfs" enctype="multipart/form-data" id="HE___TF_UploadForm" method="post" style="display:none; " target="HE___TF_UploadFrame_8190"></form>
  622. <iframe id="HE___TF_UploadFrame" name="HE___TF_UploadFrame_8190" style="display:none; position:absolute; "></iframe>
  623. <iframe id="HE___TF_ImageUploadFrame" name="HE___TF_ImageUploadFrame" style="display:none; position:absolute; "></iframe>
  624. <iframe id="HE___TF_LoadExcel" name="HE___TF_LoadExcel" style="display:none; position:absolute; "></iframe>
  625. <form action="/Soonsu/ExcelSave.tfs" enctype="multipart/form-data" id="HE___TF_ExcelDownload" method="post" style="display:none; " target="HE___TF_UploadFrame_8190"><input id="HE___TF_ExcelDownload_Name" name="Name" type="hidden"><input id="HE___TF_ExcelDownload_Data" name="Data" type="hidden"></form></body>
  626. </html>