结合使用交互式报表区域和 Oracle Application Express 3.1

本教程将向您介绍如何使用通过 Oracle Application Express 3.1 创建的交互式报表。

大约 30 分钟

主题

本教程包括下列主题:

将光标置于此图标上以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

概述

交互式报表允许开发人员定义可由最终用户高度定制的查询。用户可以通过选择他们感兴趣的列、应用筛选器、高亮显示以及排序来定制数据的布局。他们还可以定义分组、聚合、计算结果列,以及包括一个查询结果图表。用户可以创建报表的多种变形,并将它们存储为命名的报表,输出到以逗号分隔的文件以及打印成 PDF 文档。

可以通过以下三种方式来定制交互式报表:

搜索栏

Actions 菜单
列标题菜单

返回主题列表

开始本教程之前,您应该:

1.

安装 Oracle 数据库 9.2 或更高版本。

2.

下载并配置 Oracle Application Express 3.1,并且可以访问 Oracle Application Express 3.1 Sample Application。

返回主题列表

交互式报表区域中的搜索栏包含以下内容:

Search Columns 图标 — 识别要搜索的列(或所有列)。

文本区域 (Text Area) — 允许您输入不区分大小写的搜索条件(无需通配符)。
Rows 下拉列表 — 允许您选择每页显示的记录数。
Go 按钮 — 执行搜索。
Actions 菜单 — 显示您可以在交互式报表上执行的任务。在后面的主题中会进行讨论。

要了解搜索栏的工作原理,执行以下步骤:

1.

运行 Oracle Application Express 3.1 中的 Sample Application。您可以从系统管理员处获取 Application Express URL。注:以 demo 用户身份登录,口令为该应用程序所在工作区的名称全小写形式。(提示:工作区名称显示在应用程序主页的左下角)。

2.

在文本区域中输入 jan,然后单击 Go。注:安装 Sample Application 后会更新日期,以确保定单是最新的。因此,您报表中的数据可能略有不同。查看数据,并输入当前为 Albert Lambert 指定的月份的前 3 个字母。例如,如果 Albert Lambert 的月份当前为六月,则在文本区域中输入 jun 并单击 Go。

3.

搜索不区分大小写,因此在 Order Month 中会发现“January 2008”。注意,筛选器在下面显示,单词不再位于文本区域中,从而允许您创建多个筛选器。

4.

创建另一个筛选器。在文本区域中输入 Logan,然后单击 Go

5.

注意,列表仅显示同时符合两个筛选条件的行。

6.

您可以单击要删除的筛选器旁边的红色 X 进行删除。单击第一个筛选器旁边的红色 X。

7.

单击红色 X 删除另一个筛选器。

8.

您还可以使用 Search Columns 图标仅为一列创建筛选器。单击 Search Columns 图标 ,然后选择 Customer Name

9.

在文本区域中输入 jan,然后单击 Go

10.

这次没有显示任何匹配项,因为该筛选器仅应用于 Customer Name 列。单击 jan 筛选器旁边的红色 X 删除它。

11.

您可以更改交互式报表中显示的行数。单击 Sample Application 中的 Products 选项卡。

12.

将显示另一个交互式报表。注意,只显示了 5 行。从 Rows 下拉列表中选择 10

13.

单击 Go

14.

您现在会在报表中看到更多行。

返回主题列表

您可以通过执行以下步骤在您的交互式报表区域中查看某条记录:

1.

单击 Home 选项卡切换回前一个交换式报表。

2.

选择报表中任一行左侧的视图图标

注:您的报表中可能没有记录视图图标。如果是这样,可能提供其他图标(由开发人员决定),但始终显示在第一列。

3.

将显示该记录的单记录视图。注意,这可能将您带到一个定制页面,这取决于应用程序。您可以使用箭头按钮浏览记录。单击 > 按钮滚动到下一条记录。

4.

显示下一条记录。Exclude Null Values 复选框对该页面没有任何影响,因为所有列都填充了值。如果其中一列为空,当您选中该复选框时将隐藏该列。

