本教程介绍了如何使用 Oracle HTML DB 快速创建应用程序。
大约 1 个小时
本教程将讨论下列主题:
| 概述 | ||
| 前提条件 | ||
| 从电子表格创建表 | ||
| 添加主表 | ||
| 修改表 | ||
| 添加报表 | ||
| 启用列标题排序 | ||
| 添加主/从表单 | ||
| 编辑应用程序对象 | ||
| 应用新主题 | ||
| 创建用户 | ||
| 限制访问权限 | ||
| 向 Overview 页面中添加内容 | ||
| 总结 | ||
| 相关信息 | ||
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
HTML DB 提供了一个声明式开发框架,用于创建以数据库为中心的 Web 应用程序。使用在线服务完成开发。通过下载一个运行时模块和应用程序并将该应用程序运行在您的企业内部来完成部署。
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)
|
要从电子表格中加载本教程的数据,执行下列步骤:
要根据 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
|
| 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
|
| 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
|
| 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,,然后单击
|
| 7. |
还需要添加 TASKS 表中的列。 从 Table/View Name 下拉列表中,选择 TASKS。
|
| 8. |
从 Select Columns 列表中,选择除 ID 和 PROJECT_ID 外的所有列,然后单击
|
| 9. |
单击 Next >。
|
| 10. |
Join Condition 应默认设置为: "PROJECTS"."PROJECT_ID" = "TASKS"."PROJECT_ID" 单击 Next >。
|
| 11. |
保留 Report Attributes 的默认值,然后单击 Create Region。
|
| 12. |
要运行该页面,单击该页面右上角的 Run Page 图标 (
|
| 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,因此显示 < Previous 和 Next > 按钮。它们将帮助您滚动浏览项目。这两个按钮不提交更改。如果更改了数据,则需要在滚动前借助 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 链接 (
|
||||||||
| 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 输入以下信息:
单击 Create Static LOV。
|
||||||||
| 13. |
要返回到该页面,单击右上角的 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 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
|
| 5. |
输入如下信息,然后单击 Create and Create Another。 User Name:Susie.Parker
|
| 6. |
输入如下信息,然后单击 Create User。 User Name:John.Bell
|
| 7. |
请注意,已创建了三个用户。现在,您将设置应用程序的管理员访问权限。 单击路径式导航栏菜单中的 Workspace OBE 链接。
|
很多时候,我们需要限制对应用程序的访问权限。为此,执行以下步骤:
| 1. | 设置用户组。 |
| 2. | 创建授权方案。 |
| 3. | 应用授权方案。 |
您已经创建了 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
|
| 5. |
切换回 HTML DB 窗口。 单击 Data 文本框,并按 [Ctrl] + [V] 粘贴用户列表。单击 Next >。
|
| 6. |
为 Table Name 输入 ADMINS。单击 Next >。
|
| 7. |
保留 Primary Key 详细信息的默认值。 要导入数据,单击 Import Data
|
| 8. |
要返回到应用程序详细信息,单击 Application Builder 选项卡。
|
现在,您用应用程序管理员列表填充了该表,下面您将创建一个授权方案以基于管理员表验证当前用户。 如果在该表中指定了该用户,则授权方案将成功。 否则,它将失败。
要创建授权方案,执行以下步骤:
| 1. |
单击 Shared Components。
|
| 2. |
在 Security 部分中,单击 Authorization 链接。
|
| 3. |
要开始创建新授权方案,单击 Create >。
|
| 4. |
由于您从头创建方案,因此保留 Creation Method 的默认值,然后单击 Next >。
|
| 5. |
输入以下信息,然后向下滚动到 Identify error message displayed when scheme violated 部分。
Name: ADMIN
|
| 6. |
输入以下信息,然后向上滚动到页面顶部。 Identify error message displayed when scheme violated:
|
| 7. |
单击 Create。
|
创建授权方案后,您现在将该方案与 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 链接。
|
| 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 按键盘上的 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. |
现在,您看到的是拒绝您访问该页面的消息而非该页面: 单击 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. |
现在显示报表和条形图。 您这就构建了一个完全正常运行的应用程序。
|
在本教程中,您学习了如何执行下列任务:
| 创建和修改表 | ||
| 创建应用程序 | ||
| 添加报表 | ||
| 添加并编辑主/从表单 | ||
| 应用新主题 | ||
| 创建用户并限制用户的访问权限 | ||
| 向页面中添加内容 | ||
| 要了解关于 Oracle 数据库 10g 的更多信息,请参考 OTN 网站上的其他 OBE。 | ||
| 有关本 OBE 教程的问题,请在 OBE Discussion Forum 上发布查询。 | ||