Java - JAVA mas Crystal report, cambiar origen de datos

 
Vista:

JAVA mas Crystal report, cambiar origen de datos

Publicado por alberto (1 intervención) el 31/05/2014 18:48:00
El escenario es el siguiente
-Reportes creados en crystal 9.0
-IDE JAVA Eclipse con integracion del plugin SAP

El intento mas basico que quiero hacer es cambiar el origen de datos un pequeño fragmento de el codigo que estoy utilizando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<%@ page contentType="text/html;charset=UTF-8"
    import="com.crystaldecisions.reports.reportengineinterface.*,
            com.crystaldecisions.report.web.viewer.*"  %>
            <%@page import="java.util.Date"%>
<%@ page import="com.crystaldecisions.report.web.viewer.*" %>
<%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer" %>
<%@ page import="com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory" %>
<%@ page import="com.crystaldecisions.reports.sdk.ReportClientDocument" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.ConnectionInfo" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.ConnectionInfos" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.Fields" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.IConnectionInfo" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.ParameterField" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.ParameterFieldDiscreteValue" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.Values" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSource" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.application.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.document.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.definition.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.sql.DataSource"%>
 
 
<html>
<head>
<title>Change Database Connection - ODBC</title>
</head>
<body>
 
<%
String ipo=request.getParameter("fecha1");
String reportName = "CrystalReport1.rpt";
 
try {
 
    IReportSourceFactory2 rptsrcFac=new JPEReportSourceFactory();
    IReportSource reportSource=(IReportSource)rptsrcFac.createReportSource(reportName,request.getLocale());
 
    ConnectionInfos connInfos = new ConnectionInfos();
    IConnectionInfo connInfo1 = new ConnectionInfo();
    String DBUSERNAME = "user";
    String DBPASSWORD = "pass";
 
    String SERVER =  "192.168.1.100";
    String CONNECTION_URL = "jdbc:postgresql://192.168.1.4:5432/xxx";
    String DATABASE_CLASSNAME = "org.postgresql.Driver";
    String DATABASE_DLL = "crdb_jdbc.dll";
    String JDBC_CONNECTION_STRING =  "Use JDBC=b(true);Connection URL=s(jdbc:postgresql://192.168.1.4:5432/xxx);" +
            "Database Class Name=s(org.postgresql.Driver);Server=s(servername) ;" +
            "User ID=;Password=;Database=s(dbname);Trusted_Connection=b(false) ;" +
            "JDBC Connection String=s(!org.postgresql.Driver!jdbc:postgresql://192.168.1.4:5432/xxx;" +
            "DatabaseName={database};user={userid};password={password}!)";
 
 
    PropertyBag propertyBag = new PropertyBag();
    propertyBag.put("Use JDBC", "true");
    propertyBag.put("Connection URL", CONNECTION_URL);
    propertyBag.put("Database Class Name", DATABASE_CLASSNAME);
    propertyBag.put("Database DLL", DATABASE_DLL);
    propertyBag.put("Server Type", "JDBC (JNDI)");
    propertyBag.put("Server", SERVER);
    propertyBag.put("Trusted_Connection", "False");
    propertyBag.put("JDBC Connection String", JDBC_CONNECTION_STRING);
 
 
    connInfo1.setUserName(DBUSERNAME);
    connInfo1.setPassword(DBPASSWORD);
 
 
    connInfo1.setAttributes(propertyBag);
    connInfos.add(connInfo1);
    String pop = "01/01/2014";
    Fields fields=new Fields();
    ParameterField paramfield=new ParameterField();
    Values vals=new Values();
    ParameterFieldDiscreteValue val=new ParameterFieldDiscreteValue();
    paramfield.setName("fecha1");
    val.setValue(pop);
    vals.add(val);
    paramfield.setCurrentValues(vals);
    fields.add(paramfield);
 
    CrystalReportViewer viewer=new CrystalReportViewer();
    viewer.refresh();
    viewer.setDatabaseLogonInfos(connInfos);
    viewer.setReportSource(reportSource);
    viewer.setParameterFields(fields);
    viewer.setReuseParameterValuesOnRefresh(true);
    viewer.setHasPageBottomToolbar(false);
    viewer.setHasLogo(false);
    viewer.setOwnPage(true);
    viewer.setOwnForm(true);
    viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);
    viewer.dispose();
 
}
 
catch(ReportSDKException e) {
    out.print("ERROR in the connection"+e);
 
}
catch(Exception ex) {
out.println(ex);
}
%>
 
</body>
</html>

Alguien sabe o tiene un codigo concreto que funcione para realizar el cambio del origen de datos en JAVA utilizando JSP o cualquier framework, llevo dos dias sin conseguirlo, el reporte de crystal report se conecta por ODBC a un servidor es la version 9.0 asi que no hay JNDI, lo que intento es desde JAVA Cambiar la conexion, tambien he intentado crear el JNDI en apache en el context y web.xml y con una consulta simple en java si funciona pero el reporte de crystal sigue diciendo que no existe jeje.

Por fabor les agradeceria mucho cualquier aporte de ayuda que contribuya a solucionar mi problema.

Gracias!

He buscado en internet donde proponen la misma solucion que intento aplicar pero realmente no me han funcionado, la base esta en PostgreSQL
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

JAVA mas Crystal report, cambiar origen de datos

Publicado por Manuel (1 intervención) el 14/11/2014 00:55:03
encontraste la respuesta??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar