Scott,

the only reason you're trying to get the JSP version going is to prove
that it works?

is just putting the jar into CF's lib directory (IIRC the default
depository of jars) and then just calling the java classes any good to
you?

<cfset ReportClientDocument = createObject("java",
"com.crystaldecisions.reports.sdk.ReportClientDocument") />

or do you need the JSP version going first so you can then reverse
engineer what to do with CF?



On Fri, Feb 15, 2008 at 3:24 PM, Mark Mandel <[EMAIL PROTECTED]> wrote:
>
>  Scott,
>
>  I don't believe the JSPservlet container shares the Java classpath
>  that CF has.. in fact, I'm almost positive it does't.
>
>  Mark
>
>  On Fri, Feb 15, 2008 at 3:46 PM, Scott Thornton
>
>
> <[EMAIL PROTECTED]> wrote:
>  >
>  >  actually,
>  >
>  >  just trying to get the .jsp sample page to work first.......
>  >
>  >  browsing this page via coldfusion web server.
>  >
>  >  I believe we have to unpack the  .jar file into 
> C:/CFusionMX/wwwroot/WEB-INF/.........
>  >
>  >  example page follows:
>  >
>  >  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>  >
>  >
>  >  <[EMAIL PROTECTED] 
> import="com.crystaldecisions.reports.sdk.ReportClientDocument,
>  >                             com.crystaldecisions.sdk.occa.report.lib.*,
>  >                                 
> com.crystaldecisions.sdk.occa.report.data.*,
>  >                                 
> com.crystaldecisions.sdk.occa.report.lib.PropertyBag,
>  >                                 java.io.*,
>  >                                 com.crystaldecisions.reports.sdk.*"
>  >
>  >  %>
>  >
>  >  <%
>  >  /* Applies to: XI
>  >  * Date Created: April 4, 2005
>  >  * Description:  This sample application can assist with determining 
> database connection information that may be
>  >  *                               required when changing database 
> connection information in a Crystal Report at runtime.
>  >  *               To help demonstrate how to use this sample, there are 2 
> sample reports included:  ReportA.rpt and
>  >  *                               ReportB.rpt.  These reports are based off 
> 2 different SQL Server databases which use a JDBC
>  >  *                               connection.
>  >  * Author: HP, BH
>  >  */
>  >
>  >  try {
>  >
>  >         //Create a ReportClientDocument for each report
>  >         ReportClientDocument oReportClientDocumentA = new 
> ReportClientDocument();
>  >         ReportClientDocument oReportClientDocumentB = new 
> ReportClientDocument();
>  >
>  >         //Parse out the report name using helper function below
>  >         String ReportA = getReportName(request.getParameter("ReportA"));
>  >         String ReportB = getReportName(request.getParameter("ReportB"));
>  >
>  >         //Open both reports
>  >         oReportClientDocumentA.open("jrc_display_connection_info/" + 
> ReportA, 0);
>  >         oReportClientDocumentB.open("jrc_display_connection_info/" + 
> ReportB, 0);
>  >
>  >         //Display the connection information about a report.
>  >         //(code for the ConnInfoDisplayer class is below)
>  >         ConnInfoDisplayer report1_displayer = new 
> ConnInfoDisplayer(oReportClientDocumentA);
>  >         ConnInfoDisplayer report2_displayer = new 
> ConnInfoDisplayer(oReportClientDocumentB);
>  >
>  >         //Begin a main table to display both reportA and reportB's 
> properties in.
>  >         out.println("<table width='100%' height='100%'>");
>  >         out.println("<tr align='center' valign='top'>");
>  >
>  >         out.println("<td>");
>  >         out.println(report1_displayer.getTable(ReportA)); //list out the 
> properties of Report A
>  >         out.println("</td>");
>  >
>  >         out.println("<td>");
>  >         out.println(report2_displayer.getTable(ReportB)); //list out the 
> properties of Report B
>  >         out.println("</td>");
>  >
>  >         out.println("</tr>");
>  >         out.println("</table>"); // End the main table.
>  >
>  >         //Close the ReportClientDocument to allow the JRC to release the 
> resources
>  >         //tied to each report.
>  >         oReportClientDocumentA.close();
>  >         oReportClientDocumentB.close();
>  >
>  >  }
>  >  catch(ReportSDKException sdkEx) {
>  >         out.println(sdkEx);
>  >  }
>  >
>  >
>  >  %>
>  >
>  >  <%!
>  >  /*********************** class ConnInfoDisplayer ***********************
>  >   *
>  >   * Used to display all the Connection Info properties from the first table
>  >   * of the given report in a nice HTML based table.
>  >   *
>  >   ***********************************************************************/
>  >  public class ConnInfoDisplayer
>  >  {
>  >         private ReportClientDocument oReportClientDocument;
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Constructor - Save the reportClientDocument to be displayed
>  >          *
>  >          
> ***********************************************************************/
>  >         ConnInfoDisplayer(ReportClientDocument oReportClientDocument)
>  >         {
>  >                 this.oReportClientDocument = oReportClientDocument;
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the report name section of the table for the main report.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String report_name_section(ReportClientDocument 
> oReportClientDocument, String theReportName) throws ReportSDKException
>  >         {
>  >                 String reportName = theReportName;
>  >                 String result = "";
>  >                 result += "<tr>";
>  >                 result += "<td colspan=2 align=center 
> bgcolor='#0C0C6E'><strong><font color='white'>Main Report: " + reportName + 
> "</font></strong></td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td colspan=2 bgcolor='#CFD0E2'>&nbsp;</td>";
>  >                 result += "</tr>";
>  >                 return result;
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the report name section of the table for the subreport.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String table_properties_section(ITable oTable)
>  >         {
>  >                 String result = "";
>  >                 result += "<tr>";
>  >                 result += "<td colspan=2 bgcolor='#0C0C6E'><strong><font 
> color='white'>Table Properties</font></strong></td>";
>  >                 result += "</tr>";
>  >
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>Name</td><td 
> bgcolor='#F1EFE2'>" + oTable.getName() + "</td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>Alias</td><td 
> bgcolor='#F1EFE2'>" + oTable.getAlias() + "</td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>Qualified Name</td><td 
> bgcolor='#F1EFE2'>" + oTable.getQualifiedName() + "</td>";
>  >                 result += "</tr>";
>  >                 return result;
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the connection infos name section.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String conn_info_properties_section(IConnectionInfo 
> oConnectionInfo)
>  >         {
>  >                 String result = "";
>  >                 //list out the general Connection properties
>  >                 result += "<tr>";
>  >                 result += "<td colspan=2 bgcolor='#0C0C6E'><strong><font 
> color='white'>ConnectionInfo Properties</font></strong></td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>User Name</td><td 
> bgcolor='#F1EFE2'>" + oConnectionInfo.getUserName() + "</td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>Password</td><td 
> bgcolor='#F1EFE2'>" + oConnectionInfo.getPassword() + "</td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td bgcolor='#CFD0E2'>Kind</td><td 
> bgcolor='#F1EFE2'>" + oConnectionInfo.getKind() + "</td>";
>  >                 result += "</tr>";
>  >                 result += "<tr>";
>  >                 result += "<td colspan=2 bgcolor='#0C0C6E'><strong><font 
> color='white'>ConnectionInfo Atttribute Properties</font></strong></td>";
>  >                 result += "</tr>";
>  >                 return result;
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the property bag infos name section.  This function will
>  >          * recursively go through any property bags that are contained in 
> this
>  >          * property bag.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String property_bag_section(PropertyBag oPropertyBag, 
> String indent)
>  >         {
>  >             int i;
>  >             IStrings prop_ids = null;
>  >             String result = "";
>  >
>  >             prop_ids = oPropertyBag.getPropertyIDs();
>  >
>  >             String prop_name = "";
>  >
>  >             for (i=0;i < prop_ids.size(); i++) {
>  >                         if ( 
> (oPropertyBag.get(prop_ids.get(i))).getClass() != oPropertyBag.getClass() ) {
>  >
>  >                                 prop_name = (String)prop_ids.getString(i);
>  >                                 String prop_val = 
> (String)oPropertyBag.getStringValue(prop_ids.get(i));
>  >                                 result += "<tr><td bgcolor='#CFD0E2'>" + 
> prop_name + "</td><td bgcolor='#F1EFE2'>" + prop_val + "</td></tr>";
>  >
>  >                         } else if 
> ((oPropertyBag.get(prop_ids.get(i))).getClass() == oPropertyBag.getClass() ) {
>  >
>  >                                 prop_name = (String)prop_ids.get(i);
>  >                                 result += "<td colspan=2 
> bgcolor='#CFD0E2'><i>" + prop_name + " Properties</i></td>";
>  >                                 result += this.property_bag_section 
> ((PropertyBag)oPropertyBag.get(prop_ids.get(i)), "&nbsp&nbsp&nbsp&nbsp&nbsp");
>  >                         } else {
>  >                                   result += " ***** " + 
> (oPropertyBag.get(prop_ids.get(i))).getClass();
>  >                         }
>  >             }
>  >             return result;
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the section that includes the reports connection 
> including
>  >          * the Connection Infos direct properties, and any property bags it
>  >          * contains.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String connection_section(IConnectionInfo oConnectionInfo)
>  >         {
>  >                 String connInfoTable = "";
>  >
>  >                 connInfoTable += 
> conn_info_properties_section(oConnectionInfo);
>  >
>  >                 PropertyBag oPropertyBag = oConnectionInfo.getAttributes();
>  >                 connInfoTable += property_bag_section(oPropertyBag, "");
>  >
>  >                 return connInfoTable;
>  >
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the table of Connection Properties as a String to be 
> displayed.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String table_section(ITable oTable) throws 
> ReportSDKException
>  >         {
>  >                 String connInfoTable = "";
>  >
>  >                 connInfoTable += table_properties_section(oTable);
>  >
>  >                 IConnectionInfo oConnectionInfo = 
> (IConnectionInfo)oTable.getConnectionInfo();
>  >                 connInfoTable += connection_section(oConnectionInfo);
>  >
>  >
>  >                 return connInfoTable;
>  >
>  >         }
>  >
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return the main report section.  There should be only one main 
> report
>  >          * section per ConnInfoDisplayer.
>  >          *
>  >          
> ***********************************************************************/
>  >         private String mainreport_section(ReportClientDocument 
> oReportClientDocument, String theReportName) throws ReportSDKException
>  >         {
>  >                 String reportName = theReportName;
>  >                 String result = "";
>  >                 //Get the first table from the report.  We will display 
> it's connection properties.
>  >
>  >                 result += "<table border=0 cellspacing=1>";
>  >                 result += report_name_section(oReportClientDocument, 
> reportName);
>  >                 for (int i = 0; i < 
> oReportClientDocument.getDatabaseController().getDatabase().getTables().size();
>  i++)
>  >                 {
>  >                         ITable oTable = 
> (ITable)oReportClientDocument.getDatabaseController().getDatabase().getTables().getTable(i);
>  >                         result += table_section(oTable);
>  >                 }
>  >                 result += "</table>";
>  >
>  >                 return result;
>  >
>  >         }
>  >
>  >         
> /************************************************************************
>  >          *
>  >          * Return an HTML based table of all the connection properties in 
> the
>  >          * oReportClientDocument that was passed in to the contructor.
>  >          *
>  >          
> ***********************************************************************/
>  >         public String getTable(String theReportName) throws 
> ReportSDKException
>  >         {
>  >                 String reportName = theReportName;
>  >                 String result = "";
>  >
>  >                 result += mainreport_section(oReportClientDocument, 
> reportName);
>  >
>  >                 return result;
>  >         }
>  >
>  >  }// End of ConnInfoDisplayer Class
>  >  %>
>  >
>  >
>  >  <%!
>  >  public String getReportName(String reportlocation)
>  >  {
>  >         String stringToParse = reportlocation;
>  >
>  >         //Parse the report location string to get the report name
>  >         int indexOfTheLastBackslash = stringToParse.lastIndexOf('\\');
>  >         //Increment the index of the last occurence of the backslash by 1
>  >         //so that we do not include the backslash as part of the report 
> name
>  >         indexOfTheLastBackslash++;
>  >
>  >         //retrieve the report name
>  >         String reportName = 
> stringToParse.substring(indexOfTheLastBackslash);
>  >
>  >         return reportName;
>  >
>  >  } //end of getReportName method
>  >  %>
>  >
>  >
>  >
>  >  >>> "Mark Mandel" <[EMAIL PROTECTED]> 15/02/2008 3:33 pm >>>
>  >
>  >
>  >
>  >  Scott,
>  >
>  >  What are you doing on your cf page?
>  >
>  >  Mark
>  >
>  >  On Fri, Feb 15, 2008 at 2:51 PM, Scott Thornton
>  >  <[EMAIL PROTECTED]> wrote:
>  >  >
>  >  >  Heya,
>  >  >
>  >  >  I am assisting someone else with a java\cf problem.
>  >  >
>  >  >  Where must a .jar file be located to be referenced correctly?
>  >  >
>  >  >  For example, within a jsp page the import looks like:
>  >  >
>  >  >  <[EMAIL PROTECTED] 
> import="com.crystaldecisions.reports.sdk.ReportClientDocument,
>  >  >                             com.crystaldecisions.sdk.occa.report.lib.*,
>  >  >                                 
> com.crystaldecisions.sdk.occa.report.data.*,
>  >  >                                 
> com.crystaldecisions.sdk.occa.report.lib.PropertyBag,
>  >  >                                 java.io.*,
>  >  >                                 com.crystaldecisions.reports.sdk.*"
>  >  >
>  >  >  %>
>  >  >
>  >  >
>  >  >  however, we get an error when running the page:
>  >  >
>  >  >  Error Occurred While Processing Request
>  >  >  Translator.CompilationFailedExceptionCompiler errors: Found 11 
> semantic errors compiling 
> "C:/CFusionMX/wwwroot/WEB-INF/jsp/jrun__jrc_display_connection_info__jrc_display_connection_info2ejsp3c.java":
>  5. import com.crystaldecisions.reports.sdk.ReportClientDocument; 
> <---------------------------------------------------> *** Error: 
> "com/crystaldecisions/reports/sdk/ReportClientDocument" is either a misplaced 
> package name or a non-existent entity. 7. 
> com.crystaldecisions.sdk.occa.report.lib.*; 
> <--------------------------------------> *** Error: Could not find package 
> "com/crystaldecisions/sdk/occa/report/lib" in: 
> C:\CFusionMX\wwwroot\WEB-INF\classes 
> C:\CFusionMX\wwwroot\WEB-INF\lib\CRDBXMLExternal.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\jsr173_1.0_api.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\xbean.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\pullparser.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\xercesImpl.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\xml-apis.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\commons-httpclient.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\commons-codec.jar 
> C:\CFusionMX\wwwroot\WEB-INF\lib\ebus405.jar C:\CFusionMX\wwwroot
>  >  >
>  >  >  etc etc etc.
>  >  >
>  >  >  I assume the error occurs because the .jar file is not in the correct 
> spot?
>  >  >
>  >  >  Can anyone advise?
>  >  >
>  >  >  ( PS, trying get to run Crystal reports to run via java\jsp calls)
>  >  >
>  >  >  Thanks heaps.
>  >  >
>  >  >
>  >  >
>  >  >
>  >  >
>  >  >  Scott Thornton, Programmer
>  >  >  Billing Unit
>  >  >  Hunter-New England Area Health Service
>  >  >  ext: 24505 p: +61 02 4941 4505 m: 0413 800 242
>  >  >
>  >  >
>  >  >
>  >  >  >
>  >  >
>  >
>  >
>  >
>  >  --
>  >
>  > E: [EMAIL PROTECTED]
>  >  W: www.compoundtheory.com
>  >
>  >
>  >
>  >
>  >
>  > >
>  >
>
>
>
>  --
>  E: [EMAIL PROTECTED]
>  W: www.compoundtheory.com
>
>  >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cfaussie?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to