Oracle 技术网

使用 Oracle Application Express 创建和运行应用程序

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

目的

本教程将向您介绍如何使用 Oracle Application Express 快速创建应用程序。

所需时间

大约 2 个小时

前提条件

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

.

完成使用 Application Express 3.2 操作数据库对象教程。

创建应用程序

要创建应用程序框架并将几个初始页面设为默认值,执行以下步骤:

.

在 Oracle Application Express 主页中,单击 Application Builder > Create Application 旁的向下箭头。

 

.

选择 Create Application 并单击 Next


.

为 Name 输入 Project Tasks Application。保留 Creation Application 的默认值 From Scratch,然后单击 Next >

 

.

为 Page Name 输入 Home,然后单击 Next >

 

.

您将看到 Master Detail 页面类型。Master Detail 页面类型会构建一个两页的报表和表单组合。为 Page Type 选择 Master Detail。为 Subordinate to Page 选择 Home(1),为 Master Table Name 选择 OBE_PROJECTS,为 Detail Table Name 选择 OBE_TASKS。单击 Add Page

 

.

创建了 Master Detail 页面,然后单击 Next

 

.

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

 

.

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

 

.

您可以定义一个将在应用程序中使用的日期格式。在应用程序中显示或提交任何页面前将使用该日期格式更改 NLS_DATE_FORMAT 数据库会话设置。所有报表均使用该格式来显示日期,该格式由“Date Picker (use Application Date Format)”类型的表单项获取。可以通过以下步骤实现:

  1. Application Builder > Application Builder Defaults(在 Tasks 下):它们特定于工作区而非开发人员,在使用 Create Application Wizard 时将用作默认值。
  2. Application Builder > Create Application Wizard > Attributes 页面
  3. Application Builder > 您的应用程序 > Shared Components > Edit Globalization Attributes。

为您的应用程序选择一个应用程序日期格式,然后单击 Next

 

.

选择 Theme 20,然后单击 Next

 

.

单击 Create

 

.

您的应用程序创建成功。单击 Run Application

 

.

由于选择了默认的 Application Express Authentication,因此需要使用开发时使用的登录身份来登录新应用程序。为 User Name 输入 obe,为 Password 输入 oracle。然后,单击 Login

 

.

选择 OBE Projects。

 

.

自动创建一个包含项目列表的报表。选择其中一个项目旁的 Edit () 图标以查看主/从表单。

 

.

显示主/从表单。通过该页面,用户可以编辑项目的详细信息以及与项目关联的任务的详细信息。通过它,用户还可以向当前项目中添加新任务。

在详细信息区域中,您会看到 Add Row 按钮。此按钮可保存任何未决更改,并会另外添加一行,以便可以将新任务添加到项目中。还应有一个 Delete Checked 按钮。此按钮与每个任务左侧的复选框配合使用。单击 Delete Checked 按钮时,将删除所有被“选中”的任务。如果使用该特性,您会注意到其中内置了一个删除确认。它要求您在继续操作之前对删除进行确认。

更改项目名并单击 Apply Changes

 

编辑应用程序对象

尽管主/从表单功能齐备,但外观还可进一步改善。在本主题中,您将更改页面标题、区域标题的名称,并更改项在主报表上的格式。此外,您还将以 PDF 格式打印 Projects 报表。最后,使用拖放功能在 Projects and Tasks 页面上更改各项的顺序。执行以下步骤:

.

选择 Edit Page 2

 

.

选择 Regions 下的 Report 链接。

 

.

单击 PROJECT_DEADLINE 旁的 Edit () 图标。

 

.

在 Column Formatting 下,在 Number/Date Format 域中输入 MM/DD/YYYY 并单击 Apply Changes

 

.

单击 Apply Changes

 

.

单击 Page 的 Edit Page Attributes () 图标。

 

.

在 Name 部分中,为 Name 输入 Projects。在 Display Attributes 部分中,为 Title 输入 Projects。然后单击 Apply Changes

 

.

单击 Run

 

.

注意,PROJECT_DEADLINE 的格式发生了变化。您会注意到,区域标题仍然为 OBE_Projects。单击开发人员链接区域中的 Show Edit Links

 

.

