65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Report Builder 和 Oracle DB 创建报表 - 第 1 部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.62/5 (5投票s)

2014 年 12 月 28 日

CPOL

7分钟阅读

viewsIcon

58472

downloadIcon

349

在本系列文章(共两部分)中,我将分享如何使用 Report Builder 从 Oracle DB 获取数据来创建报表。根据要求,在获取数据之前,我们需要运行一个存储过程,该存储过程将根据给定的参数从表中获取数据,然后我们需要

引言

在本系列文章(共两部分)中,我将分享如何使用 Report Builder 从 Oracle DB 获取数据来创建报表。根据要求,在获取数据之前,我们需要运行一个存储过程,该存储过程将根据给定的参数从表中获取数据,然后我们需要在 Report Builder 中以正确的格式填充数据。

当有机会使用新工具时,我们会在简单的步骤中遇到困难,并花费更多时间来获得结果。因此,我认为分享一些使用 Oracle DB 的 Report Builder 的基本步骤。本文适合初学者 Report Builder 3.0,并尝试连接到 Oracle Database 11g 使用 Oracle SQL Developer

目录

为了使文章篇幅合理,本文分为两部分。在第一部分中,我们将从使用 SQL Developer 和安装 Oracle 客户端 11g 并进行设置开始。然后,我们将使用 SQL Developer 在 Oracle DB 中创建表和存储过程。最后,在这一部分中,我们将使用 Report Builder 创建一个显示 Oracle DB 数据的报表。

在第 2 部分中,我们将为报表提供参数,执行一些格式化任务,并了解可用的高级选项。

两篇文章的内容按以下大纲排列

第一部分

  • 演示概述
  • 使用 SQL Developer 测试连接
  • 设置 Oracle 客户端
  • 创建新表和存储过程
  • 创建报表

第二部分

  • 创建带参数的报表
  • 格式化报表
  • 使用代码进行格式化
  • 更多选项
  • 参考文献

演示概述

在此演示中,我们使用了 SQL Developer、Oracle 客户端 11g 和 Report Builder 3.0。完成演示应用程序的第 2 部分后,我们将能够看到如下屏幕截图所示的最终报表:(单击图像可获得更清晰、全尺寸的视图)

Final Report with Export Options

为什么使用存储过程:我们可以通过 Report Builder 中的 Select 查询本身来获取报表数据。我选择了存储过程,因为在企业应用程序中,根据传递给存储过程的各种参数来获取数据是一种更常见的场景。而且它比使用 select 查询更复杂。因此,我希望使用带参数的存储过程(在第 2 部分中演示)能够使此演示更有帮助。

使用 SQL Developer 测试连接

首先运行 SQL Developer,然后按照以下步骤连接到 Oracle DB 服务器

  1. 下载 Oracle SQL Developer 并运行。首先单击 Connections,然后选择 "New connection"。您将看到一个弹出窗口,需要在其中填写以下信息
    • 连接名称
    • 用户名
    • 密码
    • 主机名
    • 端口
    • SID(服务器名称)
    注意:您将在以下步骤中使用以上信息,因此请记下您在 "Select Database Connection" 窗口中填写的信息。

    Coonect to DB using SQL Developer
     

设置 Oracle 客户端

一旦您能够使用 SQL Developer 连接到 Oracle DB 服务器,就确认了服务器连接参数。
警告:为了通过 Report Builder 访问 Oracle DB,如果尚未安装,则需要为 Windows 安装 Oracle 客户端 11g。否则,您将收到一个大致表示 Report Builder 无法连接到 Oracle DB 的错误。

有以下先决步骤可以使 Report Builder 连接到 Oracle DB。

  • 安装 Oracle 客户端
  • 设置环境变量
  • 配置 tnsnames.oRA 文件

我们将采取以下步骤来设置 Oracle 客户端

  1. 您需要下载并安装 Oracle Client 软件,该软件可在 Oracle 网站上找到。您需要根据操作系统的详细信息选择合适的安装文件。
     
  2. 添加环境变量:现在您需要为 Oracle 添加环境变量。当您安装 Oracle 客户端 11g 时,它将在 C 或 D 驱动器中创建一个名为 "app" 的文件夹,具体取决于您的设置。在我的情况下,它在 D 驱动器中创建了该文件夹。
    现在查找 "sample" 文件夹路径,该路径在添加环境变量时需要。对于我的情况,sample 文件夹的路径是
    D:\app\userName\product\11.2.0\client_1\network\admin\sample
    转到系统属性,单击 "高级系统设置",您将看到如下所示的弹出窗口。

    Set Environment Variable

    单击 "环境变量" 按钮,您将看到另一个如下所示的弹出窗口。

    Create New Environment Variable

    现在单击 "新建" 按钮,您将看到下一个弹出窗口,填写以下信息:在第一个文本框中,变量名:TNS_ADMIN 在第二个文本框中,变量值:复制到 "sample" 文件夹的路径,如上所述,然后单击 "确定"。我们完成了环境变量设置。
     
  3. 配置 tnsnames.oRA 文件:tnsnames.oRA 是一个配置文件,其中包含用于连接到 Oracle DB 的数据库服务器地址。我们可以提供一个映射到数据库的别名。让我们通过提供别名来定义我们的数据库地址。

    转到此路径:D:\app\username\product\11.2.0\client_1\network\admin\sample。然后打开 "sample" 文件夹。在那里您会找到 tnsnames.oRA 文件,用记事本打开此文件,并使用如下屏幕截图所示的别名添加您的服务器相关详细信息。
    注意:HOST、PORT 和 SERVICE_NAME(服务器名称)必须与您在 SQL Developer 中连接 Oracle DB 时填写的信息相同。

    Set Environment Variable
     

