使用交互式报表区域的高级技巧

 

<不要删除此文本,因为它是在浏览器中运行时生成的“主要”标题列表的占位符>

目的

本教程将向您介绍在 Oracle Application Express 中使用交互式报表区域的一些高级技巧。

所需时间

大约 30 分钟

概述

在本教程中,您将了解与 Oracle Application Express 中交互式报表区域有关的一些更高级的任务。

注:应用程序编号和页面编号可能与屏幕截图略有不同。

前提条件

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

手动重置交互式报表

作为一名开发人员,您能够包括或排除重置功能、Actions 菜单甚至整个 Search Bar。如果 Actions 菜单中没有重置功能,您的最终用户在使用 Column Heading 菜单自定义报表后将不能对其进行重置。为了进行重置,您可以通过编程方法提供一个重置按钮。

在这一主题中,您首选要创建一个交互式报表、然后排除 Search Bar,最后创建一个重置按钮。执行以下步骤:

.

在 Application 页面中,单击 Create Page

 

.

选择 Report 单选按钮,然后单击 Next

 

.

选择 Interactive Report 单选按钮,然后单击 Next

 

.

输入 Department List 作为 Page Name 和 Region Name。对 Breadcrumb 选择 Breadcrumb,然后单击 Next

 

.

接受默认选项,然后单击 Next

 

.

输入以下 SQL,然后单击 Next

select d.department_name,
 (select count(*) from oehr_employees where department_id = d.department_id) Employees,
 d.department_id 
from oehr_departments d 

.

单击 Finish

 

.

已成功创建交互式报表页面。在运行页面之前,您需要进行一些更改。单击 Edit Page

 

.

在 Regions 下,选择 Interactive Report 链接。

 

.

单击 Search Bar 选项卡。

 

.

针对 Include Search Bar 选择 No,然后单击 Apply Changes

 

.

您现在可以创建一个按钮以执行重置功能。在 Buttons 下,单击 Create 图标。

 

.

选择 Department List 区域并单击 Next

 

.

接受默认选项 Create a button in a region position,然后单击 Next

 

.

输入 Reset 作为 Button Name,选择 Redirect to URL without submitting page,然后单击 Next

 

.

接受默认选项,然后单击 Next

 

.

针对 Position 单击 [Top],针对 Alignment 选择 Left,然后单击 Next

 

.

为了重置交互式报表,从这里发出一个清空缓存请求“RIR”。这将重置调用的任何页面上的交互式报表。针对 Page 输入当前的页面。为 Clear Cache 输入 2,RIR,然后单击 Create Button

注:RIR 字符串相当于最终用户从目标页面的交互式报表 Actions 菜单上选择 Reset 选项,使报表返回至由开发人员设定的默认报表设置。

 

.

已成功创建您的按钮。单击 Run Page

 

.

随即显示报表。选择 Employees 标题并单击降序排列图标。

 

.

现在您的报表将按 Employees 的降序排列。从列标题菜单中,您只能更换到升序或按另一列排列。如果您的最终用户希望完全取消排序结果,则他们需要使用 Reset 按钮。单击 Reset

 

.

注意,您的报表已经重置回原始状态。

 

创建声明式筛选器

您可以通过使用 URL 项的值传递筛选条件,在交互式报表上定义声明式筛选器。这允许您定义复杂的查询条件,该条件可以转换成筛选器或者从一个报表下钻到交互式报表。要创建从一个交互式报表到另一个报表的下钻,执行以下步骤:

.

导航至 Application 页面。单击 Create Page

 

.

选择 Report 单选按钮,然后单击 Next

 

.

单击 Interactive Report 并单击 Next

 

.

输入 Employees by Department 作为 Page Name 和 Region Name。针对 Breadcrumb 选择 Breadcrumb。针对 Entry Name 输入 Employees by Department。针对 Parent Entry 选择 Department List 链接,然后单击 Next

 

.

接受默认选项,然后单击 Next

 

.

输入以下 SQL,然后单击 Next

select	 "OEHR_EMPLOYEES"."FIRST_NAME" as "FIRST_NAME",
"OEHR_EMPLOYEES"."LAST_NAME" as "LAST_NAME",
"OEHR_EMPLOYEES"."EMAIL" as "EMAIL",
"OEHR_EMPLOYEES"."PHONE_NUMBER" as "PHONE_NUMBER",
"OEHR_EMPLOYEES"."HIRE_DATE" as "HIRE_DATE",
"OEHR_EMPLOYEES"."JOB_ID" as "JOB_ID",
"OEHR_EMPLOYEES"."SALARY" as "SALARY",
"OEHR_EMPLOYEES"."DEPARTMENT_ID"
from "OEHR_EMPLOYEES" "OEHR_EMPLOYEES"

.

单击 Finish

 

.

已成功创建交互式报表页面。在运行页面之前,您需要进行一些更改。单击 Edit Page

 

.

在 Regions 下,选择 Interactive Report 链接。

 

.

选择 Show All 选项卡。您需要提供一个标题名,当调用该报表并指定 DEPARTMENT_ID 时(尽管不显示 DEPARTMENT_ID 列)会将其用作筛选器名称。将 DEPARTMENT_ID 的标题更改为 Specified Department,然后为 Display Text As 选择 Hidden 并单击 Apply Changes

