Example 3 - Set Parameters with Subreports

The following example is a JSP page that demonstrates how to set parameters with subreports. After the parameters have been set, the report is displayed.

Note:    For any report used with this tutorial sample, you must have the appropriate JDBC data source configured so that it can be accessed by your application server. The report used in this example is not included with the tutorials.

SetParametersWithSubreport.jsp

<%@ page import = "com.crystaldecisions.sdk.occa.report.data.*" %>

<%@ page import = "com.crystaldecisions.report.web.viewer.*" %>

<%@ page import = "com.crystaldecisions.sdk.occa.report.*" %>

<%@ page import = "java.util.*" %>

<%@ page import = "com.crystaldecisions.sdk.occa.report.lib.*" %>

<%@ page import = "com.crystaldecisions.reports.sdk.ReportClientDocument" %>

<%

try {

    Object reportSource = session.getAttribute("reportSource");

  

    if (reportSource == null)

    {

        ReportClientDocument oReportClientDocument = new ReportClientDocument();

        oReportClientDocument.open("/SetSubreportParam.rpt", 0);

        reportSource = oReportClientDocument.getReportSource();

        session.setAttribute("reportSource", reportSource);

    }

    Fields parameterFields = new Fields();

    ParameterField numberParamField = new ParameterField();

    

    

    numberParamField.setReportName("SubreportA");

    Values numberValues = new Values();

    ParameterFieldDiscreteValue numParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    

    ParameterField stringParamField = new ParameterField();

    stringParamField.setReportName("SubreportA");

    Values stringValues = new Values();

    ParameterFieldDiscreteValue stringParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    ParameterField booleanParamField = new ParameterField();

    booleanParamField.setReportName("SubreportA");

    Values booleanValues = new Values();

    ParameterFieldDiscreteValue booleanParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    ParameterField dateParamField = new ParameterField();

    dateParamField.setReportName("SubreportA");

    Values dateValues = new Values();

    ParameterFieldDiscreteValue dateParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    ParameterField dateTimeParamField = new ParameterField();

    dateTimeParamField.setReportName("SubreportA");

    Values dateTimeValues = new Values();

    ParameterFieldDiscreteValue dateTimeParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    ParameterField currencyParamField = new ParameterField();

    currencyParamField.setReportName("SubreportA");

    Values currencyValues = new Values();

    ParameterFieldDiscreteValue currencyParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    ParameterField timeParamField = new ParameterField();

    timeParamField.setReportName("SubreportA");

    Values timeValues = new Values();

    ParameterFieldDiscreteValue timeParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

    Integer numberValue = new Integer("72");

    numberParamField.setName("NumberParam");

    numParameterFieldDiscreteValue.setValue(numberValue);

    numberValues.add(numParameterFieldDiscreteValue);

    

    numberParamField.setCurrentValues(numberValues);

    parameterFields.add(numberParamField);

    String stringValue = "String parameter value.";

    stringParamField.setName("StringParam");

    stringParameterFieldDiscreteValue.setValue(stringValue);

    stringValues.add(stringParameterFieldDiscreteValue);

        

    stringParamField.setCurrentValues(stringValues);

    parameterFields.add(stringParamField);

    Boolean booleanValue = new Boolean("true");

    booleanParamField.setName("BooleanParam");

    booleanParameterFieldDiscreteValue.setValue(booleanValue);

    booleanValues.add(booleanParameterFieldDiscreteValue);    

        

    booleanParamField.setCurrentValues(booleanValues);

    

    parameterFields.add(booleanParamField);

    Calendar calendar = Calendar.getInstance();

    calendar.set(2004, 1, 17);

    Date dateParamVal = calendar.getTime();

    dateParamField.setName("DateParam");

    dateParameterFieldDiscreteValue.setValue(dateParamVal);

    dateValues.add(dateParameterFieldDiscreteValue);

    

    dateParamField.setCurrentValues(dateValues);

    parameterFields.add(dateParamField);

    Calendar calendar2 = Calendar.getInstance();

    calendar2.set(2002, 5, 12, 8, 23, 15);

    Date dateTimeParamVal = calendar2.getTime();

    dateTimeParamField.setName("DateTimeParam");

    dateTimeParameterFieldDiscreteValue.setValue(dateTimeParamVal);

    dateTimeValues.add(dateTimeParameterFieldDiscreteValue);

    dateTimeParamField.setCurrentValues(dateTimeValues);

    

    parameterFields.add(dateTimeParamField);

    

    Double currParamVal = new Double(555.99);

    currencyParamField.setName("CurrencyParam");

    currencyParameterFieldDiscreteValue.setValue(currParamVal);

    currencyValues.add(currencyParameterFieldDiscreteValue);

    currencyParamField.setCurrentValues(currencyValues);

    parameterFields.add(currencyParamField);

    Calendar calendar3 = Calendar.getInstance();

    calendar3.set(2002, 5, 12, 13, 44, 59);

    Date timeParamVal = calendar3.getTime();

    timeParamField.setName("TimeParam");

    timeParameterFieldDiscreteValue.setValue(timeParamVal);

    timeValues.add(timeParameterFieldDiscreteValue);

    timeParamField.setCurrentValues(timeValues);

    parameterFields.add(timeParamField);

    CrystalReportViewer oCrystalReportViewer = new CrystalReportViewer();

    oCrystalReportViewer.setReportSource(reportSource);

    oCrystalReportViewer.setOwnPage(true);

    oCrystalReportViewer.setOwnForm(true);

  

    //oCrystalReportViewer.setPrintMode(CrPrintMode.ACTIVEX);

    oCrystalReportViewer.setPrintMode(CrPrintMode.PDF);

    oCrystalReportViewer.setParameterFields(parameterFields);

    if (session.getAttribute("refreshed") == null)

    {

        oCrystalReportViewer.refresh();

        session.setAttribute("refreshed", "true");

    }

    oCrystalReportViewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);

}

