java中获取水晶报表

xiaoxiao2022-06-23  51

我用水晶报表9做的,这是个共通页面,前面把生成好的SQL文传过来,由共通页面连接数据库执行SQL文,从而生成新的报表! <%@ page language="java" pageEncoding="MS932" %> <%@ page import="java.util.*"%> <%@ page import="com.crystaldecisions.sdk.occa.report.application.*"%> <%@ page import="com.crystaldecisions.sdk.occa.report.data.*"%> <%@ page import="java.sql.*"%> <%@ page import="oracle.jdbc.OracleDriver"%> <html> <head> <title>Begin Here - Simple Preview Report</title> </head> <body> <% //

String path = request.getRealPath("/"); int lastIndex = path.lastIndexOf("//"); path = path.substring(0, lastIndex) + "//"; String reportName ="RPT/"+request.getParameter ( "reprotName" ); %> <% // ReportAppSession ra = new ReportAppSession(); // ra.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument"); //

ra.setReportAppServer("127.0.0.1"); // ra.initialize(); // ReportClientDocument clientDoc = new ReportClientDocument(); clientDoc.setReportAppServer(ra.getReportAppServer() ); // clientDoc.open(path + reportName, OpenReportOptions._openAsReadOnly); %> <% // String dataBaseName = (String)request.getSession().getServletContext().getAttribute("DataBaseName"); // String userName = (String)request.getSession().getServletContext().getAttribute("UserName"); // String passWord = (String)request.getSession().getServletContext().getAttribute("PassWord"); // String kikName = (String)request.getSession().getServletContext().getAttribute("KikName"); // DriverManager.registerDriver(new OracleDriver()); java.sql.Connection connection = DriverManager.getConnection("jdbc:oracle:thin:"+userName+"/"+passWord+"@"+kikName+":1521:"+dataBaseName); Statement statement = connection.createStatement(); String sqlStatement=new String(request.getParameter ( "sql" ).getBytes("iso-8859-1"),"Shift_JIS"); StringTokenizer sqlString = new StringTokenizer (sqlStatement , "@" ) ; int j = 0; while (sqlString.hasMoreTokens () ) { String sqlS = sqlString.nextToken () ; ResultSet results = statement.executeQuery(sqlS); clientDoc.getDatabaseController().setDataSource(results, clientDoc.getDatabase().getTables().getTable(j).getName(), "Reports"); j=j+1; } %> <% // String jyouken=new String(request.getParameter ( "jyouken" ).getBytes("iso-8859-1"),"Shift_JIS"); StringTokenizer kamoku = new StringTokenizer (jyouken , "@" ) ; int i = 0; while (kamoku.hasMoreTokens () ) { String s = kamoku.nextToken () ; s = s.replace ( '☆' , '~' ) ; ParameterField tempParam = new ParameterField(); ParameterFieldDiscreteValue newDiscreteValue = new ParameterFieldDiscreteValue(); ParameterFieldController paramController; // Fields paramCollection = clientDoc.getDataDefinition().getParameterFields(); ParameterField stringParamToChange = (ParameterField) paramCollection.getField(i); newDiscreteValue.setValue(s); Field temp = (Field)paramCollection.getField(i); temp.copyTo(tempParam, false); tempParam.getCurrentValues().add(newDiscreteValue); i=i+1; paramController = clientDoc.getDataDefController().getParameterFieldController(); paramController.modify(stringParamToChange, tempParam); } %> <% // session.setAttribute("oClientDoc", clientDoc); // response.sendRedirect("CrystalReportsInteractiveViewer.jsp"); %> </body> </html>

相关资源:水晶报表教程 打印 asp.net web 打印
转载请注明原文地址: https://www.6miu.com/read-4953058.html

最新回复(0)