附錄:離散參數程式碼的增強功能
現在,您已順利使用離散參數值建立了報表,以及可接受通用格式 (ArrayList) 中任何值集合的 Helper 方法,並且也將這些值套用到以特定參數欄位名稱 (PARAMETER_FIELD_NAME 常數) 為基礎的報表。
如果您已安裝 Visual Studio 2005 (含) 更新版本或 Crystal Reports Developer,便可存取增強的 API 在 Crystal 報表中設定離散參數。Crystal Reports Developer API 有助於將設定離散參數所需的程式碼縮減至最少。
在之前的程序中,您已學會了如何建立 SetCurrentValuesForParameterField() Helper 方法。
在本教學課程中,您可以刪除 Helper 方法,並改呼叫 ReportDocument 類別的 SetParameterValue() 方法。
SetParameterValue() 方法多載了下列幾個方法:
- SetParameterValue(int index, object value)
- SetParameterValue(string parameterFieldName, object value)
- SetParameterValue(string parameterFieldName, object value, string subreport)
當值達到參數欄位的預設值時,即可傳入任何類型的物件。物件可以是儲存著參數值清單的 Array 執行個體。
必要條件:
您必須依照「教學課程:讀取與設定離散參數」中的指示建立專案。
但是,在「手動設定程式碼中的參數」中,您只需要建立 PARAMETER_FIELD_NAME 常數。您不需建立 SetCurrentValuesForParameterField() Help 方法。
如果您已依照「教學課程:讀取與設定離散參數」的指示建立專案,請刪除 SetCurrentValuesForParameterField() Helper 方法和在 ConfigureCrystalReports() 方法中的呼叫。
若要使用離散參數的 SetParameterValue() 方法
開啟本教學課程中完成的專案。
開啟 Web 或 Windows Form。
從 [檢視] 功能表,按一下 [程式碼]。
在 ConfigureCrystalReports() 方法中,於繫結報表到 CrystalReportViewer 控制項之 ReportSource 屬性的程式行上方,呼叫 CustomerByCity 類別提供的 SetParameterValue() 方法。將參數欄位名稱和 Array 執行個體中的參數值傳遞給方法。
customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray())
customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray());
您現在已經可以建置和執行專案,以讀取與設定離散參數。