catch(ReportSDKException sdkEx) {

    out.println(sdkEx);

}

%>

<%@ page import = "com.crystaldecisions.sdk.occa.report.data.*" %>

<%@ page import = "com.crystaldecisions.report.web.viewer.*" %>

<%@ page import = "com.crystaldecisions.sdk.occa.report.*" %>

<%@ page import = "com.crystaldecisions.sdk.occa.report.lib.*" %>

<%@ page import = "java.util.*" %>

<%@ page import = "com.crystaldecisions.reports.sdk.ReportClientDocument" %>

<%@ page import = "com.crystaldecisions.reports.sdk.*" %>

try {

    

    Object reportSource = session.getAttribute("reportSource");

  

    if (reportSource == null)

    {

        ReportClientDocument oReportClientDocument = new ReportClientDocument();

        oReportClientDocument.open("/MultipleValueParam.rpt", 0);

        reportSource = oReportClientDocument.getReportSource();

        session.setAttribute("reportSource", reportSource);

    }

    Fields parameterFields = new Fields();

    ParameterField oParameterField = new ParameterField();

    oParameterField.setReportName("");

    Values oValues = new Values();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue1 = new ParameterFieldDiscreteValue();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue2 = new ParameterFieldDiscreteValue();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue3 = new ParameterFieldDiscreteValue();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue4 = new ParameterFieldDiscreteValue();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue5 = new ParameterFieldDiscreteValue();

    ParameterFieldDiscreteValue oParameterFieldDiscreteValue6 = new ParameterFieldDiscreteValue();

    Integer CustomerID2 = new Integer("2");

    Integer CustomerID4 = new Integer("4");

    Integer CustomerID5 = new Integer("5");

    Integer CustomerID6 = new Integer("6");

    Integer CustomerID7 = new Integer("7");

    Integer CustomerID8 = new Integer("10");

    oParameterField.setName("MultipleValueNumberParameter");

    oParameterFieldDiscreteValue1.setValue(CustomerID2);

    oParameterFieldDiscreteValue2.setValue(CustomerID4);

    oParameterFieldDiscreteValue3.setValue(CustomerID5);

    oParameterFieldDiscreteValue4.setValue(CustomerID6);

    oParameterFieldDiscreteValue5.setValue(CustomerID7);

    oParameterFieldDiscreteValue6.setValue(CustomerID8);

    oValues.add(oParameterFieldDiscreteValue1);

    oValues.add(oParameterFieldDiscreteValue2);

    oValues.add(oParameterFieldDiscreteValue3);

    oValues.add(oParameterFieldDiscreteValue4);

    oValues.add(oParameterFieldDiscreteValue5);

    oValues.add(oParameterFieldDiscreteValue6);

    oParameterField.setCurrentValues(oValues);

    parameterFields.add(oParameterField);

    CrystalReportViewer oCrystalReportViewer = new CrystalReportViewer();

    oCrystalReportViewer.setReportSource(reportSource);

    oCrystalReportViewer.setOwnPage(true);

    oCrystalReportViewer.setOwnForm(true);

  

    //oCrystalReportViewer.setPrintMode(CrPrintMode.ACTIVEX);

    oCrystalReportViewer.setPrintMode(CrPrintMode.PDF);

    oCrystalReportViewer.setParameterFields(parameterFields);

    if (session.getAttribute("refreshed") == null)

    {

        oCrystalReportViewer.refresh();

        session.setAttribute("refreshed", "true");

    }

    oCrystalReportViewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);

}

catch(ReportSDKException sdkEx) {

    out.println(sdkEx);

}

%>



Business Objects
http://www.businessobjects.com/
Support services
http://www.businessobjects.com/services/support/