Exemple 3 - Définition de paramètres avec des sous-rapports

L'exemple suivant est une page JSP qui démontre comment définir des paramètres avec des sous-rapports. Une fois les paramètres définis, le rapport s'affiche.

Remarque :    Pour chaque rapport utilisé avec ce tutoriel, vous devez avoir configuré la source de données JDBC de telle sorte que votre serveur d'applications y ait accès. Le rapport utilisé dans cet exemple n'est pas inclus dans les tutoriels.

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.france.businessobjects.com/
Support technique
http://www.businessobjects.com/services/support/