使用 Oracle HTML DB 创建以数据库为中心的 Web 应用程序

本教程介绍了如何使用 Oracle HTML DB 快速创建应用程序。

大约 1 个小时

本教程将讨论下列主题:

概述
前提条件
从电子表格创建表
添加主表
修改表

创建应用程序

添加报表
启用列标题排序
添加主/从表单
编辑应用程序对象
应用新主题
创建用户
总结
相关信息

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

注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

什么是 HTML DB?

HTML DB 提供了一个声明式开发框架,用于创建以数据库为中心的 Web 应用程序。使用在线服务完成开发。通过下载一个运行时模块和应用程序并将该应用程序运行在您的企业内部来完成部署。

HTML DB 由哪些组件组成?

HTML DB 包含三个主要的组件。您将在本教程中用到全部三个组件。

Application Builder

使用 Application Builder,您可以构建以数据库为中心的交互式 Web 应用程序。

SQL Workshop SQL Workshop 使您可以运行 SQL 语句和 SQL 脚本。
Data Workshop 使用 Data Workshop,您可以将数据加载到数据库中以及从数据库中提取数据。

术语

在使用 HTML DB 时,了解下面这些概念是很重要的:

应用程序

应用程序是一个通过分支连接的页面的集合。其属性包括身份验证方法、默认的 UI 模板、以及授权规则。

页面 页面是通过其生成、显示以及处理方式来定义。处理是指提交页面时所发生的事件和逻辑。每个页面在运行时由应用程序开发人员定义的元数据动态生成。页面的外观由页面模板控制。
区域 内容显示在多个区域中,这些区域是页面的逻辑子部分。每个页面可以包含任意数量的数种类型的区域。这些类型包括:HTML 文本、SQL 查询、PL/SQL 生成的 HTML 和图表。每个区域均使用区域模板生成,并由页面模板中定义的显示点来确定在页上的位置。
项目 应用程序项目用于生成 HTML 表单元素。应用程序引擎管理 PL/SQL 生成的 HTML,而作为开发人员的您只需选择项目类型即可。应用程序支持支持 50 个以上这样的类型,包括日期选择器、弹出式值列表、具有拼写检查功能的文本区域等。项目的值自动存储到应用程序的会话状态中,可以在用户会话的任何地方引用该值。

体系结构

所有应用程序都是根据数据库表中存储的数据实时生成的。当您创建或扩展应用程序时,不生成代码;创建或修改了元数据并将其存储在数据库表中。应用程序生成引擎读取元数据并相应地显示页面。

所有会话状态也都存储在数据库中。每个页面视图都产生一个新的数据库会话,因此当应用程序引擎未处理页面时,就不会消耗数据库资源(除了表行所使用的存储空间外)。用于在用户运行应用程序时自始至终管理应用程序会话状态的唯一会话标识符与运行时引擎为每个页面视图创建和运行的许多个别数据库会话无关。

执行 SQL 或 PL/SQL 的应用程序被分析为应用程序的“所有者”。当为您提供工作区后,您就获得了以特定模式分析的权限。因此,您所有 Oracle 数据库的权限和特权就是那些选择以其分析的模式的权限和特权。

开始学习本教程之前,您应已经:

1.

完成了教程使用真正应用集群 (RAC) 和自动存储管理 (ASM) 在 Windows 上安装 Oracle 数据库 10g

或者

完成了教程在 Linux 上安装 Oracle 数据库 10g

 

2.

完成了教程在 Linux 上安装和配置 Oracle HTMLDB

 

3.

下载 htmldb.zip 并将其解压缩到工作目录中 (/home/oracle/wkdir)

 

返回主题列表

要从电子表格中加载本教程的数据,执行下列步骤:

1.

输入以下 URL 登录到 HTML DB。

http://<主机名>:7777/pls/htmldb/htmldb

 

2.

要登录到 HTML DB,输入下列详细信息,然后单击 Login

Workspace:obe
Username:obe
Password:obe

将鼠标移到该图标上可以查看该图像

 

3.

要创建应用程序将基于的表,单击 Data Workshop

将鼠标移到该图标上可以查看该图像

 

4.

要基于电子表格创建表,单击 Import Spreadsheet Data

将鼠标移到该图标上可以查看该图像

 

5.

确保将导入目标 (Import To) 设置为 New table。为 Import From 选择 Upload file (comma separated or tab delimited) 选项。单击 Next >

将鼠标移到该图标上可以查看该图像

 

6.

单击 Browse

将鼠标移到该图标上可以查看该图像

 

7.

/home/oracle/wkdir 目录中找到 tasks.txt 文件,然后单击 Open。

将鼠标移到该图标上可以查看该图像

 

8.

由于文本文件中的数据是用制表符分隔的,因此在 Separator 域中输入 \t。单击 Next >

将鼠标移到该图标上可以查看该图像

 

9.

Table Information 页面显示表中的列及其格式,以及要在创建表后插入到表中的数据。为 Table Name 输入 Tasks,然后单击Next >

将鼠标移到该图标上可以查看该图像

 

10.

