Print Page | Close Window

Open Crystal report with Procedures using JSP

Printed From: Crystal Reports Book
Category: Crystal Reports 9 through 2020
Forum Name: Technical Questions
Forum Discription: Formulas, charting data, Crystal syntax, etc.
URL: http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=21023
Printed Date: 29 Apr 2024 at 12:46am


Topic: Open Crystal report with Procedures using JSP
Posted By: KaviVinu
Subject: Open Crystal report with Procedures using JSP
Date Posted: 09 Sep 2014 at 9:47pm
Hi,

I am trying to Export simple crystal report to PDF using JSP, This is working perfectly fine. But when I use same piece of code to export complex report which contain more than 2 stored procedures following error is thrown.
(The complex report is working fine in Crystal report 2008/2013 designed tool)

Error:
HTTP Status 500 - javax.servlet.ServletException: com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Failed to bind columns.---- Error code:-2147467259 Error code name:failed


The JSP Code I am using is as follows:
<%
String reportPath;
Object reportSource;
ReportClientDocument reportClientDocument;
ByteArrayInputStream byteArrayInputStream;
byte[] byteArray;
int bytesRead;

reportPath = request.getParameter("_reportName");

/*
* Instantiate ReportClientDocument and specify the Java Print Engine as the report processor.
* Open a rpt file and export to PDF. Stream PDF back to web browser.
*/

reportClientDocument = new ReportClientDocument();

reportClientDocument.setReportAppServer(ReportClientDocument.inprocConnectionString);

reportClientDocument.open(reportPath, OpenReportOptions._openAsReadOnly);

Fields<IParameterField> parameterFields = reportClientDocument.getDataDefController().getDataDefinition().getParameterFields();
if (parameterFields.size() > 0) {
     ParameterFieldController paramController = reportClientDocument.getDataDefController().getParameterFieldController();
     for (int i = 0; i < parameterFields.size(); i++) {

          String paramName = parameterFields.getField(i).getName().trim();
          out.println("                    -          "+paramName);
          System.out.println(request.getParameter(paramName));
          if(request.getParameter(paramName) != null) {
               System.out.println(paramName);
               paramController.setCurrentValue("", paramName, request.getParameter(paramName));
               System.out.println(paramName);
          }else {
               paramController.setCurrentValue("", paramName, "");
               
          }
     }
}

reportSource = reportClientDocument.getReportSource();
session.setAttribute("ReportSource", reportSource);

byteArrayInputStream = (ByteArrayInputStream) reportClientDocument
        .getPrintOutputController().export(ReportExportFormat.PDF);

response.reset();

response.setHeader("Content-disposition", "inline;filename=crreport.pdf");
response.setContentType("application/pdf");

byteArray = new byte[1024];
while((bytesRead = byteArrayInputStream.read(byteArray)) != -1) {
     response.getOutputStream().write(byteArray, 0, bytesRead);     
}

response.getOutputStream().flush();
response.getOutputStream().close();

reportClientDocument.close();

%>


Can anyone help me out on solving this problem?



Print Page | Close Window