单击 Obe Projects 区域标题旁的 Edit () 图标。

 

.

将标题更改为 Projects,然后单击 Apply Changes

 

.

单击 Cancel 关闭 Page Region 窗口。

 

.

刷新浏览器以显示刚做的更改。单击开发人员链接中的 Hide Edit Links

 

.

单击开发人员工具栏中的 Edit Page 2 链接。

 

.

单击 Projects 区域旁的 Report 链接。

单击 Print Attributes 选项卡。

 

.

在 Enable Report Printing 下拉菜单中选择 Yes,在 Page Attributes 下的 Orientation 下拉菜单中选择 Portrait。然后单击 Page Header 选项卡。

 

.

为 Page Header 输入 Project Report,并将 Alignment 设为 center。单击 Apply Changes

 

.

注意,由于您启用了 Report Printing,所以 Print 现在出现在 Report 链接右侧。单击 Run

 

.

注意报表底部的 Print 链接。单击 Print 链接。

 

.

单击 Open with 单选按钮,然后单击 OK 以 PDF 格式查看报表。

注:接受许可协议。

为了使用打印服务功能,需要运行 BI Publisher。如果 BI Publisher 没有运行,您将看到一条错误信息。如果您尚未启动 BI Publisher,则双击桌面上的 BI Publisher 图标。

 

.

Projects 报表以 PDF 格式显示。

 

.

单击开发人员工具栏中的 Edit Page 2 链接。

 

.

单击 > 箭头导航至 Projects and Tasks 页面 (Page 3) 的页面定义。

 

.

显示 Page 3 的页面定义。要重新排列页面中各项的顺序,单击 Items 选项卡。

 

.

单击 Items 部分中的 Drag and drop 图标。

 

.

显示 Drag and Drop Layout。您可以使用这个直观的图形布局来编辑、创建或删除该页面中的项。

 

.

为了让 Page 3 中的 Project Priority 项显示在 Project Deadline 项之上,可将 P3_PROJECT_ PRIORITY 项拖放到 P3_PROJECT_ DEADLINE 项之上,然后单击 Next>

 

.

单击 Apply Changes

 

.

单击 Run

 

.

注意 Project Priority 域现在是如何显示在 Project Deadline 域上方的。单击开发人员工具栏中的 Application <n> 链接。

 

创建值列表 (LOV)

另一种改善应用程序外观的方法是创建值列表。在本主题中,您将创建以下 LOV:

EMPLOYEES 显示员工列表的动态 LOV。该 LOV 之后与任务列表中的 Assigned To 列关联。
STATUSES 显示状态列表的静态 LOV。该 LOV 之后与任务列表中的 Status 列关联。
PRIORITIES 显示优先级列表的静态 LOV。该 LOV 之后与 Projects Master 区域中的 Priority 列关联。

执行以下步骤:

.

单击 3 - Master Detail 页面。

在 Shared Components 栏中,单击 List of Values 下的 Create () 图标。

 

.

对于 Create List of Values,保留默认值 From Scratch 并单击 Next >

 

.

为 Name 输入 EMPLOYEES。对于 Type,将类型更改为 Dynamic。然后单击 Next >

 

.

对于动态 LOV,您需要输入希望在显示页面时执行的 SQL。要找出列的名称,您可以选择 Item Finder () 图标。

 

.

单击 Tables 选项卡。

 

.

选择 OBE_EMPLOYEES 表链接。

 

.

注意列名称。您可以选择显示的 SQL 语句并将其复制到剪贴板。退出 Item Finder 窗口。

 

.

将 SQL 语句更改为以下内容,然后单击 Create List of Values。动态值列表中的第一列是显示给用户的列。第二列是要存储在数据库中的相应值。在适当的时候,它们可以是相同的值。

select FIRST_NAME||', '||LAST_NAME d,
    EMPLOYEE_ID r
from OBE_EMPLOYEES
order by 1

 

.

您的 LOV 创建成功。注意,该 LOV 没有列在 List of Values 区域中,因为您尚未将其与该页面关联。您希望再创建 2 个静态 LOV。再次单击 Create () 图标。

 

.

对于 Create List of Values,保留默认值 From Scratch 并单击 Next >

 

.

