範例三:使用子報表設定參數

以下範例是一個 JSP 頁面,示範如何使用子報表設定參數。在參數設定後,便會顯示報表。

注意:
   
您必須為本教學課程範例中使用的所有報表設定適當的 JDBC 資料來源,這樣應用程式伺服器才能存取這些報表。本範例所使用的報表不包含在教學課程中。

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);

}

%>






Business Objects
http://www.taiwan.businessobjects.com/
支援服務
http://www.businessobjects.com/services/support/