RexPreViewOpen.jsp 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767
  1. <%@
  2. page contentType="text/html;charset=euc-kr"
  3. %>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=MS949">
  7. <title>RexpreViewTest</title>
  8. <script language="javascript" src="./rexscript/rexpert.js"></script>
  9. <script language="javascript" src="./rexscript/rexpert_properties.js"></script>
  10. <script language="vbscript">
  11. Sub fnOpenRexViewerVbScript()
  12. Dim oRptMainParam
  13. Set oRptMainParam = rex_GetgoDictionay()
  14. ' 필수 - 레포트명
  15. Call oRptMainParam.put("rex_rptname", "a1")
  16. ' 필수 - 데이터 타입 설정
  17. Call oRptMainParam.put("rex_datatype", "XML") // XML, CSV
  18. ' 옵션 - 다른 DB를 연결시
  19. Call oRptMainParam.put("rex_userservice", "Sql2")
  20. ' 옵션 - 파라메터 설정
  21. Call oRptMainParam.put("custid", "")
  22. Call oRptMainParam.put("aa", "")
  23. Call oRptMainParam.put("bbb", "")
  24. Call oRptMainParam.put("cc", "")
  25. ' preview 팝업 열기
  26. Call rex_gfRexRptOpen("popup", oRptMainParam)
  27. 'Call rex_gfRexRptOpen("popupmodal", oRptMainParam)
  28. 'Call rex_gfRexRptOpen("iframe", ifrmRexPreview, oRptMainParam)
  29. 'Call rex_gfRexRptOpen("print", oRptMainParam)
  30. 'Call rex_gfRexRptOpen("save", oRptMainParam)
  31. End Sub
  32. Sub fnOpenRexViewerVbScript1()
  33. Dim oRptMainParam
  34. Set oRptMainParam = rex_GetgoDictionay()
  35. ' 옵션 - 툴바 설정
  36. 'Call oRptMainParam.put("rex_init", "open=1;save=1;print=1;stop=1;zoomin=1;zoomout=1;moveprev=1;movenext=1;combo=1;movefirst=1;movelast=1;help=1")
  37. 'Call oRptMainParam.put("rex_init", "open=0;save=0")
  38. 'Call oRptMainParam.put("rex_init", "ToolBarVisible=0;ShowProcessDialog=0")
  39. 'Call oRptMainParam.put("rex_init_end", "vbInitEndFunction") ' vbInitEndFunction 실행함 (인자는 oRexCtl)
  40. 'Call oRptMainParam.put("rex_open_window", "center=yes,scrollbars=no,status=no,toolbar=no,resizable=0,location=no,menu=no,width=825,height=600")
  41. ' 옵션 - 레포트 파일을 서버에서 가져온 후에 실행될 함수 설정
  42. 'Call oRptMainParam.put("rex_openreport_end", "vbOpenReportEndFunction") ' vbOpenReportEndFunction 실행함 (인자는 oReport)
  43. ' 옵션 - Save 관련 설정
  44. 'Call oRptMainParam.put("rex_save_file_type", "xls")
  45. 'Call oRptMainParam.put("rex_save_file", "c:\\abc.pdf")
  46. 'Call oRptMainParam.put("rex_save_file_option", "coldelimiter=" + vbTab + ";rowdelimiter=" + vbCrLf + ";addfieldname=1")
  47. 'Call oRptMainParam.put("rex_save_end", "vbSaveEndFunction") ' vbSaveEndFunction을 실행함 (인자는 sFileType, sFileName)
  48. ' 옵션 - 데이터 및 xpath 설정
  49. 'Call oRptMainParam.put("rex_data", txtData.value)
  50. 'Call oRptMainParam.put("rex_xpath", "root/rpt1/row") ' main 레포트의 xpath
  51. 'Call oRptMainParam.put("rex_xpath", "root/main/rpt1/rexdataset/rexrow") ' main 레포트의 xpath
  52. 'Call oRptMainParam.put("rex_xpath1", "root/rpt2/row") ' subreport1의 xpath
  53. 'Call oRptMainParam.put("rex_xpath2", "root/rpt3/row") ' subreport2의 xpath
  54. ' 필수 - 레포트명
  55. Call oRptMainParam.put("rex_rptname", "Orders")
  56. 'Call oRptMainParam.put("rex_rptname", "cospec")
  57. ' 필수 - 데이터 타입 설정
  58. Call oRptMainParam.put("rex_datatype", "XML") // XML, CSV
  59. 'Call oRptMainParam.put("rex_datatype", "XMLSTR") // CSVSTR
  60. 'Call oRptMainParam.put("rex_datatype", "XMLFILE") // CSVFILE
  61. ' 옵션 - 다른 DB를 연결시
  62. Call oRptMainParam.put("rex_userservice", "myservice")
  63. 'Call oRptMainParam.put("rex_userservice", "myconn")
  64. ' 옵션 - rex_gfRexRptOpen("print", oRptMainParam) 호출시 바로 인쇄 설정
  65. 'Call oRptMainParam.put("rex_printdirect", "true")
  66. 'Call oRptMainParam.put("rex_print_startpage", "3")
  67. 'Call oRptMainParam.put("rex_print_endpage", "-1")
  68. 'Call oRptMainParam.put("rex_print_count", "5")
  69. 'Call oRptMainParam.put("rex_print_skipzero", "true") ' 인쇄시 건수가 0이면 인쇄 안함
  70. 'Call oRptMainParam.put("rex_print_printerpaperbin", "255") ' 출력트레이 설정
  71. 'Call oRptMainParam.put("rex_print_printername", "FinePrint") ' 출력프린터 설정
  72. 'Call oRptMainParam.put("rex_print_printername", "\\\\124.137.28.171\\HP LaserJet 4200 PCL 6") ' 출력프린터 설정
  73. ' 또는 아래와 같이 설정 가능
  74. 'Call oRptMainParam.put("rex_print", "direct=true;startpage=3;endpage=-1;count=10;skipzero=true")
  75. 'Call oRptMainParam.put("rex_print_end", "vbPrintEndFunction") ' vbPrintEndFunction을 실행함 (인자는 oReport, oDataSet, RowCount)
  76. ' 옵션 - 레포트가 로드되었을 때 실행될 함수 설정
  77. ' Call oRptMainParam.put("rex_endload_end", "vbEndLoadEndFunction"); ' vbEndLoadEndFunction 실행함 (인자는 oReport, oDataSet)
  78. ' 옵션 - HyperLink가 설정된 객체를 클릭했을 때 실행할 함수 설정
  79. 'Call oRptMainParam.put("rex_hyperlink_end", "vbHyperLinkEndFunction") ' vbHyperLinkEndFunction 실행함 (인자는 oReport, sLink, sToolTip)
  80. ' 옵션 - 긴데이터를 일정크기로 나눌 필드 설정 (반드시 XML 데이터타입으로 해야 함)
  81. 'Call oRptMainParam.put("rex_split_fields", "main=test1:10,test2:20;서브리포트1=test2:20")
  82. 'Call oRptMainParam.put("rex_split_fields", "main=c:3,d:10;서브리포트1=c:2")
  83. ' 옵션 - 파라메터 설정
  84. Call oRptMainParam.put("startdt", "20070708")
  85. Call oRptMainParam.put("id", "0")
  86. Call oRptMainParam.put("customerid", "A")
  87. Call oRptMainParam.put("ggg", "A1" & vbTab & "B1" & vbCrLf & "C1" & "D1")
  88. ' preview 팝업 열기
  89. 'Call rex_gfRexRptOpen("popup", oRptMainParam)
  90. 'Call rex_gfRexRptOpen("popupmodal", oRptMainParam)
  91. Call rex_gfRexRptOpen("iframe", ifrmRexPreview, oRptMainParam)
  92. 'Call rex_gfRexRptOpen("print", oRptMainParam)
  93. 'Call rex_gfRexRptOpen("save", oRptMainParam)
  94. ' demo 용, BMT 용, 간단히 사용할 때
  95. 'Call rex_gfOpen("Rexpert5")
  96. 'Call rex_gfOpen("Rexpert5", "startdt=20050708,id=0")
  97. 'Call rex_gfOpen("rptname=Rexpert5,datatype=CSV", "startdt=20050708,id=0")
  98. 'Call rex_gfOpen("rptname=Rexpert5,datatype=XML,open=popup", "startdt=20050708,id=0")
  99. 'Call rex_gfOpen("rptname=Rexpert5,datatype=XML,open=popup", "startdt=20050708,id=0")
  100. 'Call rex_gfOpen("rptname=Rexpert5,datatype=XML,open=print", "startdt=20050708,id=0")
  101. 'Call rex_gfOpen("rptname=Rexpert5,datatype=XML,open=save,save_file=c:\\test.xls", "startdt=20050708,id=0")
  102. 'Call rex_gfOpen("rptname=Rexpert5,datatype=XML,open=iframe", "startdt=20050708,id=0", ifrmRexPreview)
  103. End Sub
  104. ' rex_init_end 정의시 실행되는 프로시져
  105. Sub vbInitEndFunction(oRexCtl)
  106. 'MsgBox oRexCtl.ToolBarVisible
  107. 'oRexCtl.ToolBarVisible = Falsesp
  108. 'oRexCtl.SaveAsFilter = "xls;pdf;hml;hwp;rtf;html;bmp;txt;xml;jpeg";
  109. End Sub
  110. ' rex_save_end 정의시 실행되는 프로시져
  111. Sub vbSaveEndFunction(sFileType, sFileName)
  112. 'MsgBox sFileName
  113. Dim oExcel, oBook, oSheet
  114. Set oExcel = CreateObject("Excel.Application")
  115. oExcel.Visible = True
  116. '엑셀이 설치되어있는지에 대한 Check
  117. If IsNull(oExcel.Application) Then
  118. MsgBox "엑셀이 설치되지 않아 작업을 진행할 수 없습니다.", vbOKOnly, ""
  119. oExcel.Quit
  120. Set oExcel = Nothing
  121. End If
  122. oExcel.Workbooks.Open sFileName
  123. End Sub
  124. ' rex_print_end 정의시 실행되는 프로시져
  125. Sub vbPrintEndFunction(oReport, oDataSet, RowCount)
  126. // oDataSet은 사용하지 마세요... RowCount를 사용하세요
  127. MsgBox RowCount
  128. MsgBox RowCount * 100
  129. End Sub
  130. Function fnGetLength(sData)
  131. fnGetLength = LenB(sData)
  132. End Function
  133. </script>
  134. <script language="JavaScript">
  135. function fnOpenRexViewerMulti() {
  136. var oRptMultiParam;
  137. oRptMultiParam = rex_GetgoDictionay();
  138. var oRptDummyParam;
  139. oRptDummyParam = rex_GetgoDictionay();
  140. oRptDummyParam.put("rex_rptname", "dummy");
  141. oRptDummyParam.put("param1", "p1");
  142. oRptDummyParam.put("param2", "p2");
  143. oRptMultiParam.put("rex_rptname", oRptDummyParam);
  144. //oRptMultiParam.put("rex_rptname", "dummy");
  145. //oRptMultiParam.put("rex_rptname", "http://...");
  146. oRptMultiParam.put("sub1", fnGetParam1());
  147. oRptMultiParam.put("sub2", fnGetParam2());
  148. rex_gfRexRptOpenMulti("popup", "", oRptMultiParam);
  149. }
  150. function fnGetParam1() {
  151. var oRptMainParam;
  152. oRptMainParam = rex_GetgoDictionay();
  153. // 필수 - 레포트명
  154. oRptMainParam.put("rex_rptname", "customers");
  155. // oRptMainParam.put("rex_rptname", "cospec");
  156. // 필수 - 데이터 타입 설정
  157. oRptMainParam.put("rex_datatype", "XML"); // XML, CSV
  158. // 옵션 - 다른 DB를 연결시
  159. oRptMainParam.put("rex_userservice", "Sql2");
  160. //oRptMainParam.put("rex_userservice", "Ora1");
  161. // 옵션 - rex_gfRexRptOpenMulti 함수 호출시 적용됨 AddReportSection
  162. //oRptMainParam.put("rex_addreportsection", "followmainreport=1;usemainreportdata=0;pagereset=0");
  163. oRptMainParam.put("rex_addreportsection", "followmainreport=1;usemainreportdata=0;pagereset=0");
  164. // 옵션 - 파라메터 설정
  165. //oRptMainParam.put("custid", txtData.value);
  166. // oRptMainParam.put("id", "0");
  167. return oRptMainParam;
  168. }
  169. function fnGetParam2() {
  170. var oRptMainParam;
  171. oRptMainParam = rex_GetgoDictionay();
  172. // 필수 - 레포트명
  173. oRptMainParam.put("rex_rptname", "emp");
  174. // oRptMainParam.put("rex_rptname", "cospec");
  175. // 필수 - 데이터 타입 설정
  176. oRptMainParam.put("rex_datatype", "XML"); // XML, CSV
  177. // 옵션 - 다른 DB를 연결시
  178. //oRptMainParam.put("rex_userservice", "Sql2");
  179. oRptMainParam.put("rex_userservice", "Ora1");
  180. // 옵션 - rex_gfRexRptOpenMulti 함수 호출시 적용됨 AddReportSection
  181. oRptMainParam.put("rex_addreportsection", "followmainreport=1;usemainreportdata=0;pagereset=0");
  182. // 옵션 - 파라메터 설정
  183. //oRptMainParam.put("custid", txtData.value);
  184. // oRptMainParam.put("id", "0");
  185. return oRptMainParam;
  186. }
  187. function fnOpenRexViewerJavaScript() {
  188. var oRptMainParam;
  189. oRptMainParam = rex_GetgoDictionay();
  190. // 옵션 - 툴바 설정
  191. // oRptMainParam.put("rex_init", "open=1;save=1;print=1;stop=1;zoomin=1;zoomout=1;moveprev=1;movenext=1;combo=1;movefirst=1;movelast=1;help=1");
  192. //oRptMainParam.put("rex_init", "open=0;save=0");
  193. //oRptMainParam.put("rex_init", "ToolBarVisible=1;ShowProcessDialog=1;ShowParameterDialog=1");
  194. //oRptMainParam.put("rex_init_end", "javaInitEndFunction") // javaInitEndFunction 실행함 (인자는 oRexCtl)
  195. //oRptMainParam.put("rex_open_window", "center=yes,scrollbars=no,status=no,toolbar=no,resizable=0,location=no,menu=no,width=1000,height=600");
  196. // 옵션 - 레포트 파일을 서버에서 가져온 후에 실행될 함수 설정
  197. //oRptMainParam.put("rex_openreport_end", "javaOpenReportEndFunction") // javaOpenReportEndFunction 실행함 (인자는 oReport)
  198. // 옵션 - 서버로 post 요청한 후에 실행될 함수 설정
  199. //oRptMainParam.put("rex_send_end", "javaSendEndFunction") // javaSendEndFunction 실행함 (인자는 sReportName, oConnection)
  200. // 옵션 - Save 관련 설정
  201. // oRptMainParam.put("rex_save_direct", "true");
  202. //oRptMainParam.put("rex_save_file_type", "pdf");
  203. //oRptMainParam.put("rex_save_file", "c:\\test.pdf");
  204. // oRptMainParam.put("rex_save_file_option", "sheetOption=2 ; filename=test.xls");
  205. //oRptMainParam.put("rex_save_file_option", ";filename=test");
  206. // oRptMainParam.put("rex_save_file_option", "coldelimiter=" + "\t" + ";rowdelimiter=" + "\n\r" + ";addfieldname=1");
  207. // oRptMainParam.put("rex_save_end", "javaSaveEndFunction"); // javaSaveEndFunction을 실행함 (인자는 sFileType, sFileName);
  208. // oRptMainParam.put("rex_save_file_option", "cellautomerge=0"); // 엑셀 export시 상세옵션에 셀머지 체크
  209. // oRptMainParam.put("rex_save_preview_direct", "true"); // 미리보기에서 저장버튼 클릭시 설정된 파일로 바로 저장
  210. // 옵션 - 데이터 및 xpath 설정
  211. //oRptMainParam.put("rex_data", "http://124.137.28.149:8080/RexServer_0/rexfiles/test.xml");
  212. //oRptMainParam.put("rex_data", txtData.value);
  213. //oRptMainParam.put("rex_xpath", "root/rpt1/row"); // main 레포트의 xpath
  214. //oRptMainParam.put("rex_xpath", "root/main/rpt1/rexdataset/rexrow"); // main 레포트의 xpath
  215. // oRptMainParam.put("rex_xpath1", "root/rpt2/row"); // subreport1의 xpath
  216. // oRptMainParam.put("rex_xpath2", "root/rpt3/row"); // subreport2의 xpath
  217. // 필수 - 레포트명
  218. oRptMainParam.put("rex_rptname", "long");
  219. // oRptMainParam.put("rex_rptname", "cospec");
  220. // 필수 - 데이터 타입 설정
  221. oRptMainParam.put("rex_datatype", "XML"); // XML, CSV
  222. //oRptMainParam.put("rex_datatype", "XMLSTR"); // XMLSTR, CSVSTR
  223. //oRptMainParam.put("rex_datatype", "XMLFILE"); // XMLFILE, CSVFILE
  224. /*
  225. //----------------------------------------------------------------markany
  226. //markany 옵션설정
  227. oRptMainParam.put("rex_markany", "true");
  228. oRptMainParam.put("rex_markany_param", "dllname=MAePageSAFERRexpert.dll;datafilename=MaPrintInfo_CAKRex.dat;enablecapture=0;enablespool=0;enableprinter=0;enableprinterInfo=0;printeroption=3;imagesaferoption=0");
  229. oRptMainParam.put("rex_markany_cellwidth", "18");
  230. oRptMainParam.put("rex_markany_cellheight", "2");
  231. // oRptMainParam.put("rex_markany_path", rex_gsRexServiceRootURL + "rexpert/jsp/MaFpsCommon.jsp");
  232. oRptMainParam.put("rex_markany_path", rex_gsRexServiceRootURL + "samples/markany/MaFpsCommon.jsp");
  233. //----------------------------------------------------------------------------------------------------
  234. */
  235. // 옵션 - 다른 DB를 연결시
  236. //oRptMainParam.put("rex_userservice", "Syb1");
  237. //oRptMainParam.put("rex_userservice", "Ora1");
  238. //oRptMainParam.put("rex_userservice", "Sql2");
  239. // 옵션 - rex_gfRexRptOpen("print", oRptMainParam) 호출시 바로 인쇄 설정
  240. //oRptMainParam.put("rex_printdirect", "true");
  241. // oRptMainParam.put("rex_print_startpage", "3");
  242. // oRptMainParam.put("rex_print_endpage", "-1");
  243. // oRptMainParam.put("rex_print_count", "5");
  244. // oRptMainParam.put("rex_print_skipzero", "true"); // 인쇄시 건수가 0이면 인쇄 안함
  245. // oRptMainParam.put("rex_print_option", "duplex=1"); // 인쇄시 옵션 (예: 양면출력 안함)
  246. /*
  247. enablezoom : 확대/축소인쇄가능
  248. zoomnumber : 모아찍기
  249. zoomdirection : 출력순서
  250. enablefittingpaper : 용지크기에 자동 맞춤
  251. printpaper : 출력용지
  252. printdirection : 용지방향
  253. papersetting : 용지설정
  254. offsetx : 인쇄위치(가로)
  255. offsety : 인쇄위치(세로)
  256. duplex : 양면인쇄
  257. duplex=0 -> 프린터설정에 따름
  258. duplex=1 -> 양면출력 안함
  259. duplex=2 -> 양면출력세로방향(V)
  260. duplex=3 -> 양면출력가로방향(H)
  261. RexCtl.PrintOption = "duplex=1"
  262. */
  263. // 또는 아래와 같이 설정 가능
  264. // oRptMainParam.put("rex_print", "direct=true;startpage=3;endpage=-1;count=10;skipzero=true");
  265. // oRptMainParam.put("rex_print_printerpaperbin", "255"); // 출력트레이 설정
  266. // oRptMainParam.put("rex_print_printername", "FinePrint"); // 출력프린터 설정
  267. // oRptMainParam.put("rex_print_printername", "\\\\124.137.28.171\\HP LaserJet 4200 PCL 6"); // 출력프린터 설정
  268. // oRptMainParam.put("rex_print_end", "javaPrintEndFunction"); // javaPrintEndFunction을 실행함 (인자는 oReport, oDataSet, RowCount)
  269. // 옵션 - 레포트가 로드되었을 때 실행될 함수 설정
  270. //oRptMainParam.put("rex_endload_end", "javaEndLoadEndFunction"); // javaEndLoadEndFunction 실행함 (인자는 oReport, oDataSet)
  271. // 옵션 - HyperLink가 설정된 객체를 클릭했을 때 실행할 함수 설정
  272. //oRptMainParam.put("rex_hyperlink_end", "javaHyperLinkEndFunction") // javaHyperLinkEndFunction 실행함 (인자는 oReport, sLink, sToolTip)
  273. // 옵션 - 긴데이터를 일정크기로 나눌 필드 설정 (반드시 XML 데이터타입으로 해야 함)
  274. //oRptMainParam.put("rex_split_fields", "서브리포트섹션1=f1:0");
  275. //oRptMainParam.put("rex_split_fields", "main=c:3,d:10;서브리포트1=c:2");
  276. //oRptMainParam.put("rex_split_fields", "main=TEST2,d:10;서브리포트1=c:2"); // 0 : enter로 구분, blank : if blob then string else none
  277. // 옵션 - image 필드 정의
  278. //oRptMainParam.put("rex_image_fields", "main=test1,test2:SVG;서브리포트1=test2:SVG:HEXA");
  279. //oRptMainParam.put("rex_image_fields", "main=test1,test2:SVG:BASE64;서브리포트1=test2:SVG:HEXA");
  280. //oRptMainParam.put("rex_image_fields", "main=test1,test2:SVGFILE:HEXA:C:\\");
  281. //oRptMainParam.CallBack = javaCallBack; // (인자는 oReport, oDataSet)
  282. // 옵션 - rex_gfRexRptOpenMulti 함수 호출시 적용됨 AddReportSection
  283. //oRptMainParam.put("rex_addreportsection", "followmainreport=1;usemainreportdata=0;pagereset=0");
  284. // 옵션 - 파라메터 설정
  285. //oRptMainParam.put("aaa", "aaaaaaaaa");
  286. //oRptMainParam.put("bbb", "22222");
  287. // oRptMainParam.put("customerid", "A");
  288. // oRptMainParam.put("ggg", "A1" + "\t" + "B1" + "\n\r" + "C1" + "D1");
  289. // 옵션 - 서버로 전달되는 파라메터 - datatype, sql , userservice, split 은 사용하면 안됨
  290. //var oServerParam;
  291. //oServerParam = rex_GetgoDictionay();
  292. //oServerParam.put("SAPUSERID", "sapuserid");
  293. //oServerParam.put("other", "other");
  294. //oRptMainParam.put("rex_server_param", oServerParam);
  295. // 옵션 - prepared sql문을 위한 파라메터
  296. //oRptMainParam.put("rex_param_sql", [["코드","값1"],["코드2", "값2"]]);
  297. //oRptMainParam.put("rex_param_sql_서브레포트1", [["코드","값1"],["코드2", "값2"]]);
  298. //oRptMainParam.put("rex_param_sql_서브레포트2", [["코드","값1"],["코드2", "값2"]]);
  299. //oRptMainParam.put("aaa", "aaaaaaaaa");
  300. // oRptMainParam.put("aaa", "aaaaaaaaa");
  301. // 옵션 - 자동갱신 시간(총)
  302. //oRptMainParam.put("rex_auto_refresh", txtRefreshTime.value)
  303. // 옵션 - progress 표시
  304. //oRptMainParam.put("rex_progress", "true");
  305. //oRptMainParam.put("rex_progress_page", "Progress.jsp");
  306. //oRptMainParam.put("rex_progress_window", "center=yes,scrollbars=no,status=no,toolbar=no,resizable=0,location=no,menu=no,width=400,height=100,left=200,top=200");
  307. // preview 팝업 열기
  308. //rex_gfRexRptOpen("popupmodal", oRptMainParam);
  309. //rex_gfRexRptOpen("iframe", ifrmRexPreview, oRptMainParam);
  310. //rex_gfRexRptOpen("print", oRptMainParam);
  311. //rex_gfRexRptOpen("save", oRptMainParam);
  312. rex_gfRexRptOpen("popup", oRptMainParam);
  313. //goWin.close();
  314. //return oRptMainParam;
  315. // ***************************************************************
  316. // simple open
  317. // ***************************************************************
  318. //rex_Open("popup", [["rex_rptname","test"],["작성자", "홍길동"]]);
  319. //rex_Open("iframe", ifrmRexPreview, [["rex_rptname","test"],["작성자", "홍길동"]]);
  320. //rex_Open("print", [["rex_rptname","test"],["작성자", "홍길동"]]);
  321. //rex_Open("save", [["rex_rptname","test"],["작성자", "홍길동"]]);
  322. // ***************************************************************
  323. // ***************************************************************
  324. // all view iframe
  325. // ***************************************************************
  326. //rex_gfRexRptOpen("iframepush", ifrmRexPreview1, fnOpenRexViewer1());
  327. //rex_gfRexRptOpen("iframepush", ifrmRexPreview2, fnOpenRexViewer2());
  328. //rex_gfRexRptOpen("iframeall", "", "");
  329. // ***************************************************************
  330. // all save
  331. // ***************************************************************
  332. //rex_gfRexRptOpen("savepush", fnOpenRexViewer1());
  333. //rex_gfRexRptOpen("savepush", fnOpenRexViewer2());
  334. //rex_gfRexRptOpen("saveall", "", "");
  335. // ***************************************************************
  336. // all print
  337. // ***************************************************************
  338. //rex_gfRexRptOpen("printpush", fnOpenRexViewer1());
  339. //rex_gfRexRptOpen("printpush", fnOpenRexViewer2());
  340. //rex_gfRexRptOpen("printall", "", "");
  341. }
  342. // CallBack 정의시 실행되는 프로시져
  343. function javaCallBack(oReport, oDataSet) {
  344. var oCtlTxtBox;
  345. var oCtlPic;
  346. //alert("callback");
  347. oCtlTxtBox = oReport.GetControl("글상자1");
  348. oCtlPic = oReport.GetControl("그림1");
  349. TxtBox_x1 = oCtlTxtBox.GetProperty("X1");
  350. TxtBox_txt = oCtlTxtBox.GetProperty("Text");
  351. Pic_x1 = oCtlPic.GetProperty("X1");
  352. oCtlPic.SetProperty("X1", parseInt(TxtBox_x1)
  353. + fnStrLenKor(TxtBox_txt) * 16
  354. + fnStrLenEng(TxtBox_txt) * 18
  355. );
  356. //oControl.SetProperty(aObjProp[0], aObjProp[1]);
  357. //s = oControl.GetProperty("Text");
  358. //oControl.SetProperty("X1", "10");
  359. // X1="140" Y1="30" Width="750" Height="50"
  360. }
  361. function fnStrLenKor(xxx) {
  362. var strlen = 0;
  363. for(j = 0; j < xxx.length; j++){
  364. var c = xxx.charCodeAt(j);
  365. if ( c < 0xac00 || 0xd7a3 < c ) {
  366. //strlen++;
  367. } else {
  368. strlen+=2;
  369. }
  370. }
  371. return strlen;
  372. }
  373. function fnStrLenEng(xxx) {
  374. var strlen = 0;
  375. for(j = 0; j < xxx.length; j++){
  376. var c = xxx.charCodeAt(j);
  377. if ( c < 0xac00 || 0xd7a3 < c ) {
  378. strlen++;
  379. } else {
  380. //strlen+=2;
  381. }
  382. }
  383. return strlen;
  384. }
  385. // rex_init_end 정의시 실행되는 프로시져
  386. function javaInitEndFunction(oRexCtl) {
  387. //alert(oRexCtl.ToolBarVisible);
  388. //oRexCtl.ToolBarVisible = false;
  389. // oRexCtl.SaveAsFilter = "xls;pdf";
  390. //oRexCtl.Zoom("wholepage");
  391. //oRexCtl.ZoomIn();
  392. //oRexCtl.ZoomIn();
  393. //oRexCtl.Zoom("pagewidth");
  394. //var oPage = oReport.GetPage();
  395. // Run 이전에 설정
  396. //oPage.LeftMargin = 100;
  397. //oPage.RightMargin = 100;
  398. //oPage.TopMargin = 100;
  399. //oPage.BottomMargin = 100;
  400. //oRexCtl.Zoom("100");
  401. //oRexCtl.Zoom("50");
  402. //oRexCtl.Zoom("wholepage");
  403. //oRexCtl.Zoom("pagewidth");
  404. }
  405. // rex_openreport_end 정의시 실행되는 프로시져
  406. function javaOpenReportEndFunction(oReport) {
  407. //
  408. var oTeeChart = null;
  409. try
  410. {
  411. oTeeChart = oReport.OpenChart("챠트1").GetChart();
  412. }
  413. catch(e)
  414. {
  415. alert("챠트를 찾을 수 없습니다.");
  416. return;
  417. }
  418. //////////////////////////////////////////////////////////////
  419. // * 챠트 종류
  420. //
  421. // scLine = 0;
  422. // scBar = 1;
  423. // scHorizBar = 2;
  424. // scArea = 3;
  425. // scPoint = 4;
  426. // scPie = 5;
  427. // scFastLine = 6;
  428. // scShape = 7;
  429. // scGantt = 8;
  430. // scBubble = 9;
  431. // scArrow = 10;
  432. // scCandle = 11;
  433. // scPolar = 12;
  434. // scSurface = 13;
  435. // scVolume = 14;
  436. // scErrorBar = 15;
  437. // scBezier = 16;
  438. // scContour = 17;
  439. // scError = 18;
  440. // scPoint3D = 19;
  441. // scRadar = 20;
  442. // scClock = 21;
  443. // scWindRose = 22;
  444. // scBar3D = 23;
  445. // scImageBar = 24;
  446. //////////////////////////////////////////////////////////////
  447. oTeeChart.ChangeSeriesType(0, 3);
  448. //////////////////////////////////////////////////////////////
  449. // * 바챠트에서 사용할 수 있는 타입
  450. //
  451. // bsRectangle = 0
  452. // bsPyramid = 1
  453. // bsInvPyramid = 2
  454. // bsCilinder = 3
  455. // bsEllipse = 4
  456. // bsArrow = 5
  457. // bsRectangleGradient = 6
  458. //////////////////////////////////////////////////////////////
  459. //oTeeChart.Series(0).asBar.BarStyle = 0;
  460. }
  461. // rex_send_end 정의시 실행되는 프로시져
  462. function javaSendEndFunction(sReportName, oConnection) {
  463. txtData.value = oConnection.Response();
  464. }
  465. // rex_endload_end 정의시 실행되는 프로시져
  466. function javaEndLoadEndFunction(oReport, oDataSet) {
  467. //ifrmRexPreview.RexCtl.SaveAs("xls", "c:\\test1.xls", 1, -1, "");
  468. // ifrmRexPreview.RexCtl.SaveAsFilter("pdf");
  469. //ifrmRexPreview.RexCtl.SaveAsDialog("");
  470. //ifrmRexPreview.RexCtl.SaveAsFilter = "hwp;pdf;xls" // 저장목록에 HWP/PDF 만 보입니다.
  471. //ifrmRexPreview.RexCtl.SaveAsOption("hwp", "filename=C:\\제목없음.hwp");
  472. //ifrmRexPreview.RexCtl.SaveAsOption("pdf", "filename=C:\\제목없음.pdf");
  473. //alert(oDataSet.RowCount);
  474. }
  475. // rex_hyperlink_end 정의시 실행되는 프로시져
  476. function javaHyperLinkEndFunction(oReport, sLink, sToolTip) {
  477. // drill-down 코딩을 할 수 있음.
  478. //alert(sLink);
  479. //alert(sToolTip);
  480. // window.open("http://www.naver.com", "naver","");
  481. }
  482. // rex_save_end 정의시 실행되는 프로시져
  483. function javaSaveEndFunction(sFileType, sFileName) {
  484. alert(sFileName);
  485. /*
  486. var oExcel, oBook, oSheet;
  487. Set oExcel = CreateObject("Excel.Application")
  488. oExcel.Visible = True
  489. '엑셀이 설치되어있는지에 대한 Check
  490. If IsNull(oExcel.Application) Then
  491. MsgBox "엑셀이 설치되지 않아 작업을 진행할 수 없습니다.", vbOKOnly, ""
  492. oExcel.Quit
  493. Set oExcel = Nothing
  494. End If
  495. oExcel.Workbooks.Open sFileName
  496. */
  497. }
  498. // rex_print_end 정의시 실행되는 프로시져
  499. function javaPrintEndFunction(oReport, oDataSet, RowCount, oRexCtl) {
  500. // oDataSet은 사용하지 마세요... RowCount를 사용하세요
  501. alert(RowCount);
  502. alert(RowCount * 100);
  503. alert(oRexCtl.GetpageCount());
  504. }
  505. </script>
  506. <script language="JavaScript">
  507. function fnOpenRexViewerEach() {
  508. var oRptMainParam;
  509. oRptMainParam = rex_GetgoDictionay();
  510. // 옵션 - 툴바 설정
  511. // oRptMainParam.put("rex_init", "open=1;save=1;print=1;stop=1;zoomin=1;zoomout=1;moveprev=1;movenext=1;combo=1;movefirst=1;movelast=1;help=1");
  512. // oRptMainParam.put("rex_init", "open=0;save=0");
  513. // oRptMainParam.put("rex_init", "ToolBarVisible=1;ShowProcessDialog=1");
  514. // oRptMainParam.put("rex_init_end", "javaInitEndFunction") // javaInitEndFunction 실행함 (인자는 oRexCtl)
  515. // oRptMainParam.put("rex_open_window", "center=yes,scrollbars=no,status=no,toolbar=no,resizable=0,location=no,menu=no,width=1000,height=600");
  516. oRptMainParam.put("rex_getsubreportdata", "each");
  517. //oRptMainParam.put("rex_param_share", "each");
  518. // 옵션 - Save 관련 설정
  519. // oRptMainParam.put("rex_save_file_type", "pdf");
  520. // oRptMainParam.put("rex_save_file", "c:\\abc.xls");
  521. // oRptMainParam.put("rex_save_file_option", "sheetOption=1");
  522. // oRptMainParam.put("rex_save_file_option", "coldelimiter=" + "\t" + ";rowdelimiter=" + "\n\r" + ";addfieldname=1");
  523. // oRptMainParam.put("rex_save_end", "javaSaveEndFunction"); // javaSaveEndFunction을 실행함 (인자는 sFileType, sFileName);
  524. // 옵션 - 데이터 및 xpath 설정
  525. oRptMainParam.put("rex_data", "http://localhost:8080/RexServer/rexfiles/customers.xml");
  526. //oRptMainParam.put("rex_data", txtData.value);
  527. //oRptMainParam.put("rex_xpath", "rexdataset/rexrow"); // main 레포트의 xpath
  528. //oRptMainParam.put("rex_xpath", "root/main/rpt1/rexdataset/rexrow"); // main 레포트의 xpath
  529. // oRptMainParam.put("rex_xpath1", "root/rpt2/row"); // subreport1의 xpath
  530. // oRptMainParam.put("rex_xpath2", "root/rpt3/row"); // subreport2의 xpath
  531. // 필수 - 레포트명
  532. oRptMainParam.put("rex_rptname", "customers");
  533. // oRptMainParam.put("rex_rptname", "cospec");
  534. // 필수 - 데이터 타입 설정
  535. //oRptMainParam.put("rex_datatype", "CSV"); // XML, CSV
  536. //oRptMainParam.put("rex_datatype", "XMLSTR"); // XMLSTR, CSVSTR
  537. //oRptMainParam.put("rex_datatype", "CSVFILE"); // XMLFILE, CSVFILE
  538. oRptMainParam.put("rex_datatype", "XMLFILE"); // XMLFILE, CSVFILE
  539. // 옵션 - 다른 DB를 연결시
  540. //oRptMainParam.put("rex_userservice", "Sql2");
  541. // oRptMainParam.put("rex_userservice", "myconn");
  542. // 옵션 - rex_gfRexRptOpen("print", oRptMainParam) 호출시 바로 인쇄 설정
  543. // oRptMainParam.put("rex_printdirect", "true");
  544. // oRptMainParam.put("rex_print_startpage", "3");
  545. // oRptMainParam.put("rex_print_endpage", "-1");
  546. // oRptMainParam.put("rex_print_count", "5");
  547. // oRptMainParam.put("rex_print_skipzero", "true"); // 인쇄시 건수가 0이면 인쇄 안함
  548. // 또는 아래와 같이 설정 가능
  549. // oRptMainParam.put("rex_print", "direct=true;startpage=3;endpage=-1;count=10;skipzero=true");
  550. // oRptMainParam.put("rex_print_printerpaperbin", "255"); // 출력트레이 설정
  551. // oRptMainParam.put("rex_print_printername", "FinePrint"); // 출력프린터 설정
  552. // oRptMainParam.put("rex_print_printername", "\\\\124.137.28.171\\HP LaserJet 4200 PCL 6"); // 출력프린터 설정
  553. // oRptMainParam.put("rex_print_end", "javaPrintEndFunction"); // javaPrintEndFunction을 실행함 (인자는 oReport, oDataSet, RowCount)
  554. // 옵션 - 자동 페이지 바꿈
  555. // oRptMainParam.put("rex_auto_next_page", "3"); // 3초마다 다음페이지로 바꿈
  556. // 옵션 - 파라메터 설정
  557. oRptMainParam.put("param1", "abc");
  558. // oRptMainParam.put("custid", txtData.value);
  559. // oRptMainParam.put("id", "0");
  560. // oRptMainParam.put("customerid", "A");
  561. // oRptMainParam.put("ggg", "A1" + "\t" + "B1" + "\n\r" + "C1" + "D1");
  562. // 옵션 - 자동갱신 시간(총)
  563. // oRptMainParam.put("rex_auto_refresh", txtRefreshTime.value)
  564. var oRptSubParam1;
  565. oRptSubParam1 = rex_GetgoDictionay();
  566. oRptSubParam1.put("rex_rptname", "서브리포트섹션1");
  567. oRptSubParam1.put("rex_datatype", "XML"); // XML, CSV
  568. //oRptSubParam1.put("rex_userservice", "Sql2");
  569. oRptSubParam1.put("param1", "가나다라");
  570. // preview 팝업 열기
  571. rex_gfRexRptOpen("popup", oRptMainParam, oRptSubParam1);
  572. // rex_gfRexRptOpen("popupmodal", oRptMainParam);
  573. // rex_gfRexRptOpen("iframe", ifrmRexPreview, oRptMainParam);
  574. // rex_gfRexRptOpen("print", oRptMainParam);
  575. // rex_gfRexRptOpen("save", oRptMainParam);
  576. }
  577. </script>
  578. </head>
  579. <body>
  580. <button id="btnRexViewer" onclick="fnOpenRexViewerJavaScript();">레포트 보기</button><br>
  581. <button id="btnRexViewer" onclick="fnOpenRexViewerEach();">레포트 보기(각각)</button><br>
  582. <button id="btnRexViewer3" onclick="fnOpenRexViewerMulti();">레포트 보기(멀티)</button>
  583. &nbsp;&nbsp;&nbsp;&nbsp;
  584. 자동갱신 시간(초)
  585. <select id="txtRefreshTime">
  586. <option value="0">자동갱신 안함</option>
  587. <option value="5">5초마다</option>
  588. <option value="10">10초마다</option>
  589. <option value="15">15초마다</option>
  590. </select>
  591. <br>
  592. <textarea id="txtData" rows="5" cols="100"></textarea>
  593. <br>
  594. <iframe id="ifrmRexPreview" src="RexPreView.jsp" width="100%" height="450"></iframe>
  595. </body>
  596. </html>