为 Name 输入 STATUSES,并确保为 Type 选择了 Static,然后单击 Next >

 

.

为 Display Value 和 Return Value,输入以下值:

Display Value Return Value
Closed closed
Open open
On Hold on-hold

单击 Create List of Values

 

.

创建了 STATUSES LOV。还要再为表单的 Master 部分创建一个 LOV,即 Priorities。单击 Create

 

.

对于 Create List of Values,保留默认值 From Scratch 并单击 Next >

 

.

为 Name 输入 PRIORITIES,并确保为 Type 选择了 Static,然后单击 Next >

 

.

为 Display Value 和 Return Value,输入以下值:

Display Value Return Value
High 1
Medium 2
Low 3

单击 Create List of Values

 

.

创建了 PRIORITIES LOV。现在,可将这些 LOV 与该页面关联。单击 Edit Page 3 () 图标。

 

.

单击 Show All 图标显示所有页面组件。

 

.

在 Regions 区域中,单击 Report 链接。

 

.

单击 ASSIGNED_TO 列前面的 Edit () 图标。

 

.

单击 Tabular Form Element 部分按钮。

 

.

将 Display As 更改为 Select List (named LOV) 并单击 List of Values 部分按钮。

 

.

为 Named LOV 选择 EMPLOYEES,为 Display Null 选择 YES,并为 Null display value 输入 - None Assigned -。然后单击 Apply Changes

 

.

单击 STATUS 列前面的 Edit () 图标。

 

.

List of Values 部分按钮应已选定。为 Named LOV 选择 STATUSES,为 Display Null 选择 YES,并为 Null display value 输入 - No Status -。然后单击 Tabular Form Element 部分按钮。

 

.

为 Display As 选择 Select List (named LOV) 并单击 Apply Changes

 

.

现在,可以再次运行该页面查看结果。单击 Run Page 3 () 图标。

 

.

选择 Assigned To 的下拉列表。您将看到已执行的动态 LOV 和员工列表。

 

.

选择 Status 的下拉列表。您将看到显示静态 LOV 值。

 

.

接下来,您需要将 PRIORITIES LOV 指派给该页面 Master 区域中的 Priority 项。单击 Edit Page 3

 

.

在 Page Rendering 下单击 Items () 图标。

 

.

选择 P3_PROJECT_PRIORITY

 

.

选择 Display As 域下的 Radio 链接,然后单击 LOV 部分按钮。

 

.

为 Named LOV 选择 PRIORITIES,为 Number of Columns 输入 4,为 Display Nulls 选择 Yes,并为 Null display value 输入 None。然后单击 Apply Changes

 

.

单击 Run

 

.

Priority 域现在是一个填充了 LOV 值的单选按钮组。单击开发人员链接中的 Edit Page 3

 

添加项验证

您不希望用户输入当前日期之前的日期。该类型的检查可通过项验证实现。执行以下步骤:

.

单击 Page 3 的 Validations 部分中的 Create () 图标。

 

.

接受默认值,创建一个 Item level validation 并单击 Next >

 

.

选择 P3_PROJECT_DEADLINE 项并单击 Next >

 

.

为 Validation Method 选择 SQL,然后单击 Next >

 

.

您希望指定判定 PROJECT_DEADLINE 不正确的条件,因此单击 SQL Expression,然后单击 Next >

 

.

输入 P3_PROJECT_DEADLINE 作为 Validation Name,然后单击 Next >

 

.

为 Validation 输入 TO_DATE(:P3_PROJECT_DEADLINE,'MM/DD/YYYY') >= SYSDATE,并为 Error Message 输入 Date needs to be greater than today,然后单击 Next >

 

.

为 Condition Type 选择 Request Is Contained within Expression1,并为 Expression1 输入 SAVE, CREATE。然后单击 Create

 

.

验证创建成功。单击 Run

 

.

将日期更改为当前日期之前的某个时间,然后单击 Apply Changes

 

.

注意,您将收到一条项(或域)错误消息以及一个页面通知消息。这是因为您在创建验证时指定了需要这两条消息。

 

.

单击开发人员工具栏中的 Application <n> 链接。

 

总结

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

Hardware and Software Engineered to Work Together About Oracle |Oracle and Sun | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Your Privacy Rights