使用 Primary Key 页面,可以向表中添加系统生成的主键并使用新序列填充该列。检查默认值,然后单击 Import Data

将鼠标移到该图标上可以查看该图像

 

11.

创建表并加载数据后,您将位于 Files 页面上。您可以看到,刚刚上载的包含 16 行的文件已经成功上载。要查看新表,单击 SQL Workshop 选项卡。

将鼠标移到该图标上可以查看该图像

 

12.

在 Database Browser 下,单击 Tables

将鼠标移到该图标上可以查看该图像

 

13.

要查看表定义,单击 TASKS 表旁的 Object Detail 图标 ()。

将鼠标移到该图标上可以查看该图像

 

14.

该页面只显示表定义。 要查看表中的所有数据,单击窗口右侧 Tasks 列表中的 Query By Example

将鼠标移到该图标上可以查看该图像

 

15.

选中 Check All 复选框将其启用,然后单击 Query

将鼠标移到该图标上可以查看该图像

 

16.

您将看到该表中的所有数据。 可以从该页面更改数据库中的任何数据,还可以向该表中添加行。 要返回摘要页面,单击 SQL Workshop 选项卡。

将鼠标移到该图标上可以查看该图像

 

要根据 Project 列创建主表,执行下列步骤:

1.

在 Database Browser 部分中,单击 Tables

将鼠标移到该图标上可以查看该图像

 

2.

确保选择了 OBE 和 TABLE 分别作为模式和类型的值。要查看表定义,滚动到 Database Object Results 表的底部,然后单击 TASKS 表旁边的 Object Detail () 图标。

将鼠标移到该图标上可以查看该图像

 

3.

在窗口右侧的 Tasks 列表中,单击 Create Lookup Table

将鼠标移到该图标上可以查看该图像

 

4.

要指定据以创建主表的列,选择 PROJECT - varchar2,,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

5.

输入下列值,然后单击 Next >

New Table Name:PROJECTS
New Sequence:PROJECT_SEQ

将鼠标移到该图标上可以查看该图像

 

6.

单击 Finish

注意 可能收到错误 ORA-20001。该消息是 Oracle HTML DB 软件测试版中的一个错误造成的,请继续学习, 它不会对教程造成影响。

将鼠标移到该图标上可以查看该图像

 

7.

要查看 TASKS 表引用的表,单击箭头展开位于页面底部的 Foreign Keys (Tables this table references)

将鼠标移到该图标上可以查看该图像

 

8.

要查看新 PROJECTS 表的定义,单击 Parent Table 列中的 PROJECTS

将鼠标移到该图标上可以查看该图像

 

9.

注意,新 PROJECTS 表包含一个数字主键和 PROJECT 列。

将鼠标移到该图标上可以查看该图像

 

到目前为止,您已经创建了两个主表,下面您将通过向 PROJECTS 表中添加 PROJECT LEAD 列来增强该表。为此,执行以下步骤:

1.

在右侧的 Tasks 列表中,单击 Manage Table

将鼠标移到该图标上可以查看该图像

 

2.

由于要向该表中添加一列,因此保留 Add Column 的默认选择,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

3.

输入下列值,然后单击 Next >

Add Column: PROJECT_LEAD
Type: VARCHAR2
Length: 30

将鼠标移到该图标上可以查看该图像

 

4.

单击 Finish

将鼠标移到该图标上可以查看该图像

 

5.

要查看表定义,单击 Browse Table

将鼠标移到该图标上可以查看该图像

 

6.

您将看到修改后的表定义,它添加了一个新的 PROJECT_LEAD 列。 单击该页面右侧 Tasks 列表中的 Query By Example

将鼠标移到该图标上可以查看该图像

 

7.

选中 Check All 复选框将其启用,然后单击 Query

将鼠标移到该图标上可以查看该图像

 

8.

您将看到 TASKS 表中引用的所有项目。 可以在此处更改数据。 单击 Project Id 4 Public Website 左侧的 Edit 图标 ()。

将鼠标移到该图标上可以查看该图像

 

9.

为 Project Lead 输入 Tom Suess。单击 Apply Changes

将鼠标移到该图标上可以查看该图像

 

10.

您将看到已添加的数据。 要开始创建应用程序,单击路径式导航栏菜单上的 Workspace OBE

将鼠标移到该图标上可以查看该图像

 

要创建应用程序框架和几个空白页面,执行下列步骤:

1.

在 HTML DB 主页上,单击 Create Application >

将鼠标移到该图标上可以查看该图像

 

2.

由于您将从头创建应用程序,因此保留 Creation Method 的默认值 From Scratch,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

3.

为 Name 输入 Project Tasks Application。要指定应用程序将包含两个页面,从 Pages 下拉列表中选择 2。单击 Next >

将鼠标移到该图标上可以查看该图像

 

4.

保留默认值 One Level of Tabs,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

5.

输入下列值,然后单击 Next >

Page Name 1: Overview
Page Name 2: All Tasks

将鼠标移到该图标上可以查看该图像

 

6.

请注意,默认情况下,Page Tab 名称反映您在前面指定的页面名称。单击 Next >

