附录:对离散参数代码的增强

现已成功创建了一个带有离散参数值的报表,同时还创建了一个帮助器方法,该方法可以接受采用公用格式的任意一组值(一个 ArrayList),并根据特定参数字段名(PARAMETER_FIELD_NAME 常量)将这些值应用到报表中。

如果安装了 Visual Studio 2005 或更高版本或 Crystal Reports 开发人员版,则可以访问在 Crystal 报表中设置离散参数的增强 API。Crystal Reports 开发人员版 API 有助于最大程度减少设置离散参数所需的代码量。

在先前的过程中,已学习了如何创建 SetCurrentValuesForParameterField() 帮助器方法。

在本教程中,可以删除该帮助器方法,改为调用 ReportDocument 类的 SetParameterValue() 方法。

SetParameterValue() 方法在以下重载方法中使用:

  • SetParameterValue(int index, object value)
  • SetParameterValue(string parameterFieldName, object value)
  • SetParameterValue(string parameterFieldName, object value, string subreport)

可以传递任何类型的对象,只要值满足参数字段默认值的要求。对象可以是存储参数值列表的 Array 实例。

前提条件:

对离散参数使用 SetParameterValue() 方法

  1. 打开在本教程中所完成的项目。

  2. 打开 Web 或 Windows 窗体。

  3. 从“视图”菜单中,单击“代码”。

  4. 在 ConfigureCrystalReports() 方法中,在将报表绑定到 CrystalReportViewer 控件的 ReportSource 属性的代码行之前,从 CustomerByCity 类调用 SetParameterValue() 方法。将参数字段名称和 Array 实例中的参数值传递给该方法。

    customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray())
    
    customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray());
    

现在即可生成并运行项目,以读取和设置离散参数。