创建新表和存储过程

现在,我们将使用 SQL Developer 创建一个我们将用于报表的表和存储过程。您可以下载随本文附带的 zip 文件,其中包含示例数据和代码片段。

  1. 创建具有以下字段的表,如以下屏幕截图所示,并在表中填充一些数据。

    Create Table
     
  2. 创建一个名为 SP_GETEMPLOYEES 的存储过程。在存储过程中,我们将使用 SYS_REFCURSOR 作为输出参数。代码如下
    
    CREATE OR REPLACE
    PROCEDURE SP_GETEMPLOYEES (e_recordset OUT SYS_REFCURSOR)IS
    BEGIN
        OPEN e_recordset FOR
        SELECT * FROM EMPLOYEE;
     END SP_GETEMPLOYEES;
    
    由于此存储过程只有一个简单的 select 查询来从 Employee 表中获取数据,如下所示。

    Create Stored Procedure
     
  3. 现在我们将执行 "SP_GETEMPLOYEES" 存储过程,以验证我们的存储过程是否正常工作。您可以看到执行存储过程的语法。执行 SP 的代码如下
    
    var c refcursor;
    execute SP_GETEMPLOYEES(:c);
    print c;
    
    如以下屏幕截图所示,我们执行了存储过程并能够看到数据。

    Execute Stored Procedure

创建报表

现在我们将在 Report Builder 中创建一个报表,并使用 "SP_GETEMPLOYEES" 存储过程来获取数据。为此,我们将按照以下步骤操作

  1. 打开 Report Builder,右键单击 DataSource,然后单击 "Add Data Source",为其指定适当的名称。单击 "Use a connection embedded in my report" 单选按钮,然后选择连接类型为 "Oracle"。以下是上述操作的屏幕截图

    Add DataSource in Report Builder
     
  2. 单击上面屏幕截图所示的 "Build" 按钮,输入服务器名称。这里的服务器名称将是您在 tnsnames.oRA 文件中提供的连接字符串的别名。我们的别名是 "reportest"。然后输入用户名和密码。单击 "Test Connection"。您将看到 "Test results" 弹出窗口,如下所示。
    注意:如果测试连接失败,请验证您在 tnsnames.oRA 文件中填写的信息是否正确,并且该文件中的括号已正确闭合。

    Test Connection
     
  3. 我们的连接成功了,接下来我们将创建数据集,为此,右键单击 Datasets,然后单击 Add Dataset。

    Add Data Source
     
  4. 从下拉列表中选择存储过程名称,或者您也可以键入存储过程名称,然后单击 OK。

    Select SP as Data Source
     
  5. 当您单击 OK 按钮后,您将能够在 Datasets 文件夹中看到已添加的数据集,如下所示。

    Add Data Source
     
  6. 现在我们将创建一个报表。在 Report Builder 功能区中的 Table 选项卡上,单击 Table Wizard,选择 "choose a dataset",然后单击 next。

    Choose Dataset
     
  7. 排列您想在报表中显示的字段。在这里,我们将选择所有字段。从 "Available fields" 区域选择字段并将其拖到 "Values" 区域,如以下屏幕截图所示。然后单击 Finish 按钮。

    Arrange Fields
     
  8. 单击选项卡中的 Run 按钮或按 F5 运行报表。报表将为您创建。

    Add Data Source

    到目前为止,我们已经能够创建一个简单的报表。在本文的下一部分中,我们将向 SP 添加参数并进行一些格式化工作。

结论

在本篇文章中,我们学习了如何使用 Report Builder 创建一个简单的报表,同时使用存储过程从 Oracle DB 获取数据。在 第 2 部分中,我们将向存储过程添加参数来过滤数据,在报表中进行一些格式化,并了解可用的高级选项。您的评论和建议非常欢迎。谢谢。

© . All rights reserved.