将鼠标移到该图标上可以查看该图像

 

7.

保留默认值 Theme 1(红色),然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

8.

单击 Create Application

将鼠标移到该图标上可以查看该图像

 

9.

要查看该应用程序,单击 Run

将鼠标移到该图标上可以查看该图像

 

10.

新应用程序是使用 HTML DB Authentication 创建的。 您需要使用可以访问拥有此应用程序的工作区的用户名/口令组合登录。 使用开发登录 obe/obe,然后单击 Login。

将鼠标移到该图标上可以查看该图像

 

11.

请注意,此应用程序骨架是使用您指定的页面和选项卡创建的。 现在,页面中还没有内容。 稍后将添加内容。 单击 All Tasks 选项卡。

将鼠标移到该图标上可以查看该图像

 

12.

下一步是向 All Tasks 页面中添加报表。 以开发人员的身份登录后,可以使用该页面底部的链接修改此应用程序。 从开发人员链接中,单击 Edit Page 2

将鼠标移到该图标上可以查看该图像

 

要向 All Tasks 页面中添加报表,执行以下步骤:

1.

在 Regions 部分中,单击 Create 图标 ()。

将鼠标移到该图标上可以查看该图像

 

2.

要添加报表,选择 Report,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

3.

保留默认值 Easy Report,然后单击Next >

将鼠标移到该图标上可以查看该图像

 

4.

为 Title 输入 Tasks,然后单击Next >

将鼠标移到该图标上可以查看该图像

 

5.

要选择要将其中的列添加到该报表的表,从 Table/View Name 下拉列表中选择 PROJECTS

将鼠标移到该图标上可以查看该图像

 

6.

从 Select Columns 列表中,选择 PROJECT,,然后单击 > 将其移动到 Columns Selected 列表。

将鼠标移到该图标上可以查看该图像

 

7.

还需要添加 TASKS 表中的列。 从 Table/View Name 下拉列表中,选择 TASKS

将鼠标移到该图标上可以查看该图像

 

8.

从 Select Columns 列表中,选择除 ID 和 PROJECT_ID 外的所有列,然后单击 > 将它们移动到 Columns Selected 列表。

将鼠标移到该图标上可以查看该图像

 

9.

单击 Next >

将鼠标移到该图标上可以查看该图像

 

10.

Join Condition 应默认设置为:

"PROJECTS"."PROJECT_ID" = "TASKS"."PROJECT_ID"

单击 Next >。

将鼠标移到该图标上可以查看该图像

 

11.

保留 Report Attributes 的默认值,然后单击 Create Region

将鼠标移到该图标上可以查看该图像

 

12.

要运行该页面,单击该页面右上角的 Run Page 图标 ()(就在 Data Workshop 选项卡的下面)。

将鼠标移到该图标上可以查看该图像

 

13.

显示您刚创建的报表。 所有数据均从 TASKS 表以及 PROJECTS 表中的 PROJECT_NAME 列检索。 所有代码由 Oracle HTML DB 自动生成。 要显示后 15 行,单击报表底部的 Next 链接。

将鼠标移到该图标上可以查看该图像

 

在该报表中,Tasks 按其创建顺序显示。 我们可以启用基于列标题的排序以使用户能够决定基于哪个列排序。为此,执行以下步骤:

1.

从底部的开发人员链接中,单击 Edit Page 2

将鼠标移到该图标上可以查看该图像

 

2.

在 Tasks 左侧的 Regions 部分中,单击 RPT 链接。

将鼠标移到该图标上可以查看该图像

 

3.

要启用所有列的列标题排序,在 Report Column Attributes 部分中的 Sort 列下选择每一列相应的复选框。

将鼠标移到该图标上可以查看该图像

 

4.

启用排序后,还应提供一个默认排序顺序。 为此,在 Sort Sequence 下,从 PROJECT 的下拉列表中选择 1。 对于 TASK_NAME,从下拉列表中选择 2

将鼠标移到该图标上可以查看该图像

 

5.

单击 Apply Changes

将鼠标移到该图标上可以查看该图像

 

6.

单击该页面右上角的 Run Page 图标 ()。

将鼠标移到该图标上可以查看该图像

 

7.

要查看前 15 个报表,单击该报表底部的 Previous 链接。

将鼠标移到该图标上可以查看该图像

 

8.

请注意,该报表现在按字母顺序排序,首先按 Project 排序,然后按 Task Name 排序。 由于列标题是链接,因此现在带有下划线。 要基于 Start Date 排序,单击 Start Date 列标题。

将鼠标移到该图标上可以查看该图像

 

9.

请注意,该报表采用最早的 Start Date 最先显示的顺序进行排序。 要按降序排序,再次单击 Start Date 列标题。

将鼠标移到该图标上可以查看该图像

 

10.

现在,最新的任务将最先显示。

将鼠标移到该图标上可以查看该图像

 

如果任务很少,则完全可以同时显示它们。但如果任务很多,则最好按 Project 顺序查看任务。主/从表单正好执行实现此目的。要添加一个主/从表单,执行下列步骤:

1.

