没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
下载
第6章 先进的窗口和菜单
一旦了解了Oracle Developer的Form Builder组件的处理过程,就得到了一种结构,可以
在这种结构中扩展表单应用程序的范围。另外有两种要用 Oracle Developer研究的问题,可以
使你设计大规模完整的应用程序的能力更加圆满。这就是窗口和菜单。用 Form Builder的这些
特性来设计,只须很少或完全不用编程。
在第4章中,实验模型的表单只在单个窗口上呈现单个画布。本章讲述如何利用多个画布
把应用程序扩展到多个窗口,这些特性为提供建立对话框、工具条和警报的能力。
在第4章中,应用程序的缺省菜单不包括在用户可以利用的范围中。用户可以建立自己定
制的菜单,把表单的报表、图形或想从表单中调用的无论什么其他的东西结合起来。
6.1 窗口
在Form Builder中制作窗口意味着要作两个事情之一:创建窗口的内容或创建和管理窗口
本身。下面的讨论扩展第 4章的内容,讲述如何充分利用 Oracle Developer画布和窗口在应用
程序的设计中起重要作用。
6.1.1 描绘画布
回想在第2章和第4章中用画布来显示块和项,在 Layout Editor中编辑画布,画布成了建立
表单中所做的许多工具的基础。那么确切地说,画布是什么?
画布是摆放样本文本和项目的背景。每个项目在它们的 Property Palette上都准确地涉及一
个画布。可以在不同的画布之间分配块的各个项目。
画布并不是孤立地作为一个界面对象。要观看画布和它的项,必须在窗口上显示画布。
Oracle Developer使这些独立的对象为你建立窗口,从而为画布提供一个视图:包括部分画布
图6-1 Ledger应用程序的一个窗口
或全部画布的长方形。例如图 6 - 1 显示L e d g e r应用程序的一个窗口,这个窗口显示了基础画布
的一大半。可以通过窗口看到的这部分画布叫视图。窗口有水平滚动条和垂直滚动条,可以
通过滚动画布来观看视图。
这样把显示方式和显示内容之间的工作划分成独立但是相当的两部分工作,使建立表单
与显示它们的窗口的大小无关,这样作加大了视觉范围但却缩小了界面。你会发现用户对于
需要不断滚动通过画布的界面不满意。好的界面应在所有的时间显示画布上的所有域和项。
但是,就像生活中的大多数状况一样,与能够同时显示项比较,有更多的需要。窗口和画布
提供了多方面的适应性。
1. 选择适当的背景
为了得到多方面的适应性,首先要考虑画布所使用的类型。某些画布不只是可以在窗口
内滚动,还可以做更多的事情。有四种类型的画布:
■ 内容画布( C o n t e n t ) :包含窗口“内容”的画布,每个窗口至少有一个内容画布,而且
通常只有一个。
■ 层叠画布( S t a c k e d ) :在另一个画布上面显示的画布,通常包括和基础的内容画布上的
项分开的组内的一些项。
■ 标签画布( Ta b b e d ):一种内容画布,它把窗口的内容分成指定的页,用户单击画布的标
签页观看在那个标签页上的项目内容。
■ 工具条 ( To o l b a r ) :包含工具图标的画布。分别在窗口的顶部或左边上的水平和垂直条
上显示这些图标按钮。
2. 填充画布
为了建立一个画布,首先要创建一个块,
就像在第4章中说明的那样。Oracle Developer
用在New Block窗口或Layout Wi z a r d 中指定的
名字自动创建内容画布。也可以在新表单中启
动Layout Editor得到缺省的内容画布。否则,
必须在Object Navigator中用通常的方法,通
过选择C a n v a s e s 结点并单击 C r e a t 工具来创建
画布。可以在画布的属性设置板上设置 C a n v a s
Ty p e属性(缺省设置是C o n t e n t ) ,显示画布的窗
口。像图6 - 2显示的那样。
要查看Layout Editor中的画布,双击这个
对象的Object Navigator图标。第4章讲述过如
何利用Layout Editor把项目和样本文本放到画
布上,这里唯一的区别是由 s c r a t c h ( 擦除)建立
画布,而不是用创建块时 Oracle Developer产生的一组项目的画布去工作。可以在 O b j e c t
N a v i g a t o r 中创建一个项,然后把这个项的 C a n v a s 属性设置为新画布。也可以在 Layout Editor
中创建项目,并通过它的Property Palette改变这个项目的属性。可以创建第二个画布,并通过
改变已经存在的项目的 C a n v a s属性把项目从基础画布移动到它的上面。如果你把这个属性设
置为N U L L,那么这个项将不出现在画布上,这可以定义一个项目不显示它的值。
第6章 先进的窗口和菜单 1 1 7
下载
图6-2 画布窗口
可以通过View | Show Canvas菜单控制画布背景的显示。当 Layout Editor有效时,可以得
到这个菜单项。如果将这个菜单项设置为 o f f,那么将直接在项目下的背景上看到网格。如果
把它设置为o n ,那么将看到没有网格的画布。其次,如果想重新决定画布的大小,可以通过
拉动画布右下角的选择手柄来做。要了解这个过程,可接通 Viaw |Show Canvas菜单项,然后
在画布的右面或底部边缘上单击。也可以改变画布属性设置板 Wi d t h属性和H e i g h t 属性。
使用View | Show Vi e w菜单可以观看视图。如果在画布的窗口上显示画布,这个视图就是
所看到的画布的区域。 Layout Editor把视图显示为带有手柄的一个黑色的长方形,可以利用
这些手柄来重定缺省窗口的大小,也可以通过改变窗口 Property Palette上的窗口的 Wi d t h 和
H e i g h t 来改变这个尺寸。通常,这项工作是把窗口的宽度和高度设置得和内容画布的 Wi d t h 和
H e i g h t相同,这样可以使窗口正好包围画布。也可以通过拉动这个长方形,或通过改变画布
的X | Y Position属性来移动视图,这样,可以把画布定位在窗口内的某个位置上而不是在它
的左上角。
注意 如果是层叠画布,则在画布的边界有另外的视图。可以在层叠画布上放一个滚动
条并在窗口内滚动它。“层叠画布”小节会给出更多的细节。
可以利用所有这些特性来放置内部项和它们的画布,在显示它们的窗口中取得最好的效
果。例如,通常希望窗口紧紧地包围着画布,而且希望给出的画布的项目布局尽可能小。如
果可能,希望用户不用滚动就可以看到窗口内的所有的项,使表单使用容易些。为此,重新
把画布的尺寸定为正好包围项的布局,然后把画布的 Wi d t h 属性和H e i g h t 属性拷贝为对应的窗
口的Wi d t h 和H e i g h t 属性。这样,就把窗口的尺寸精确地定为画布的尺寸了。
用户可以通过选择一个边缘并拉动它来重定画布的尺寸,这就是说,可以为了屏幕显示
而调整窗口和画布的大小。可以确定一个初始窗口尺寸,从画布的一边滚动到另一边,以适
合较小的视频显示。而用户可以用高分辨显示重定画布的尺寸,使得可以同时看见每一样东
西。
通过选择画布并单击 Delete 工具,可以删除Object Navigator上的画布。通过把它们的画
布属性设置为N U L L ,Oracle Developer可以清除任何与被删除画布有关的项。
在显示窗口时,自动显示窗口的基础画布。可以通过触发器中的 S h o w _ Vi e w和H i d e _ Vi e w
内部子程序控制其他画布的显示。
3. 层叠画布
层叠画布允许产生几个特殊的效果:
■ 可以在背景的独立簇中创建一组按钮或其他项,用图形把簇和基础内容画布区分开。
■ 可以创建可分离和可重用的项目组,比如按钮组。通过复制,可以在不同的画布上再
使用(第1 0 章讲述细节)。
■ 可以有计划地隐藏或显示层叠画布,创建一个当用户执行某个动作时自动变化的视图。
■ 可以在多个动态变入变出的内容画布的上面显示不变化的文本和域。有一种方法,不
用创建很多个项就可以有重复的元素。
■ 在滚动基础的内容画布查看其他项目时,可以让在多记录显示中的一组项目留在屏幕
上。例如,当通过滚动检查其余列时,可以在改变的列中显示主关键字,使得不管在
画布的什么地方总可以看到主关键字,这个特殊效果就像电子表格中的多显示视图一
样。
1 1 8 第二部分 Oracle Developer教程
下载
在主-从表单中,当在合适的窗口上同时要看的项太多时,可以使用一个技巧,但是可能
帮助不会太大。例如,如果目标显示平台是一个 6 4 0 ×480 VGA的Wi n d o w s 显示器,而表单和
L e d g e r 表单类似,那么,将没有办法让用户可以同时看见具有全部的域的记录。 Wi n d o w s 采
用滚动可以解决这个问题。把应用程序改为显示面向人员的 L e d g e r 内容,显示给定的人员的
所有L e d g e r 项,个人的信息在应用程序的顶部,而在它下面显示 L e d g e r信息多个项的多个记
录。如果有滚动,则当滚动屏幕时,就会丢失个人的信息。而滚动层叠画布可以帮助应付这
种情况。
1) 单击Create 工具,创建P e r s o n数据块,利用Data Block Wi z a r d 并且只显示N a m e 列。在
Layout Wi z a r d中创建一个新的C o n t e n t画布,并使数据块的类型为 F o r m。
2) 在Object Navigator中选择P e r s o n数据块后,在C r e a t e工具上单击,创建L e d g e r数据块。
利用Data Block Wi z a r d添加所有的L e d g e r列和P e r s o n . N a m e查找列。
3 ) 在L e d g e r 数据块的 Layout Wi z a r d 中创建一个画布作为新 C a n v a s ,并把Type 设置为
Stacked (层叠的),把数据块类型设置为 Tabular ,并用滚动条使它包含5行数据。
4) 把新表单作为P e r s o n _ L e d g e r保存。
5) 导航到Object Navigator中的P e r s o n块R e l a t i o n结点上和(Person_Ledger | Data Blocks |
Person | Relations)并单击C r e a t e工具创建主-从关系。像在第4章那样根据L e d g e r和P e r s o n之间
的对象关系创建关系。
6) 在Object Navigator结点上双击,打开Layout Editor中的P e r s o n 画布视图。
7) 为了帮助看清画布之间的关系,选择
View | Stacked Vi e w s 菜单项。显示S t a c k e d /
Tab Canvases对话框(见图6 - 3 )。提示选择要显
示的层叠画布。这个对话框列出所有的层叠
画布并让你用一种不平常的方法接通和判断
它们。代替用顺序的单击或双击操作不断地
点击画布,用单击画布来进行选择画布,用
C T R L -单击操作来淘汰画布。就是说,在层叠
画布名字上单击来显示它,并在它上面C T R L -
单击操作从显示中除去它。
8) 单击O K ,在Layout Editor中显示或删
除层叠画布。对于 P e r s o n - L e d g e r表单,所得到的 Layout Editor显示出的L e d g e r 块完全遮住了
P e r s o n 块。
层叠画布视图是画布的可见部分,虽然内容画布的视图与窗口的边界有关,但层叠画布
的视图与窗口没有关系。可以通过在 Object Navigator中选择画布,查看层叠画布的边界,然
后显示Layout Editor。在层叠画布的边界上可以看到控制尺寸的手柄,而且在内容画布的标
尺变成灰色时,画布的标尺是活动的。拖动手柄改变视图的大小以显示更多或更少的层叠画
布。
定位层叠画布最容易的方法是在画布的 Property Palette中设置视孔坐标。
9) 在Object Navigator中选择L e d g e r画布。
10) 通过选择Tools | Property Palette菜单项显示弹出菜单上的 Property Palette,或通过右
第6章 先进的窗口和菜单 1 1 9
下载
图6-3 Stacked/Tab Canvases对话框
击画布对象,显示属性调色板。
11) 找出Viewport header和Viewport Position两个属性。把Y位置设置为0 . 8 英寸,把层叠
视图放在Name 项的下面。图6 - 4 显示了在Layout Editor中的结果,可以看到利用明暗区别的
层叠画布标尺。
注意 不要混淆出现在P h y s i c a l属性组上Viewport Y Position和C a n v a s属性上的Vi e w p o r t
Y Position。后者定位观测孔中的层叠画布,不是观测孔本身。这是让你第一次显示层
叠画布时,把滚动画布放置在不是最左边或顶部的其他地方。也可以在Layout Editor中
直接拉动层叠画布视图,而不通过它的属性来设置它。有时候层叠画布的边界看不见,
而且要找到它来拖动可能有点困难,可以在画布背景单击,然后寻找重定尺寸手柄,
再单击定尺寸手柄并保持拉到某处。我通常喜欢拖动画布,直到它接近我希望的地方
为止,然后通过设置属性再准确地定位它。
图6-4 在内容画布内显示的层叠画布的Layout Editor
12) 把Show Horizontal Scroll Bar(显示水平滚动条)属性设置为Y E S ,使水平滚动条有效。
这个滚动条出现在视图底部边缘的下面,所以必须适当地确定视图的大小,使滚动条位
于所希望的地方。在我们的例子中,这个视图将扩大到刚好在第五个 L e d g e r记录的最后一行
的底部,滚动条正好出现在记录块的下面。在 Layout Editor中看到的滚动条是内容画布的而
不是层叠画布的。
13) 最后,必须通过Layout Editor边界或通过画布和窗口的 Property Palettes,确定内容画
布的尺寸,使它包含它自己的项和层叠画布,必须确定窗口的尺寸使它包含内容画布。
运行这个例子所得的显示展示在图 6 - 5中。
注意,在图6 - 5 中有两个水平滚动条,下面一个是和窗口有关的滚动条,只有画布扩展超
出了窗口时,这个滚动条才出现。在这里是刚超出一点点。上面的滚动条和层叠 L e d g e r画布
有关,可以利用它在A m o u n t域记录滚动条上滚动。
1 2 0 第二部分 Oracle Developer教程
下载
剩余31页未读,继续阅读
资源评论
Mmnnnbb123
- 粉丝: 692
- 资源: 8万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- elasticsearch-spring-boot-starter.7z
- Anti-Cheat Toolkit 2023 v2023.2.5
- 使用堆栈数据结构解迷宫问题
- SoftFloat-3e.zip
- Easy Save - 3.5.6
- 基于tensorflow的目标检测系统源码+部署教程文档+全部数据+训练好的模型(高分项目)
- 基于Python皮肤电信号的情绪识别算法源码+模型+PPT+详细文档+全部数据资料.zip
- 基于Python皮肤电信号的情绪识别算法源码+模型+PPT+详细文档+全部数据资料.zip
- 区块链毕业设计 基于区块链的慈善募捐平台的智能合约源码+详细文档+全部资料(高分项目).zip
- 区块链毕业设计 基于区块链的慈善募捐平台的智能合约源码+详细文档+全部资料(高分项目).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功