範例二:使用登入設定參數

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

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

SetParametersWithLogon.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("/SetParamAndLogon.rpt", 0);

reportSource = oReportClientDocument.getReportSource();

session.setAttribute("reportSource", reportSource);

}

Fields parameterFields = new Fields();

ParameterField numberParamField = new ParameterField();

numberParamField.setReportName("");

Values numberValues = new Values();

ParameterFieldDiscreteValue numParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField stringParamField = new ParameterField();

stringParamField.setReportName("");

Values stringValues = new Values();

ParameterFieldDiscreteValue stringParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField booleanParamField = new ParameterField();

booleanParamField.setReportName("");

Values booleanValues = new Values();

ParameterFieldDiscreteValue booleanParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField dateParamField = new ParameterField();

dateParamField.setReportName("");

Values dateValues = new Values();

ParameterFieldDiscreteValue dateParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField dateTimeParamField = new ParameterField();

dateTimeParamField.setReportName("");

Values dateTimeValues = new Values();

ParameterFieldDiscreteValue dateTimeParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField currencyParamField = new ParameterField();

currencyParamField.setReportName("");

Values currencyValues = new Values();

ParameterFieldDiscreteValue currencyParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterField timeParamField = new ParameterField();

timeParamField.setReportName("");

Values timeValues = new Values();

ParameterFieldDiscreteValue timeParameterFieldDiscreteValue = new ParameterFieldDiscreteValue();

ParameterFieldDiscreteValue

Integer numberValue = new Integer("5");

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

ConnectionInfos connInfos = new ConnectionInfos();

IConnectionInfo connInfo1 = new ConnectionInfo();

connInfo1.setUserName("devtech");

connInfo1.setPassword("devtech");

connInfos.add(connInfo1);

CrystalReportViewer oCrystalReportViewer = new CrystalReportViewer();

oCrystalReportViewer.setReportSource(reportSource);

oCrystalReportViewer.setOwnPage(true);

oCrystalReportViewer.setOwnForm(true);

  

//oCrystalReportViewer.setPrintMode(CrPrintMode.ACTIVEX);

oCrystalReportViewer.setPrintMode(CrPrintMode.PDF);

oCrystalReportViewer.setParameterFields(parameterFields);

oCrystalReportViewer.setDatabaseLogonInfos(connInfos);

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/