从页面底部的开发人员链接中,单击 Edit Application

将鼠标移到该图标上可以查看该图像

 

2.

要创建一个新页面,单击 Create Page >

将鼠标移到该图标上可以查看该图像

 

3.

选择 Page with Component 选项,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

4.

要指定将要添加到页面的组件,选择 Form 选项。单击 Next >

将鼠标移到该图标上可以查看该图像

 

5.

选择 Master Detail Form 选项,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

6.

要指定主表,从 Table/View Name 下拉列表中选择 PROJECTS

将鼠标移到该图标上可以查看该图像

 

7.

要选择所有列,单击 Add All 图标 ( )。

将鼠标移到该图标上可以查看该图像

 

8.

Displayed Columns 列表列出了将在报表和主表区域中显示的列。单击 Next >

将鼠标移到该图标上可以查看该图像

 

9.

要指定从表,从 Table/View Name 下拉列表中选择 TASKS

将鼠标移到该图标上可以查看该图像

 

10.

要选择所有列,单击 Add All 图标 ( )。

将鼠标移到该图标上可以查看该图像

 

11.

单击 Next >

将鼠标移到该图标上可以查看该图像

 

12.

要指定主键源是现有序列,选择 Existing sequence 选项。

将鼠标移到该图标上可以查看该图像

 

13.

这将显示一个新的 Sequence 选择列表。从 Selection 下拉列表中,选择 PROJECT_SEQ,然后单击 Next >。

将鼠标移到该图标上可以查看该图像

这确定 PROJECTS 的主键生成方式。创建的页面将用于创建新 Projects。

 

14.

对于从表主键源,选择 Existing Sequence 选项。

将鼠标移到该图标上可以查看该图像

 

15.

这将显示 Sequence 选择列表。从 Selection 下拉列表中,选择 TASKS_SEQ,然后单击 Next >。

将鼠标移到该图标上可以查看该图像

这确定 TASKS 的主键生成方式。创建的页面将用于创建新 Tasks。

注意该页面上有一个 Finish 按钮。大多数向导均提供此“快速退出”功能以加速开发。对于此过程,有几个选项处于未选中状态,这对于应用程序很有好处。

 

16.

Define Master 页面选项决定用户将能否滚动项目,如果能,则决定滚动顺序。从 Master Row Navigation Order 下拉列表中,选择 PROJECT 选项。可以使用 PROJECT_ID,但由于这是一个系统生成的没有实际含义的主键,因此按 Project 的字母顺序滚动要更好一些。默认情况下包含一个主报表。最好能够创建一个显示 Projects 以及主从表单的报表,因此保留此默认值,并单击 Next >

将鼠标移到该图标上可以查看该图像

 

17.

使用 Choose Layout 页面,可以指定是在同一页面还是在不同页面上查看详细信息。对于本示例,更好的方法是在同一页面上查看与编辑项目和任务的详细信息。因此,保留默认值 Edit detail as tabular form on same page,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

18.

使用 Page Attributes 页面,可以确定已创建对象的页码、页面标题和区域标题。保留默认值,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

19.

为 Tab Options 选择 Use an existing tab set and create a new tab within the existing tab set 选项。

将鼠标移到该图标上可以查看该图像

 

20.

这导致显示其他选项。 为 Tab Set 选择 TS1 (Overview, All Tasks) 选项。 这是您在默认情况下创建应用程序时创建的选项卡集。 为 New Tab Label 输入 Projects,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

21.

Master Detail Confirmation 页面显示所有选择,并允许您使用 < Previous 按钮修改任何选择。单击 Create

将鼠标移到该图标上可以查看该图像

 

22.

要查看显示所有项目的新页面,单击 Run Page 链接。

将鼠标移到该图标上可以查看该图像

 

23.

注意右上角的新选项卡。 单击 Public Website Project 左侧的 Edit 链接 ()。

将鼠标移到该图标上可以查看该图像

 

24.

将显示新的 Master-Detail 页面。

将鼠标移到该图标上可以查看该图像

 

通过该页面,用户可以编辑项目的详细信息以及与项目相关联任务的详细信息。通过它,用户还可以向当前项目中添加新任务。由于您包含了 Master Row Navigation,因此显示 < PreviousNext > 按钮。它们将帮助您滚动浏览项目。这两个按钮不提交更改。如果更改了数据,则需要在滚动前借助 Apply Changes 按钮应用更改。

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

编辑应用对象

尽管 Master-Detail 表单可以完全正常运行,但可以改进它的外观。 有两种方法可以编辑页面上显示的对象。 第一种方法是使用页面底部的 Developer Links 中的 Show Edit Links。 这将在可以编辑的每个项目旁边显示一个图标,选中该图标时将显示一个使您可以进行更改的弹出窗口。 该方法可用于大多数项目类型,但不适用于 Report Attributes。 第二种是通过从 Developer Links 中选择 Edit Page 2 返回到 Application Builder Page Definition。

您将:

减小 Project 显示大小
增加 Task Name 显示大小
增加 Date 显示大小

更改日期格式

将 Status 域更改为下拉列表

要执行以上所有操作,执行以下步骤:

