Symptom
A Crystal report is using a Java Bean to connect to a data source. How do you pass a parameter value to the Java Bean to restrict the results returned?
Resolution
To pass a parameter value, modify the 'getResultSet' method of your Java Bean class to accept a parameter and then use this parameter in the SQL query.
For example:
import java.sql.*;
/**
* <p>Title: Java Bean Data Source Sample</p>
* <p>Description: Sample application to show how to use a Java Bean as a Data Source for CR 9</p>
* @version 1.0
*/
/* For information on how to use JDBC and ResultSets see Sun's tutorials and guides at <<http://java.sun.com/j2se/1.3/docs/guide/jdbc/inde x.html>> This site will explain the URL, Connection, Statement
/* and JDBC-ODBC Bridge driver that are used to populate the java.sql.ResultSet
*/
public class CR9SampleDataSourceBeanWithParam
{
private ResultSet resultSet = null;
private Connection con = null;
private String url = "jdbc:odbc:Xtreme Sample Database 9";
private String JDBCBridge = "sun.jdbc.odbc.JdbcOdbcDriver";
private String sqlQuery;
public CR9SampleDataSourceBeanWithParam ()
{
try
{
/* Ensure JDBC-ODBC Bridge exists */
Class.forName(JDBCBridge);
/* Create a connection to 'Xtreme Sample Database 9' ODBC DSN */
con = DriverManager.getConnection(url, "", "");
} catch (ClassNotFoundException e) {
System.out.println("Check to ensure that the JDBCODBCBridge driver is installed");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("SQL Exception #" +
e.getErrorCode() + " : " + e.getLocalizedMessage());
e.printStackTrace();
}
}
public ResultSet getResultSet(int param) throws
java.sql.SQLException
{
/* Pass a parameter as an argument to the 'getResultSet' method and then append the parameter to the SQL query */
sqlQuery = "SELECT `Customer`.`Customer ID`, `Customer`.`Customer Name` FROM `Customer` `Customer` WHERE `Customer`.`Customer ID`=";
sqlQuery = sqlQuery + param;
/* Create an SQL statement to execute */
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
/* Execute the select statement to populate the ResultSet */
resultSet = stmt.executeQuery(sqlQuery);
return resultSet;
}
}
Keywords
PARAMETERS VALUES SEND SELECTION NARROW RESULT GET BACK DATA JAVABEAN Crystal Reports Java Bean Connectivity Parameters Result Set , c2015416 , KBA , BI-RA-CR , Crystal Reports designer or Business View Manager , Problem