MySQL 连接器/ODBC 开发人员指南  / 第 6 章连接器/ODBC 示例  /  6.6 将连接器/ODBC 与水晶报表一起使用

6.6 将连接器/ODBC 与水晶报表一起使用

Crystal Reports 可以使用 ODBC DSN 连接到数据库,您可以从中提取数据和信息以用于报告目的。

笔记

某些版本的 Crystal Reports 存在一个已知问题,应用程序无法通过 ODBC 连接打开和浏览表格和字段。在将 Crystal Reports 与 MySQL 一起使用之前,请确保您已更新到最新版本,包括任何未完成的服务包和修补程序。有关此问题的更多信息,请参阅 Business) Objects 知识库以获取更多信息。

例如,要在 Crystal Reports XI 中创建一个简单的交叉表报表,请执行以下步骤:

  1. Data Sources (ODBC)使用该工具 创建 DSN 。您可以指定一个完整的数据库,包括用户名和密码,也可以构建一个基本的 DSN 并使用 Crystal Reports 设置用户名和密码。

    出于本示例的目的,已创建一个 DSN,它提供与 MySQL Sakila 示例数据库实例的连接。

  2. 打开 Crystal Reports 并创建一个新项目,或者打开一个现有的报告项目,您要向其中插入来自 MySQL 数据源的数据。

  3. 通过单击起始页上的选项启动交叉表报表向导。展开Create New Connection文件夹,然后展开ODBC (RDO)文件夹以获得 ODBC 数据源列表。

    系统将要求您选择数据源。

    图 6.24 交叉表报表创建向导

    内容在周围的文字中描述。

  4. 当您第一次展开ODBC (RDO) 文件夹时,您将看到数据源选择屏幕。从这里您可以选择预配置的 DSN、打开基于文件的 DSN 或输入​​和手动连接字符串。对于此示例,将使用预配置的 Sakila DSN。

    如果 DSN 包含用户名/密码组合,或者您想要使用不同的身份验证凭据,请单击 下一步以输入您想要使用的用户名和密码。否则,单击 完成以继续数据源选择向导。

    图 6.25 ODBC (RDO) 数据源选择向导

    三个选项包括显示可选择的预配置数据源名称列表的“选择数据源”、带有用于选择文件的选择框的“查找文件 DSN”以及用于手动输入连接字符串的“输入连接字符串”。

  5. 您将返回交叉表报表创建向导。您现在需要选择要包含在报告中的数据库和表。对于我们的示例,我们将展开选定的 Sakila 数据库。单击 city表格并使用 >按钮将表格添加到报告中。country然后用桌子重复这个动作 。或者,您可以选择多个表并将它们添加到报告中。

    最后,您可以选择父 Sakila资源并将表添加到报告中。

    选择要包括的表后,单击 下一步继续。

    图 6.26 带有示例 ODBC (RDO) 数据的交叉表报表创建向导

    内容在周围的文字中描述。

  6. Crystal Reports 现在将读取表定义并自动识别表之间的链接。表与表之间链接的识别使Crystal Reports能够根据您的查询自动查找和汇总基于数据库中所有表的信息。如果 Crystal Reports 无法自行执行链接,您可以手动创建所选表中字段之间的链接。

    单击“下一步”继续该过程。

    图 6.27 交叉表报表创建向导:表链接

    示例显示了两个名为“city”和“country”的链接表。 左窗格将两个表对象显示为带有列名称的框,并用一条线将表城市链接到国家/地区。 右窗格包括“自动排列”、按名称或键“自动链接”、“排序链接”、“清除链接”、“删除链接”、“链接选项”和“索引图例”的选项。

  7. 您现在可以选择要包含在交叉表报表中的列和行。拖放或使用 >按钮将字段添加到报告的每个区域。在所示示例中,我们将报告按国家/地区组织的城市,并包含每个国家/地区内的城市数量。如果要浏览数据,请选择一个字段并单击浏览数据...按钮。

    单击下一步创建结果图。由于我们没有根据该数据创建图表,因此单击Finish生成报告。

    图 6.28 交叉表报表创建向导:交叉表选择对话框

    内容在周围的文字中描述。

  8. 将显示完成的报告,下面显示了 Sakila 示例数据库的输出示例。

    图 6.29 交叉表报表创建向导:最终报表

    生成的最终报告示例包括三列,从左到右:Country、City 和 Total。 每个国家/地区都包含一个相关的总数,所有国家/地区的总数显示在最右侧列的顶部。

在 Crystal Reports 中打开 ODBC 连接后,您可以浏览并将可用表中的任何字段添加到您的报告中。