1.

从页面底部的 Developer Links 中,单击 Show Edit Links。

将鼠标移到该图标上可以查看该图像

 

2.

单击 Project 域右侧的 Edit 链接 ()。
警告:请注意不要选择 Project 域上方的链接。 该链接用于 ID 列,它被隐藏起来了,但仍可以使用 Edit Links 对其进行编辑。

将鼠标移到该图标上可以查看该图像

 

3.

您现在将看到一个包含 P4_PROJECT 详细信息的弹出窗口。 在 Page Item 部分下的 Display As 下拉列表中选择 Text Field 选项。 然后,单击该页面顶部的 Element 链接。

将鼠标移到该图标上可以查看该图像

 

4.

在 Element 部分中,将 Height 更改为 1。 滚动到该页面顶部,然后单击 Apply Changes

将鼠标移到该图标上可以查看该图像

 

5.

要关闭编辑窗口,单击 Cancel

将鼠标移到该图标上可以查看该图像

 

6.

已经对应用程序进行了更改,但要看到这些更改,需要刷新页面。 首先,单击页面底部的 Developer Links 中的 Hide Edit Links 关闭 Edit Links。

将鼠标移到该图标上可以查看该图像

 

7.

要刷新页面,单击浏览器标准工具栏上的 Reload 按钮。 由于所用浏览器的不同,该按钮将有所不同。

将鼠标移到该图标上可以查看该图像

 

8.

现在,您将编辑该页面以对 Tasks 报表进行更改。 单击该页面底部的 Developer Links 中的 Edit Page 4 链接。

将鼠标移到该图标上可以查看该图像

 

9.

编辑该报表前,需要创建将由 Status 域引用的 Named LOV。 通过将它创建为 Named LOV,它还可以由应用程序中的其他页面使用。 在右侧的 List of Values 部分下,单击 Create 按钮 ( )。

将鼠标移到该图标上可以查看该图像

 

10.

为 Create List of Values 保留默认值 From Scratch,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

11.

为 Name 输入 STATUSES。 为 Type 保留默认值 Static。然后,单击 Next >

将鼠标移到该图标上可以查看该图像

 

12.

为 Display Value 和 Return Value 输入以下信息:

Display Value Return Value
open open
on-hold on-hold
closed closed

单击 Create Static LOV

将鼠标移到该图标上可以查看该图像

 

13.

要返回到该页面,单击右上角的 Edit Page 图标 ()(位于 Data Workshop 选项卡下)。

将鼠标移到该图标上可以查看该图像

 

14.

要显示 Tasks 报表的列属性,在 Regions 部分中,单击 Regions 部分中 Tasks 左侧的 Q 链接。

将鼠标移到该图标上可以查看该图像

 

15.

单击 TASK_NAME 左侧的 Edit Attributes 链接 ()。

将鼠标移到该图标上可以查看该图像

 

16.

单击页面顶部的 Tabular Form Element 链接。

将鼠标移到该图标上可以查看该图像

 

17.

为 Element Width 输入 50。 要返回到页面顶部,单击 Top 图标 ()。

将鼠标移到该图标上可以查看该图像

 

18.

单击 Apply Changes 按钮右侧的 Next Column 按钮 ()。

将鼠标移到该图标上可以查看该图像

 

19. 您现在将位于 START_DATE 列页面上。 在 Tabular Form Element 部分下的 Date Picker Format Mask 下拉列表中,选择 Date Picker (DD-MON-YYYY)。 为 Element Width 输入 12。 单击 Next Column 按钮 ()。

将鼠标移到该图标上可以查看该图像

 

20. 您现在将位于 END_DATE 列页面上。 在 Tabular Form Element 部分下的 Date Picker Format Mask 下拉列表中,选择 Date Picker (DD-MON-YYYY)。 为 Element Width 输入 12。 单击 Next Column 按钮 ()。

将鼠标移到该图标上可以查看该图像

 

21. 您现在将位于 STATUS 列上。 在 Tabular Form Element 部分下的 Display As 下拉列表中,选择 Select List (named LOV)。 从页面顶部的链接中,单击 List of Values 链接。

将鼠标移到该图标上可以查看该图像

 

22. 在 List of Values 部分下的 Named LOV 下拉列表中,选择 STATUSES。 单击 Top 按钮 ()。

将鼠标移到该图标上可以查看该图像

 

23. 要保存所有更改,单击 Apply Changes

将鼠标移到该图标上可以查看该图像

 

24. 要运行该页面并查看更改,单击 Run Page 图标 ()。

将鼠标移到该图标上可以查看该图像

 

25.

所有更改均已完成。 请注意,您已经返回到所查看的上一页面。 这是因为 Oracle HTML DB 记住了会话状态。

将鼠标移到该图标上可以查看该图像

 

创建应用程序时,您选择了红色主题。 您可以通过更改主题更改应用程序的观感。 您将首先通过从 HTML DB Repository 中选择一个主题来创建新主题。 要应用新主题,执行以下步骤:

1.

单击页面底部的 Developer Links 中的 Edit Application 链接。

