使用 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.

完成了安装并配置 Oracle HTML DB 1.6 教程,或可以访问已安装的 HTML DB 1.6 安装程序。

2.

htmldb.zip 下载并解压缩到您的工作目录中。

返回主题列表

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

1.

输入以下 URL 以登录到 HTML DB。

http://<host name>: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.

在数据库浏览器部分,单击 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 验证创建了新应用程序。您需要使用一对用户名/密码登录,该用户名/密码对必须有权访问拥有此应用程序的工作区。使用您的开发帐号 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 表和 PROJECT 表的 PROJECT_NAME 列中获取的。所有代码都由 Oracle HTML DB 自动生成。要显示下 15 行,单击报表底部的 Next 链接。

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

在报表中,Tasks 是以创建它们的顺序显示的。我们可以启用基于列标题的排序,以让用户可以决定排序哪些列。请执行以下步骤:

1.

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

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

2.

在 Regions 部分中,Tasks 的左侧,单击 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 Dates 最先显示来排序的。要以降序排序,再次单击 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,但由于这是一个系统生成的没有实际含义的主键,因此按项目的字母顺序滚动要更好一些。默认包含主报表。最好能够创建一个显示 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 Row Navigation,因此显示 < PreviousNext > 按钮。它们将帮助您滚动浏览项目。这两个按钮不提交更改。如果更改了数据,则需要在滚动前借助于 Apply Changes 按钮应用更改。

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

编辑应用对象

虽然此主/从表单功能齐全,但外观可以进一步提高。有两种方法您可以用来编辑显示在页面上的对象。第一种是使用页面底部开发人员链接中的 Show Edit Links。 这会在每个可以被编辑的项目旁边显示一个图标,并且当被选中时将显示一个弹出窗口让您做修改。这种方法可以被用于大多数项目类型,但是不能用于报表属性。第二种方法是通过在开发人员链接中选择 Edit Page 2 返回到 Application Builder Page Definition。

您将:

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

改变日期格式

将 Status 域改变为一个下拉列表

要实现所有这些,请执行以下步骤:

1.

在页面底部的开发人员链接中单击 Show Edit Links。

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

2.

单击 Project 域右侧的 Edit 链接 ( )。
(警告:小心不要选择 Project 域上方的那个。那一个是用于 ID 列的,它隐藏起来没有显示,但仍然可以使用 Edit 链接来编辑。

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

3.

您现在将看到一个有 P4_PROJECT 细节的弹出窗口。在 Page Item 部分下面,从 Display As 下拉列表中选择 Text Field 选项。单击页面顶端的 Element 链接。

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

4.

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

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

5.

要关闭编辑窗口,单击 Cancel。

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

6.

更改已经被应用到应用程序,但要看到它们,您需要刷新您的页面。首先,通过单击页面底部的开发人员链接中的 Hide Edit Links 关闭 Edit Links。

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

7.

要刷新页面,单击浏览器标准工具条上的 Reload 按钮。根据浏览器不同,此按钮也有差异。

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

8.

现在,您将编辑此页面以更改 Tasks 报表。单击页面底部的开发人员链接中的 Edit Page 4 链接。

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

9.

在您编辑报表前,您需要创建 Named LOV,它将被 Status 域引用。通过作为 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.

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

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

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 库中选择一个主题来创建一个新主题。要应用一个新主题,执行下列步骤:

1.

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

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

2.

单击 Shared Components。

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

3.

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

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

4.

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

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

5.

因为您正在使用一个来自 HTML DB 库的主题,保留默认值。单击 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.

您会注意到应用程序的整个外观都已经改变了。选项卡已经移动到了右侧。配色方案已经改变。在底部的开发人员链接中单击 Edit Application

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

如前面提到的,这个应用程序实用 HTML DB 验证。要创建新用户,您可以使用 Oracle HTML DB 中已经有的功能。您将创建新用户,然后限制某些人对应用程序的某些区域的访问权限。请执行以下步骤:

1.

单击面包屑菜单中的 Workspace OBE 链接。

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

2.

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

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

3.

单击 Create New User

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

4.

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

用户名:Brad.Knight
密码:welcome1
电子邮件地址:brad.knight@oracle.com
名:Brad
姓:Knight
默认模式:OBE

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

5.

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

用户名:Susie.Parker
密码:welcome1
电子邮件地址:susie.parker@oracle.com
名:Susie
姓:Parker
默认模式:OBE

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

6.

输入如下信息,单击 Create User

用户名:John.Bell
密码:welcome1
电子邮件地址:john.bell@oracle.com
名:John
姓:Bell
默认模式:OBE

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

7.

您会注意到有三个用户已经被创建。现在您将设置管理员对应用程序的访问权限。单击面包屑菜单中的 Workspace OBE 链接。

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

限制访问权限

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

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

1. 设置一个用户组

您已经创建了三个叫做 Brad、Susie 和 John 的用户。在这之中,Brad 和 Susie 是管理员,也是唯一能够访问主/从报表的人。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
表达式 1:
SELECT '1'
FROM admins
WHERE userid = :APP_USER

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

6.

输入下列内容,然后向上滚动到页面顶端。

当方案违反时,识别错误信息显示:
Access deniedAdministrator Privilege Required.

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

7.

单击 Create

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

返回主题

3. 应用授权方案

在您的授权方案创建好后,你现在要将此方案与 Project 报表的 ID (Edit) 列关联在一起。接着您还要将此方案与 Create 按钮关联,最后与主/从页面本身关联。这是为了防止一些人试图通过更改 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.

要浏览返回页面定义,单击 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.

单击 Projects 选项卡。

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

20.

edit 图标和 Create 按钮又不显示了。最后要做的事是防止对主/从页面的直接访问。现在您可以更改您的 URL 并直接访问它。

您将注意到您的 URL,以 fp=… 结尾。在其后跟着的是应用程序号、页面号和会话号。您可以手动更改此页面号为 3 或 4 而且仍然可以访问主/从页面。

在 URL 中将页面号更改为 3 或 4。

示例 url …/f p=120:3:2101953412249296357::NO
更改为 …/f p=120:4:2101953412249296357::NO

按下键盘上的 ENTER 键。

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

21.

您会发现您现在在 Projects/Tasks 页面,准备好输入一个新项目并为其创建任务。但是理论上,因为 OBE 用户不是管理员,这个页面应该对他或她隐藏。

要防止这一点,您需要将授权方案与主/从页面本身关联起来,而不仅仅是它的访问机制。

在开发人员链接上单击 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 链接。

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

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

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.

报表显示出来了。您需要重新排列列、更改标题并关闭行号显示。在页面底部单击开发人员链接中的 Edit Page 1 链接。

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

9.

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

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

10.

任务号应该在状态之前显示。要重排这些列,单击 STATUS 列右侧的更改列顺序图标 ()。

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

11.

为 Headings Type 选择 Custom。这会将标题改为 initcap。对于 NUMBER_TASKS,将 Heading 更改为 Number of Tasks。为 NUMBER_TASKS 的 Column Alignment 选择 right。同时,确保为 Pagination Scheme 选择了 - No Pagination Selected -。单击 Apply Changes

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

12.

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

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

13.

现在您有了摘要报表,还要添加一个条形图。此图将在摘要报表旁边显示,而不是下面。您可以通过在列 2 中放置新的区域来实现。单击页面底部开发人员链接中的 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.

要查看带有两个图的修改后的概述页面,单击右上方的 Run Page 图标 ( )。

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

20.

报表和图现在都显示出来了。您刚刚建立了一个功能齐全的应用程序。

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

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

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

返回主题列表

返回主题列表

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