5.

该页面是一个仅供查看的表单。该表单中显示的列可能比交互式报表显示的列多。Displayed Columns 复选框将该表单精简为仅显示交互式报表上显示的列。单击 Displayed Columns 复选框。

6.

要返回到交互式报表,单击 Report View 按钮。

返回主题列表

Actions 菜单包含的许多任务在您操作交互式报表时很有帮助。该示例报表中将介绍 Actions 菜单中的所有交互式报表功能。对于您在您的环境中的其他应用程序中使用的报表,开发人员可以限制可用的功能。另外,用于调用 Actions 菜单的图标不一定是齿轮(这是默认设置)。开发人员可以使用其他图标或者将其完全隐藏。执行以下任务:

选择列

添加筛选器
对列进行排序
创建控制分组
根据筛选器高亮显示行
添加计算结果列
聚合列
创建图表
执行闪回查询
保存报表
重置默认值
以不同格式下载数据

返回主题列表

选择列

该操作用于修改显示的列。显示右侧的列。隐藏左侧的列。您可以使用最右边的箭头对显示的列进行重新排序。计算结果列的前缀为 **。执行以下步骤:

1.

再次单击 Products 选项卡,返回 Products 交互式报表页面。

2.

单击 Actions 菜单图标 ,然后选择 Select Columns

3.

要在报表显示时隐藏一些列,选择某一列,然后单击 < 将其移至 Do Not Display 区域。

4.

要对列进行重新排序,选择一列,然后单击向上或向下箭头。

5.

单击 Apply 查看报表的变化。

6.

您进行的更改已应用。

返回主题

添加筛选器

该操作用于添加或修改查询的 where 子句。 首先选择一列(不一定是显示的列),从标准 Oracle 运算符列表(=、!=、not in、between)中选择一个运算符,然后输入一个用于进行比较的表达式。表达式区分大小写,您可以将 % 用作通配符(例如,STATE_NAME like A%)。 执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Filter

2.

您希望创建一个 Category = Video 筛选器。从 Column 下拉列表中选择 Category

3.

从表达式列表中选择 Video。注意,该值列表根据 Category 列中的所有值自动确定。表达式列表最多可以显示 500 个唯一的值。

4.

单击 Apply 创建筛选器。

5.

筛选器已应用。您可以对一个报表使用多个筛选器。如果您决定要禁用某个筛选器,可以单击复选框禁用它。

6.

您可以添加另一个筛选器。单击 Actions 菜单图标 ,然后选择 Filter

7.

从 Columns 列表中选择 Price

8.

对于 Operator,选择 >

9.

在 Expression 中输入 100,然后单击 Apply

9.

注意,现在应用了 2 个筛选器。现在显示的行数减少了,这是因为仅显示符合筛选条件的行。

10.

您可以单击要删除的筛选器旁边的红色 X 进行删除。单击 Price > 100 和 Category=Video 筛选器旁边的红色 X。

11.

这两个筛选器已删除。

返回主题

对列进行排序

该操作用于更改根据其进行排序的列,以及是升序还是降序排序。您还可以指定如何处理空值(使用默认设置,始终将其显示为第一个或最后一个)。产生的排序结果显示在报表中列标题右侧。执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Sort

2.

您希望按价格对报表进行升序排序。从 Column 下拉列表中选择 Price

注:Null sorting 字段表明空值针对正在排序的列在报表中显示的位置。如果设置为默认值,空值将默认为针对该排序条目在 Direction 字段中设置的值。您还可以强制空值始终显示为第一个或最后一个。

3.

单击 Apply 对报表进行排序。

4.

注意,报表现在按 Price 进行排序。排序指示器位于排序列的旁边。箭头指明是按升序还是降序排序。

要更改为降序排序,您可以单击 Price 标题中的升序排序图标,该列将更改为降序排序。在后面的主题中会进行讨论和演示。

返回主题