将鼠标移到该图标上可以查看该图像

 

2.

单击 Shared Components

将鼠标移到该图标上可以查看该图像

 

3.

在 User Interface 部分中,单击 Themes and Templates 链接。

将鼠标移到该图标上可以查看该图像

 

4.

要创建一个新主题,单击 Create Theme

将鼠标移到该图标上可以查看该图像

 

5.

使用 HTML DB Repository 中的主题时,保留默认值。单击 Next >

将鼠标移到该图标上可以查看该图像

 

6.

从 Theme 选项中,选择 Theme 10 选项。单击 Next >

将鼠标移到该图标上可以查看该图像

 

7.

单击 Create

将鼠标移到该图标上可以查看该图像

 

8.

请注意,Red 的右侧有一个选中标记,指示它是当前主题。 要切换到 Sand 主题,单击 Switch Theme

将鼠标移到该图标上可以查看该图像

 

9.

为 Switch to Theme 保留默认值 10. Sand。单击 Next >

将鼠标移到该图标上可以查看该图像

 

10.

请注意,该页面显示两个主题之间的兼容性。 该实用程序检查新主题中是否有一个可替换当前主题中每个模板的模板。 Status 列中的选中标记指示模板是兼容的。单击 Next >

将鼠标移到该图标上可以查看该图像

 

11.

要确认主题切换,单击 Switch Theme

将鼠标移到该图标上可以查看该图像

 

12.

要查看新主题,单击页面右上角的 Run Page 图标 ( )。

将鼠标移到该图标上可以查看该图像

 

13.

请注意,应用程序的整个外观已发生变化。 选项卡已移到了右侧。 颜色方案已发生变化。 单击底部的 Developer Links 中的 Edit Application

将鼠标移到该图标上可以查看该图像

 

正如前面提到的,该应用程序使用 HTML DB Authentication。 要创建新用户,使用 Oracle HTML DB 中已经提供的函数。 您将创建一些新用户,然后限定只有某些用户才能访问应用程序的某些区域。为此,执行以下步骤:

1.

单击路径式导航栏菜单中的 Workspace OBE 链接。

将鼠标移到该图标上可以查看该图像

 

2.

在窗口右侧的 Workspace Administration 列表中,单击 Manage Users 链接。

将鼠标移到该图标上可以查看该图像

 

3.

单击 Create New User

将鼠标移到该图标上可以查看该图像

 

4.

输入如下信息,然后单击 Create and Create Another

User Name:Brad.Knight
Password:welcome1
Email Address:brad.knight@oracle.com
First Name:Brad
Last Name:Knight
Default Schema:OBE

将鼠标移到该图标上可以查看该图像

 

5.

输入如下信息,然后单击 Create and Create Another

User Name:Susie.Parker
Password:welcome1
Email Address:susie.parker@oracle.com
First Name:Susie
Last Name:Parker
Default Schema:OBE

将鼠标移到该图标上可以查看该图像

 

6.

输入如下信息,然后单击 Create User

User Name:John.Bell
Password:welcome1
Email Address:john.bell@oracle.com
First Name:John
Last Name:Bell
Default Schema:OBE

将鼠标移到该图标上可以查看该图像

 

7.

请注意,已创建了三个用户。现在,您将设置应用程序的管理员访问权限。 单击路径式导航栏菜单中的 Workspace OBE 链接。

将鼠标移到该图标上可以查看该图像

 

限制访问权限

很多时候,我们需要限制对应用程序的访问权限。为此,执行以下步骤:

1. 设置用户组
2. 创建授权方案。
3. 应用授权方案。

1. 设置用户组

您已经创建了 Brad、Susie 和 John 三个用户。 在他们当中,Brad 和 Susie 是管理员且是唯一有权访问 Master-Detail 报表的两位用户。 John 不是管理员,因此不应授予其相同的访问权限。 为此,首先创建一个将保存所有管理员名称(即,Brad 和 Susie)的表。为此,执行以下步骤:

1.

单击 Data Workshop

将光标放在该图标上可以查看该图像

 

2.

在 Data Import 部分中,单击 Import Text Data 链接。

将光标放在该图标上可以查看该图像

 

3.

为 Import To 单击 New table,并为 Import From 单击 Copy and paste (up to 30KB)。单击 Next >

将光标放在该图标上可以查看该图像

 

4.

选择以下文本,并按 [Ctrl] + [C] 复制:

USERID
BRAD.KNIGHT
SUSIE.PARKER

 

5.

切换回 HTML DB 窗口。 单击 Data 文本框,并按 [Ctrl] + [V] 粘贴用户列表。单击 Next >

将光标放在该图标上可以查看该图像

 

6.

为 Table Name 输入 ADMINS。单击 Next >

将光标放在该图标上可以查看该图像

 

7.

保留 Primary Key 详细信息的默认值。 要导入数据,单击 Import Data

将光标放在该图标上可以查看该图像

 

8.

要返回到应用程序详细信息,单击 Application Builder 选项卡。

将光标放在该图标上可以查看该图像

 

返回主题

2. 创建授权方案