注意,由于要向该列传递值,因此不需要隐藏该列。如果将值传递给非隐藏的列,则生成的筛选器是可编辑的。如果将值传递给隐藏的列,则只能禁用或删除生成的筛选器,不能对其进行编辑(即您的最终用户不能更改筛选器以查看其他部门)。

 

.

现在您需要在 Department List 页面和该页面之间创建一个链接,并传递 Department ID。选择您的应用程序路径式导航栏。

 

.

在本教程的上一主题中我们创建了该页面。选择 Department List 页面。

 

.

在 Regions 下,选择 Interactive Report 链接。

 

.

针对 DEPARTMENT_ID 选择 Hidden,针对 EMPLOYEES 列选择 Display as Text (escape special characters),然后针对 EMPLOYEES 列单击 Edit 图标。

 

.

单击 Link 选项卡。

 

.

您需要定义一个链接以显示各部门的员工数量,调用您刚创建的新页面,清除该页面上的缓存,重置该页上的交互式报表,以删除先前设置的可能与传递的筛选器冲突的筛选器。此外,您需要为隐藏的 DEPARTMENT_ID 传入一个值。要引用交互式报表中的某列,您需要在列的别名前添加“IR_”。

针对 Link Text 选择 [EMPLOYEES],针对 Page 输入 3(您刚创建的页面),然后在 Clear Cache 域中输入 3,RIR。在 Item 1 Name 域中输入 IR_DEPARTMENT_ID,然后针对 Value 选择 #DEPARTMENT_ID#。然后单击 Apply Changes

注:通过为项名称加上前缀 IR_(在本示例中为 IR_DEPARTMENT_ID),URL 项将与交互式报表关联,而不是页面上的项。

 

.

单击 Run Page

 

.

Employees 值现在有一个链接。单击其中一个数字。

 

.

现在显示的是 Employees by Department 交互式报表,且在 Department 上创建了一个筛选器。注意,您不能单击以编辑筛选器(因为它创建在隐藏列上),但您可以通过取消选择复选框来禁用筛选器。

 

.

因为禁用了筛选器,所以现在显示所有记录。单击开发人员工具栏中的 Edit Page

 

创建派生列

在本部分中,您将向查询添加一个派生列。具体来说,您要使用 CASE 语句基于员工所作工作来确定其薪酬是否过低。然后使用这一派生列的值来创建一个高亮显示规则,从而高亮显示所有薪酬过低的员工。执行以下步骤:

.

导航至 Employees by Department 页面(在上一部分中您最后所位于的页面)。在 Regions 下,选择 Employees by Department 链接。

 

.

在 Region Definition 选项卡中,单击 Source 选项卡。

 

.

将源代码更改为以下查询,然后单击 Apply Changes

注意,SQL 语句中的这一 CASE 语句用于判断员工的工资是否低于其工作的最低薪水。如果是,则将派生列的值 UnderPaid_Yes_No 设置为 Yes,否则设置为 No。开始将不显示派生列,但可以用于 Actions 菜单上的众多操作(如 Filter 和 Highlight)。

select (case when e.salary < j.min_salary then 'Yes' 
else 'No' end) UnderPaid_Yes_No,
e.first_name,
e.last_name,
e.email,
e.phone_number,
e.hire_date,
e.job_id,
e.salary,
e.department_id
from oehr_employees e,
oehr_jobs j
where e.job_id = j.job_id

.

然后将向您的报表中添加其他列。单击 Apply Changes

 

.

单击 Run

 

.

随即显示报表。如果在运行时派生列出现在报表上,使用 Actions 菜单 > Select Columns 操作将列更改为 Do not Display,并将报表保存为默认报表。要显示薪酬过低的员工,选择 Actions 菜单,然后单击 Highlight

 

.

针对 Name 输入 Underpaid Employees,针对 Background Color 选择 [yellow]。针对 Column 选择 UnderPaid Yes No,为 Expression 输入Yes,然后单击 Apply

 

.

注意,薪酬过低的员工现在以黄色高亮显示。

 

总结

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

资源

要了解有关 Application Express 的更多信息,您可以查看以下内容:

相关文档

描述

联机帮助

要访问该帮助,单击 Application Express 右上角处显示的 Help 按钮。搜索感兴趣的主题。

版本说明

这些说明包含 Oracle Application Express 文档中未包括的重要信息。

安装指南

该指南解释了如何安装和配置 Oracle Application Express。

两日以上开发人员指南

该指南向您介绍如何搭建一个开发环境或者访问一个与该指南一起使用的托管演示环境。然后将引导您构建一个最初的应用程序,对其进行修改并进行预览。

用户指南

该指南描述了如何使用 Oracle Application Express 开发环境构建和部署以数据库为中心的 Web 应用程序。通过使多个工作组能够构建和访问应用程序(如同它们在独立的数据库中运行),Oracle Application Express 将单个 Oracle 数据库转换为共享的服务。

高级教程

包含了分步指南的教程,介绍如何使用 Oracle Application Express 开发环境创建各种应用程序组件和整个应用程序。