• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1136
  • Last Modified:

How to pass more than one parameter to crystal reports from Java?

I have a JSP that can call a crystal report. This report requires one parameter. See the attached code snippet. Currently this code works fine and can display the report properly. But now I have modified the report to take in 2 parameters. So now I've added the following code after "numberParamField.setCurrentValues(numberValues);"

// logonUserId
String logonUserId = "5"
Integer numberValue2 = new Integer(logonUserId);
ParameterFieldDiscreteValue numParameterFieldDiscreteValue2 = new ParameterFieldDiscreteValue();
numParameterFieldDiscreteValue2.setValue(numberValue2);
Values numberValues2 = new Values();
numberValues2.add(numParameterFieldDiscreteValue2);
ParameterField numberParamField2 = new ParameterField();
numberParamField2.setName("logonUserId");
numberParamField2.setCurrentValues(numberValues2);

And after "parameterFields.add(numberParamField);" I added:

parameterFields.add(numberParamField2);

When I ran the JSP I get a "Some parameters are missing values" error message. How do I pass more than one parameter to the crystal report from Java?

Java Reporting Component API Reference:
http://devlibrary.businessobjects.com/BusinessObjectsXI/en/en/JRC_SDK/jrc_java_api_doc/doc/jrcsdk_java_apiRef/index.html
<%@ 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" %>
<%
//String report = request.getParameter("reportName") + ".rpt";
String report = "web/pages/report/CrystalReport1.rpt";
String matchId = request.getParameter("matchId");
IReportSourceFactory2 rptSrcFactory = new JPEReportSourceFactory();
IReportSource reportSource = (IReportSource)
rptSrcFactory.createReportSource(report, request.getLocale());
ConnectionInfos connInfos = new ConnectionInfos();
IConnectionInfo connInfo1 = new ConnectionInfo();
connInfo1.setUserName("sa");
connInfo1.setPassword("12qwaszx");
connInfos.add(connInfo1);
CrystalReportViewer viewer = new CrystalReportViewer();
viewer.refresh();
viewer.setReportSource(reportSource);
 
// matchId 
Integer numberValue = new Integer(matchId);
ParameterFieldDiscreteValue numParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();
numParameterFieldDiscreteValue.setValue(numberValue);
Values numberValues = new Values();
numberValues.add(numParameterFieldDiscreteValue);
ParameterField numberParamField = new ParameterField();
numberParamField.setName("matchId");
numberParamField.setCurrentValues(numberValues);
 
Fields parameterFields = new Fields();
parameterFields.add(numberParamField);
viewer.setEnableParameterPrompt(false);
viewer.setParameterFields(parameterFields);
viewer.setDatabaseLogonInfos(connInfos);
viewer.setEnableLogonPrompt(false);
viewer.processHttpRequest(request, response,
getServletConfig().getServletContext(), out);
viewer.dispose();
%>

Open in new window

0
killdurst
Asked:
killdurst
1 Solution
 
mlmccCommented:
Here are some sample programs to call reports.
There is one that shows how to pass several parameters

https://smpdl.sap-ag.de/~sapidp/012002523100006008962008E/crxi_jrc_jsp_smpl.zip

mlmcc
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now