创建带参数的报表

首先,创建一个从 Crystal Reports 附带的示例 Microsoft Access 数据库中提取数据的报表。

Note注意

Xtreme.mdb 就是随 Crystal Reports 附带的这样一个示例数据库。若要在硬盘驱动器上查找适用于您的 Crystal Reports 版本的 xtreme.mdb,请参见 “Xtreme 示例数据库的位置”。您需要通过数据库的 ODBC DSN 条目连接该数据库。若要了解适用于您的 Crystal Reports 版本的 ODBC DSN 条目的名称,请参见 “Xtreme 示例数据库的 ODBC DSN 条目”

创建带参数的报表

  1. 在“解决方案资源管理器”中,右击粗体显示的项目名,指向“添加”,然后单击“添加新项”。

  2. 在“添加新项”对话框的“模板”视图中,选择“Crystal Report”模板。

  3. 在“名称”字段中,输入名称“CustomersByCity.rpt”并单击“添加”。

  4. 在“Crystal Reports 库”对话框的“创建新 Crystal Report 文档”面板中,选择“使用报表向导”。

  5. 在“选择专家”面板中,选择“标准”后,单击“确定”。

  6. 在“标准报表创建向导”窗口的“可用数据源”面板中,展开“创建新连接”文件夹。

  7. 从打开的子文件夹中,展开“ODBC (RDO)”文件夹。

  8. 在“ODBC (RDO)”窗口中,按 “Xtreme 示例数据库的 ODBC DSN 条目”的说明,选择与 Crystal Reports 版本对应的正确 ODBC DSN 条目,然后单击“完成”。

  9. 展开“表”节点,双击“客户”表,将该表移动到“选定的表”面板,然后单击“下一步”。

  10. 展开“客户”表,然后按住 CTRL 键的同时单击“客户名”、“联系人称谓”、“地址1”、“联系人姓”和“城市”。

  11. 单击“>”符号,将这些字段移至“要显示的字段”面板,然后单击“下一步”按钮。

  12. 在“可用字段”面板的“报表字段”下,双击“客户.城市”,将该字段移入“分组依据”面板,然后单击“完成”按钮。

CustomersByCity 报表即创建完毕,并加载到 Visual Studio 的主窗口中。

添加“城市”参数

现在即可添加名为“城市”的参数,并在其中填充默认值。

“字段资源管理器”必须可见,因为要用它来提供对报表各种功能(包括参数)的访问。要使“字段资源管理器”可见,从“Crystal Reports”菜单中,单击“字段资源管理器”。

  1. 如果“字段资源管理器”不可见,请在 Crystal Reports 工具栏上单击“切换字段视图”。
    Note提示

    显示“字段资源管理器”的另一种方法是转到“Crystal Reports”菜单,然后单击“字段资源管理器”。

  2. 在“字段资源管理器”中,右击“参数字段”,然后选择“新建...”。
  3. 在“创建参数字段”对话框中:
  4. 将“名称”设置为“城市”。
  5. 将“提示文本”设置为“选择一个或多个城市”。
  6. 将“值类型”设置为“字符串”。
  7. 选择“允许多个值”。
  8. 选择“离散值”。
  9. 单击“默认值...”。
  10. 在“设置默认值”对话框中:
  11. 将“浏览表”设置为“客户”。
  12. 将“浏览字段”设置为“城市”。
  13. 单击“>>”(右向双箭头)将整个城市列表移入“默认值”列表。
  14. 单击“确定”关闭“设置默认值”对话框。
  15. 单击“确定”关闭“创建参数字段”对话框。

将“城市”参数连接到“城市”数据库列

刚才已将“默认值”设置为包含一个较大的城市列表。在本教程后面的部分中,将通过 CrystalReportViewer 类的 ParameterFieldInfo 属性以编程方式访问这个相同默认值列表。

现在使用“选择专家”来设置公式,将数据库列“城市”连接到新创建的“城市”参数字段。

  1. 在 Crystal Reports 工具栏上,单击“选择专家”。
  2. 在“选择字段”对话框的“报表字段”下,选择“客户.城市”,然后单击“确定”。
  3. 在“Select Expert”对话框的“Customer.City”选项卡中,将下拉列表设置为“等于”。
  4. 在出现在右侧的新下拉列表中,选择该列表中的第一个选项“{?城市}”,然后单击“确定”。
    Note注意

    选择项 {?City} 就是此前创建的“城市”参数。

  5. 从“文件”菜单中选择“全部保存”。

现在即可将报表绑定到 CrystalReportViewer 控件,并为城市参数设置两个初始值:“Paris”和“Tokyo”。