现在,您用应用程序管理员列表填充了该表,下面您将创建一个授权方案以基于管理员表验证当前用户。 如果在该表中指定了该用户,则授权方案将成功。 否则,它将失败。

要创建授权方案,执行以下步骤:

1.

单击 Shared Components

将光标放在该图标上可以查看该图像

 

2.

在 Security 部分中,单击 Authorization 链接。

将光标放在该图标上可以查看该图像

 

3.

要开始创建新授权方案,单击 Create >

将光标放在该图标上可以查看该图像

 

4.

由于您从头创建方案,因此保留 Creation Method 的默认值,然后单击 Next >

将光标放在该图标上可以查看该图像

 

5.

输入以下信息,然后向下滚动到 Identify error message displayed when scheme violated 部分。

Name: ADMIN
Scheme Type:Exists SQL Query

Expression 1:
SELECT '1'
FROM admins
WHERE userid = :APP_USER

将光标放在该图标上可以查看该图像

 

6.

输入以下信息,然后向上滚动到页面顶部。

Identify error message displayed when scheme violated:
Access denied. Administrator Privilege Required.

将光标放在该图标上可以查看该图像

 

7.

单击 Create

将光标放在该图标上可以查看该图像

 

返回主题

3. 应用授权方案

创建授权方案后,您现在将该方案与 Projects 报表的 ID (Edit) 列关联。 然后,将它与 Create 按钮关联,最后与 Master-Detail 页面本身关联。 这样做是为了防止有人通过更改 URL 访问该页面。

要应用授权方案,执行以下步骤:

1.

单击 Application Builder 选项卡,即使它是当前选项卡。

将光标放在该图标上可以查看该图像

 

2.

在 Pages 下,单击 Name 列中的 Projects 链接。

将光标放在该图标上可以查看该图像

 

3.

要显示 Projects 报表的列属性,单击 Regions 部分中 Projects 左侧的 RPT 链接。

将光标放在该图标上可以查看该图像

 

4.

单击 PROJECT_ID 左侧的 Edit Attributes 图标 ()。

将光标放在该图标上可以查看该图像

 

5.

每个详细信息部分的 Column Attributes 标题正下方都有链接。单击 Conditions 链接。

将光标放在该图标上可以查看该图像

 

6.

Conditional Display 部分的正上方是 Authorization 部分。 在 Authorization 部分中,为 Authorization Scheme 选择 ADMIN。 要返回到页面顶部,单击 Authorization 部分右上角的 Top 图标 ()。

将光标放在该图标上可以查看该图像

 

7.

单击 Apply Changes

将光标放在该图标上可以查看该图像

 

8.

要导航回 Page Definition,单击 Cancel

将光标放在该图标上可以查看该图像

 

9.

现在,您将把该授权方案与 Create 按钮关联,以便只有管理员才能创建新项目。 为此,在 Buttons 部分中,单击 Redirect 左侧的 CREATE 链接。
警告: 不要单击 图标,而是单击该链接以编辑当前的 CREATE 按钮。

将光标放在该图标上可以查看该图像

 

10.

单击 Authorization 链接。

将光标放在该图标上可以查看该图像

 

11.

为 Authorization Scheme 选择 ADMIN。 单击 Authorization 部分右上角的 Top 图标 ()。

将光标放在该图标上可以查看该图像

 

12.

单击 Apply Changes

将光标放在该图标上可以查看该图像

 

13.

要查看更改,单击页面右上角的 Run Page 图标 ()。

将光标放在该图标上可以查看该图像

 

14.

请注意,Edit 链接和 Create 按钮均未显示。 这是因为您是以 OBE 用户身份登录的,而 OBE 用户不是管理员。 要注销该应用程序,单击该窗口右上角的 Logout 链接。

将光标放在该图标上可以查看该图像

 

15.

为 User Name 输入 brad.knight,为 Password 输入 welcome1。单击 Login

将光标放在该图标上可以查看该图像

 

16.

单击 Projects 选项卡。

将光标放在该图标上可以查看该图像

 

17.

请注意,由于 Brad 是管理员,因此 Edit 链接和 Create 按钮全部显示。单击 Logout 链接。

将光标放在该图标上可以查看该图像

 

18.

为 User Name 输入 obe,为 Password 输入 obe。单击 Login

将光标放在该图标上可以查看该图像

 

19.

单击 Options 选项卡。

将光标放在该图标上可以查看该图像

 

20.

再次未显示 Edit 图标和 Create 按钮。 最后要做的是防止对 Master-Detail 页面的直接访问。 您现在可以更改 URL 并直接访问它。

您将注意到您的 URL 是以 f?p=… 为结尾的。 其后紧跟着应用程序编号、页面编号和会话编号。 可以手动将页面编号从 3 改为 4 并仍访问 Master-Detail 页面。

将 URL 中的页面编号从 3 更改为 4。

例如,将 url …/f?p=120:3:2101953412249296357::NO
更改为 …/f?p=120:4:2101953412249296357::NO

按键盘上的 ENTER 键。

将光标放在该图标上可以查看该图像

 

21.

