Crystal Reports 可以使用 ODBC DSN 连接到数据库,您可以从中提取数据和信息用于报告目的。
某些版本的 Crystal Reports 存在一个已知问题,即应用程序无法通过 ODBC 连接打开和浏览表和字段。在将 Crystal Reports 与 MySQL 结合使用之前,请确保您已更新到最新版本,包括所有未完成的服务包和修补程序。有关此问题的更多信息,请参阅 Business) Objects 知识库。
例如,要在 Crystal Reports XI 中创建一个简单的交叉表报表,请按照以下步骤操作
-
使用
数据源 (ODBC)
工具创建一个 DSN。您可以指定一个完整的数据库,包括用户名和密码,也可以构建一个基本的 DSN 并使用 Crystal Reports 设置用户名和密码。在本例中,我们创建了一个 DSN,用于提供到 MySQL Sakila 示例数据库实例的连接。
打开 Crystal Reports 并创建一个新项目,或打开一个现有的报表项目,您希望将 MySQL 数据源中的数据插入到该项目中。
-
启动交叉表报表向导,可以通过单击“开始”页面上的选项来启动。展开 创建新连接 文件夹,然后展开 ODBC (RDO) 文件夹以获取 ODBC 数据源列表。
系统将要求您选择一个数据源。
-
首次展开 ODBC (RDO) 文件夹时,将显示“数据源选择”屏幕。您可以在此处选择预先配置的 DSN,打开基于文件的 DSN 或输入手动连接字符串。在本例中,我们将使用预先配置的 Sakila DSN。
如果 DSN 包含用户名/密码组合,或者您想使用不同的身份验证凭据,请单击
输入您要使用的用户名和密码。否则,请单击 继续数据源选择向导。
-
您将返回到交叉表报表创建向导。您现在需要选择要包含在报表中的数据库和表。在本例中,我们将展开选定的 Sakila 数据库。单击
city
表并使用 按钮将该表添加到报表中。然后对country
表重复此操作。或者,您可以选择多个表并将它们添加到报表中。最后,您可以选择父级 Sakila 资源并将所有表添加到报表中。
选择要包含的表后,单击
继续。
-
Crystal Reports 现在将读取表定义并自动识别表之间的链接。表间链接的识别使 Crystal Reports 能够根据您的查询自动查找和汇总数据库中所有表的信息。如果 Crystal Reports 无法自行执行链接,您可以手动创建所选表中字段之间的链接。
单击
继续此过程。
-
您现在可以选择要包含在交叉表报表中的列和行。拖放或使用
按钮将字段添加到报表的每个区域。在所示的示例中,我们将按国家/地区报告城市,并统计每个国家/地区的城市数量。如果要浏览数据,请选择一个字段并单击 按钮。单击
创建结果图。由于我们不从此数据创建图表,因此请单击 生成报表。
-
最终报表将显示出来,下面显示了 Sakila 示例数据库的输出示例。
在 Crystal Reports 中打开 ODBC 连接后,您可以浏览可用表中的任何字段并将其添加到报表中。