index.jsp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <%@page import="com.uas.cr.listener.ContextInitListener"%>
  2. <%@page import="com.uas.cr.entity.DB"%>
  3. <%@page import="com.uas.cr.util.DES"%>
  4. <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  5. <%@ page
  6. import="com.crystaldecisions.report.web.viewer.CrystalReportViewer,com.crystaldecisions.sdk.occa.report.application.OpenReportOptions,com.crystaldecisions.sdk.occa.report.application.ReportClientDocument,com.crystaldecisions.sdk.occa.report.lib.ReportSDKExceptionBase,java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet,java.sql.SQLException,java.sql.Statement,java.lang.Object"%>
  7. <%@page import="java.text.Format"%>
  8. <%@page import="com.crystaldecisions.report.web.viewer.CrPrintMode"%>
  9. <%@page
  10. import="com.businessobjects12.prompting.objectmodel.common.Values"%>
  11. <%@page
  12. import="com.crystaldecisions.reports.queryengine.collections.Fields"%>
  13. <%@page import="com.businessobjects.reports.dpom.processingplan.Field"%>
  14. <%@page
  15. import="com.crystaldecisions.sdk.occa.report.data.ParameterFieldRangeValue"%>
  16. <%@page
  17. import="com.crystaldecisions.sdk.occa.report.data.ParameterFieldDiscreteValue"%>
  18. <%@page
  19. import="com.crystaldecisions.reports.queryengine.collections.ParameterValues"%>
  20. <%@page
  21. import="com.crystaldecisions.sdk.occa.report.data.ParameterField"%>
  22. <%@page
  23. import="com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory"%>
  24. <%@page
  25. import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2"%>
  26. <%@page
  27. import="com.crystaldecisions.sdk.occa.report.data.ConnectionInfos"%>
  28. <%@page
  29. import="com.crystaldecisions.sdk.occa.report.data.ConnectionInfo"%>
  30. <%@page
  31. import="com.crystaldecisions.sdk.occa.report.data.IConnectionInfo"%>
  32. <%@page
  33. import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSource"%>
  34. <%@page import="com.crystaldecisions.sdk.occa.report.lib.PropertyBag"%>
  35. <%
  36. try {
  37. // 报表路径
  38. String reportName = request.getParameter("reportfile");
  39. // 条件
  40. String rcondition = request.getParameter("rcondition");
  41. DB db = ContextInitListener.getDB();
  42. if(reportName == null || "".equals(reportName) || db == null) {
  43. out.println("非法请求!");
  44. return;
  45. }
  46. DES des = new DES();
  47. String key = "12345678";
  48. reportName = des.decrypt(reportName, key).replace("%2f", "/");
  49. ReportClientDocument clientDoc = (ReportClientDocument) session.getAttribute(reportName);
  50. if (clientDoc == null) {
  51. clientDoc = new ReportClientDocument();
  52. clientDoc.setReportAppServer(ReportClientDocument.inprocConnectionString);
  53. // Open report
  54. clientDoc.open(reportName, OpenReportOptions._openAsReadOnly);
  55. // ****** BEGIN POPULATE WITH RESULTSET SNIPPET ****************
  56. session.setAttribute(reportName, clientDoc);
  57. }
  58. // ****** BEGIN CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET ****************
  59. // Create the CrystalReportViewer object
  60. IReportSourceFactory2 rsf = new JPEReportSourceFactory();
  61. java.util.Locale localetest = java.util.Locale.CHINA;
  62. IReportSource rptSource = (IReportSource) rsf.createReportSource(reportName, localetest);
  63. ConnectionInfos conninfos = new ConnectionInfos();
  64. IConnectionInfo connInfo1 = new ConnectionInfo();
  65. PropertyBag propertyBag = new PropertyBag();
  66. propertyBag.put("Database Class Name", db.getDriverClassName());
  67. propertyBag.put("CONNECTION_STRING", db.getUrl());
  68. propertyBag.put("Database DLL", "crdb_oracle.dll");
  69. propertyBag.put("Server Type", "JDBC (JNDI)");
  70. propertyBag.put("Use JDBC", "true");
  71. connInfo1.setAttributes(propertyBag);
  72. connInfo1.setUserName(db.getUsername());
  73. connInfo1.setPassword(db.getPassword());
  74. conninfos.add(connInfo1);
  75. CrystalReportViewer crystalReportPageViewer = new CrystalReportViewer();
  76. crystalReportPageViewer.setDatabaseLogonInfos(conninfos);
  77. // set the reportsource property of the viewer
  78. crystalReportPageViewer.setReportSource(rptSource);
  79. crystalReportPageViewer.setSelectionFormula(rcondition);
  80. crystalReportPageViewer.setPrintMode(CrPrintMode.ACTIVEX);
  81. crystalReportPageViewer.setOwnPage(true);
  82. crystalReportPageViewer.setOwnForm(true);
  83. crystalReportPageViewer.setEnableParameterPrompt(false);
  84. crystalReportPageViewer.setDisplayGroupTree(false);
  85. crystalReportPageViewer.setHasSearchButton(false);
  86. crystalReportPageViewer.setHasPrintButton(true);
  87. crystalReportPageViewer.setHasExportButton(true);
  88. crystalReportPageViewer.setHasLogo(false);
  89. crystalReportPageViewer.setGroupTreeWidth(0);
  90. crystalReportPageViewer.setDisplayGroupTree(false);
  91. crystalReportPageViewer.setHasViewList(false);
  92. // Apply the viewer preference attributes
  93. // Process the report
  94. crystalReportPageViewer.processHttpRequest(request, response, application, out);
  95. // ****** END CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET ****************
  96. } catch (ReportSDKExceptionBase e) {
  97. out.println(e);
  98. } catch (Exception e) {
  99. out.println(e);
  100. }
  101. %><%!// Simple utility function for obtaining result sets that will be pushed into the report.
  102. // This is just standard querying of a Java result set and does NOT involve any%>
  103. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  104. <html>
  105. <head>
  106. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  107. <title>报表</title>
  108. </head>
  109. <body>
  110. </body>
  111. </html>