创建控制分组

该操作用于 在一列或多列上创建一个分组。这会将这些列拖出交互式报表,将它们显示为一条主记录。 执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Control Break

2.

您希望在 Category 上创建一个控制分组。从 Column 下拉列表中选择 Category

3.

单击 Apply 创建控制分组。

4.

注意,创建了控制分组并将 Category 列从报表中提取出来。在本例中,报表现在显示一个按类别分类的产品列表。

返回主题

根据筛选器高亮显示行

该操作用于根据某个筛选器高亮显示特定的行或单元格。 符合该筛选器的行或单元格使用与该筛选器相关联的特性高亮显示。执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Highlight

2.

在 Name 中输入 Only One Customer,为 Highlight Type 选择 Cell。注意,如果某行符合针对筛选器设置的条件,您还可以高亮显示整行。

3.

为 Background Color 选择 [yellow],为 Text Color 选择颜色图标。

4.

从调色板中选择一种颜色。

5.

您希望当值设置为 1 时高亮显示 Customers 单元格。从 Column 下拉列表中选择 Customers。然后在 Expression 中输入 1 并单击 Apply

6.

筛选器已应用,现在高亮显示符合条件的单元格。

返回主题

添加计算结果列

该操作用于向报表中添加计算结果列。这些可以是应用于现有列的数学计算(例如,NBR_HOURS/24)或标准的 Oracle 函数(某些已经显示,其他的也可以使用,例如 TO_DATE)。执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Compute

2.

您希望创建一个进行 Price * 1.05 计算的计算列。在 Column Heading 中输入 Price With Tax,单击 Format Mask 的向下箭头并选择 $5,234.10

3.

将光标放在 Computation 字段中,然后在 Columns 列表中单击 Price

4.

Computations 区域中将出现一个 F。出现 F 是因为对列使用了列别名,别名显示在左侧的表中。单击 Keypad 中的 *

5.

Computations 区域中 F 后面将出现一个 *。在 * 后面输入 1.05,现在计算显示为 F*1.05。然后单击 Apply

6.

现在,新的计算结果列显示在报表中。

返回主题

聚合列

该操作用于聚合报表中的列。 聚合是针对某列执行的数学计算。聚合显示在每个控制分组后面,在报表末尾定义它们的列中。 执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Aggregate

2.

您希望添加一个是 Price 总和的聚合。从 Functions 列表中选择 Sum

3.

从 Columns 列表中选择 Price。注:聚合中只能使用基本列,不能使用计算得出的列。

4.

单击 Apply

5.

现在,聚合显示在报表中。注意,显示每个控制分组的 Price 总和。

返回主题

创建图表

该操作用于根据报表中包含的数据创建一个图表。您可以针对每个交互式报表包括一个图表。定义完之后,您可以使用搜索栏下面的链接在图表和报表视图之间切换。 执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Chart

2.

您希望创建一个饼形图,显示每个类别有多少产品。选择 Pie 图表类型。

3.

为 Label 选择 Category

4.

为 Function 选择 Count。注:由于您是要进行计数,因此在本例中不用为 Value 选择某列。对于其他函数,您将选择一个 Value 列。

5.

对于饼形图,您可以选择一个排序顺序,可以按照标签降序排序,也可以根据饼形图内的类别进行排序。对于函数,您无需选择排序值。单击 Apply

6.

显示饼形图。您可以编辑该图表或者切换回报表。单击 View Report

返回主题

执行闪回查询

该操作用于 查看数据在前一个时间点的状态。您可以闪回的默认时间为 3 小时(即 180 分钟),但实际上每个数据库的时间都不同。 执行以下步骤:

1.

要显示一个闪回查询,您首先需要更改数据库。单击 Create Product

2.

在 Product Name 中输入 iPOD,在 Description 中输入 4GB Memory,从 Category 列表中选择 Audio,确保在 Available 中输入了 Y,在 Price 中输入了 250。然后单击 Create

3.