请注意,您现在位于 Projects/Tasks 页面,已准备好输入一个新的 Project 并为它创建 Tasks。 但理想情况下,由于 OBE 用户不是管理员,因此应对他/她隐藏该页面。

为防止非管理员用户看到该页面,您需要将授权方案与 Master-Detail 页面本身关联,而不仅仅是与它的访问机制关联。

单击 Developer Links 中的 Edit Page 4

将光标放在该图标上可以查看该图像

 

22.

在 Page 栏中,单击 Edit Attributes 按钮。

将光标放在该图标上可以查看该图像

 

23.

单击 Security 链接。

将光标放在该图标上可以查看该图像

 

24.

为 Authorization Scheme 选择 ADMIN。 单击 Authorization 部分右上角的 Top 图标 ()。

将光标放在该图标上可以查看该图像

 

25.

单击 Apply Changes

将光标放在该图标上可以查看该图像

 

26.

要运行该页面,单击其右上角的 Run Page 图标 ()。

将光标放在该图标上可以查看该图像

 

27.

现在,您看到的是拒绝您访问该页面的消息而非该页面:
Error Access denied. Administrator Privilege Required.

单击 OK 链接。

将光标放在该图标上可以查看该图像

 

您在创建应用程序时创建了一个 Overview 页面。 现在,您将向该页面中添加内容。 您将添加一个报表和一个条形图。为此,执行以下步骤:

1.

在 Page 栏中,为 Page 输入 1 ,然后单击 Go

将鼠标移到该图标上可以查看该图像

 

2.

在 Regions 部分中,单击 Create 图标 ()。

将鼠标移到该图标上可以查看该图像

 

3.

为 Region Type 选择 Report 选项,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

4.

为 Report Implementation 选择 SQL Report,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

5.

为 Title 输入 Task Status。单击 Next >

将鼠标移到该图标上可以查看该图像

 

6.

为 SQL Query 输入:

SELECT null link,
status,
       count(id) Number_Tasks
FROM tasks
GROUP BY null, status

由于不必有条件地显示该区域,因此现在即可单击 Create Region

将鼠标移到该图标上可以查看该图像

 

7.

要查看该报表,单击右上角的 Run Page 图标 ()。

将鼠标移到该图标上可以查看该图像

 

8.

显示该报表。 您将重新排列列,更改标题,然后关闭行数的显示。 单击页面底部的 Developer Links 中的 Edit Page 1 链接。

将鼠标移到该图标上可以查看该图像

 

9.

在 Regions 部分中,单击 Task Status 左侧的 Q

将鼠标移到该图标上可以查看该图像

 

10.

任务数应显示在状态之前。 要对列进行重新排序,单击 STATUS 列右侧的列序列图标 ()

将鼠标移到该图标上可以查看该图像

 

11.

为 Headings Type 选择 Custom。 这将标题更改为首大写字母。 对于 NUMBER_TASKS,将 Heading 更改为 Number of Tasks。 为 NUMBER_TASKS 选择 right 作为 Column Alignment。 此外,确保为 Pagination Scheme 选择 - No Pagination Selected -。然后单击 Apply Changes

将鼠标移到该图标上可以查看该图像

 

12.

要查看更改,单击右上角的 Run Page 图标 ()。

将鼠标移到该图标上可以查看该图像

 

13.

现在,您已经创建了摘要报表,随后将添加一个条形图。 该条形图将显示在摘要报表的旁边而不是其下方。 为此,可以将新区域置于列 2 中。单击页面底部的 Developer Links 中的 Edit Page 1

将鼠标移到该图标上可以查看该图像

 

14.

在 Regions 部分中,单击 Create 图标 ()。

将鼠标移到该图标上可以查看该图像

 

15.

为 Region Type 选择 Chart 选项,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

16.

为 Chart Type 选择 Bar (HTML) 选项,然后单击 Next >

将鼠标移到该图标上可以查看该图像

 

17.

为 Title 输入 Open Issues by Assignee。 从 Column 下拉列表中,选择 2。单击 Next >

将鼠标移到该图标上可以查看该图像

 

18.

为 Enter SQL Query 输入:

SELECT null link,
       nvl(assigned_to,'unassigned') label,
       count(id) Number_Tasks
FROM tasks
WHERE status = 'open'
GROUP BY null, assigned_to

Include in summary 区域中,取消选择 Axis Number of data points 复选框。 这将使得只有 Sum of all values 显示在条形图的底部。

由于不必有条件地显示该区域,因此现在即可单击 Create Region

将鼠标移到该图标上可以查看该图像

 

19.

要查看包含这两个条形图的已修改的 Overview 页面,单击右上角的 Run Page 图标 ()。

将鼠标移到该图标上可以查看该图像

 

20.

现在显示报表和条形图。 您这就构建了一个完全正常运行的应用程序。

将鼠标移到该图标上可以查看该图像

 

 

在本教程中,您学习了如何执行下列任务:

创建和修改表
创建应用程序
添加报表
添加并编辑主/从表单
应用新主题
创建用户并限制用户的访问权限
向页面中添加内容

返回主题列表

返回主题列表

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