现在,iPOD 产品显示在报表中。

4.

单击 Actions 菜单图标 ,然后选择 Flashback

5.

您希望显示 5 分钟之前的数据。在字段中输入 5,然后单击 Apply

6.

应用了闪回,由于 iPOD 是在不到 5 分钟前创建的,因此您不会在列表中看到它。

返回主题

保存报表

该操作用于 保存定制报表以供将来使用。您提供一个名称和一个可选的描述。 在一个应用程序的页面之间导航然后返回到 Products 选项卡后,您的更改(筛选器、控制分组等)仍然可用。然而,如果您注销时未保存报表,您的更改将不会保存。您可以保存一个报表的多个版本,每个版本将显示为一个单独的选项卡。执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Save Report

2.

为报表输入一个名称,然后单击 Apply

3.

创建了一个具有报表名称的选项卡,保存了详细信息(筛选器、控制分组、排序等)。您还可以查看正在运行的报表。单击 Working Report

4.

现在显示正在运行的报表。您可以对该报表进行任何更改,这些更改不会反映到保存的报表中。

返回主题

重置默认值

该操作用于 将报表重置为默认设置,删除您进行的所有定制。 执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Reset

2.

单击 Apply 确认您希望进行重置。

3.

所有筛选器、控制分组等都已消失,报表已重置。注意,您仍然具有一个针对保存的报表的选项卡。单击保存的报表的选项卡。

4.

保存的报表的更改仍然保持原样。

返回主题

以不同格式下载数据

该操作用于下载当前结果集。下载格式随您的安装和报表定义而有所不同,但可能包括 CSV、XLS、PDF 或 RTF。执行以下步骤:

1.

单击 Actions 菜单图标 ,然后选择 Download

2.

选择下载格式(本例中为 CSV)。

3.

创建了一个包含所有数据的 CSV 文件。

返回主题

单击任一列标题将显示一个列标题菜单。列标题菜单中的某些功能还可以使用 Actions 菜单实现。列标题菜单包含以下功能:

对列进行排序

隐藏列
在列上创建控制分组
显示列信息
创建筛选器

返回主题列表

对列进行排序

您可以通过列标题对某列进行排序。执行以下步骤:

1.

选择 Working Report 选项卡。

2.

选择 Category 标题并选择升序排序图标

3.

注意,升序排序图标现在位于 Category 标题旁边,表明目前报表根据该列排序。注意,降序排序图标 的工作方式与升序排序图标相同。

返回主题

隐藏列

您可以通过列标题隐藏某一列。执行以下步骤:

1.

选择 Sales 标题并选择 Hide Column 图标

2.

注意,Sales 列不再出现在报表中。注:要重新显示该列,使用 Actions 菜单中的 Select Columns 选项。

返回主题

在列上创建控制分组

您可以通过列标题对特定列进行分组。创建控制分组后,该列将成为报表的主记录。执行以下步骤:

1.

选择 Category 标题并选择 Control Break 图标

2.

现在报表在 Category 列上具有一个控制分组。

返回主题

显示列信息

您可以通过列标题显示有关特定列的列信息。仅当针对该列定义了帮助文本时,才显示 Column Information 图标。这是由创建报表的开发人员定义的。执行以下步骤:

1.

选择 Name 标题并选择 Column Information 图标

2.

显示列信息。

返回主题

创建筛选器

列标题上的文本区域用于输入不区分大小写的搜索条件(无需通配符)。输入一个值可以缩小菜单底部的值列表。您可以从底部选择一个值,所选的值将使用“=”(例如,column = 'ABC')创建一个筛选器。执行以下步骤:

1.

选择 Name 标题,在文本区域中输入单词 player。注意,值列表随您的输入而更改。选择您要为之创建筛选器的值。

2.

注意,创建了筛选器。

返回主题

在本教程中,您学习了如何:

查看报表中的记录
搜索报表中的信息
使用 Actions 菜单操作交互式报表
使用列标题操作交互式报表

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。