首页 ORACLEFORM培训资料

ORACLEFORM培训资料

举报
开通vip

ORACLEFORM培训资料PAGE1前言OracleForms是OracleDeveloper中的一个主要产品,是一个在Windows环境下开发和运行的基于表格的开发工具。Forms一般翻译成“表格”,但与纸上的表格有很大的区别,纸上的表格是事先画好的、静态的,只能用一次。而Forms是动态的,不但可修改,而且可完成更多工作,如:查询、分类、统计和效验等。Forms是一个允许用户添加、修改、删除和查询数据库记录的用户界面。利用Forms可以快速开发基于表格的多种应用程序,用于表示和操纵数据库的数据。Forms已经将Oracle数据库直...

ORACLEFORM培训资料
PAGE1前言OracleForms是OracleDeveloper中的一个主要产品,是一个在Windows环境下开发和运行的基于表格的开发工具。Forms一般 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 成“表格”,但与纸上的表格有很大的区别,纸上的表格是事先画好的、静态的,只能用一次。而Forms是动态的,不但可修改,而且可完成更多工作,如:查询、分类、统计和效验等。Forms是一个允许用户添加、修改、删除和查询数据库记录的用户界面。利用Forms可以快速开发基于表格的多种应用程序,用于表示和操纵数据库的数据。Forms已经将Oracle数据库直接与应用程序开发软件捆绑在一起,使开发变的容易、快速。Forms运行在Windows环境下,具有非常友好的图形界面,提供丰富的图形处理功能和对象编辑工具,为应用程序开发和维护提提供许多方便。Forms还可以处理照片、图像等,为应用提供更复杂界面。Forms完全使用屏幕图形窗口和工具,操作非常直接方便。目录Form基本概念什么是FormForm模块的结构Form模块的层次结构Form模块文件组成Form的工作方式Form应用模块的生成运行Form模块Form工作模式查询数据插入、更新和删除数据提交和回滚事务Form设计工具Form界面设计对象导航器布局编辑器属性选项板其他Form设计工具基本Form设计块和项开发Form的一般步骤建立基表块建立主从块建立控制块常用界面项的设计建立文本项建立复选框建立列表项建立单选组建立显示项建立图像项建立按钮其他常用功能设计建立值列表(LOV)和记录组建立编辑器建立报警器窗口和画布视图窗口和画布视图的分类建立窗口建立内容画布视图建立堆叠画布视图建立工具条画布视图建立标签画布视图Form中的触发器Form中的触发器的基本概念Form中的触发器类型建立触发器触发器作用范围触发器编程编写触发器内部子程序验证输入项触发器非输入项触发器使用变量和参数定制菜单菜单编辑器建立菜单模块Form基本概念本章介绍有关Form的一些基本概念,包括以下内容:什么是Form。Form模块的结构。Form模块的层次结构。1.1什么是FormForm在英文中是“表格”之意,这里有“格式”之意,但这些表述并不准确。在本书中我们将直接使用Form。Form Builder是OracleDeveloper/2000的主要产品,利用FormBuilder可以快速开发基于Form的多种应用程序,用于表示和操纵数据。具体地说,利用Form可以:利用各种界面项查询、插入、更新和删除数据。使用文本和图像控件显示数据。通过使用窗口和数据库事务来控制Form。直接利用OracleGraphics和OLE2(对象连接与嵌入工具)应用功能。集成菜单可以实现综合应用功能。能够直接发送数据到OracleReports。归根到底,Form应用模块提供了一个存取数据库(包括查询、插入、修改和删除数据库)的界面。Form应用模块由三类模块(文件)组成Form(格式)模块:表示用户可看到并能操纵的对象和数据的格式(Form),Form中的数据项(item)可组成记录。Menu(菜单)模块:包含层次菜单,用户选择单项以执行所需命令。Library(库)模块:PL/SQL程序单元(programunit)的集合。其中,Form模块是基本对象,而菜单模块通常要连到Form模块,包含程序单元的库模块连到Form模块和菜单模块,才能使得所定义的菜单模块和库模块有效。开发Form应用模块一般需要三个部件:设计部件(FormBuilder):是一个设计和存储Form、Menu、Library模块的应用开发环境。在设计部件中建立的模块以二进制格式存放,也可以存在文件或数据库中,并且可以在各种平台上移植。以上三个模块的文件名的后缀分别为:.fmb、.mmb和.pll。另外,开发人员在FormBuilder中可以执行编译部件和运行部件的相应功能。而且在设计部件中还可以实现模块存取格式在二进制和文本格式之间的转换。模块的文本格式描述了模块的对象和节点,它是人工可读的文本文件,其文件名的后缀分别为.fmt、.mmt和.pld。编译部件(FormCompiler):读取在设计部件产生的模块定义文件,生成可执行的运行文件。三种模块的可执行文件的文件名后缀为.fmx、.mmx和.pll。运行部件(FormsRuntime):From应用模块的运行环境。主要是指用来运行由编译部件编译生成的可执行应用模块的工具。必须注意,只有Form模块可以独立运行。这里需要注意的是,二进制的模块定义文件是可以移植的,但由编译部件生成的二进制可执行文件是不可以移植的。1.2Form模块的结构Form模块是Form应用的主要组成部分,它可由许多不同类型的对象(Object)组成。我们首先阐述下面三个主要对象:项(Item):用以表示数据,并根据项类型与用户交互从逻辑上组成块(Blocks),安排在可见的画布(Canvas)上。块(Block):是逻辑上属于块,块中的项在逻辑上相关联,例如它们对应同一个数据库表的一行,或当用户在Form中移动时须处在同一个导航循环。需要注意的是,块中的项不需要被安排在一起,即它们分别安排在多个画布和窗口上。画布(Canvas):是一个可视化的设计界面,Form模块的可见对象被安置在画布上。一个Form模块可以有好几个画布。缺省情况下,Form模块中的所有画布被放在同一个窗口内,但某一时刻时只能看到一个画布。要想同时看到多个画布,可以将画布按排在不同的窗口内。图1-1给出了项、块和画布之间的关系。Form模块是有层次结构的,在运行Form时,要想在Form应用中实现导航,可以利用Form中的项和块,而不能选用画布。块中的每个项都有顺序,而Form中的块也有相应的顺序。当用户想从块中的某一项移动到块中的下一个项时,焦点会落在下一项上,若下一项在另一个画布上,系统会自动显示这一画布。类似地,用户想移到下一块或前一块,若该块的第一个项位于另一个画布上,则该画布会自动显示出来。当然,若你已能够看到将要移到的项,Form应用允许你直接用鼠标在其上按一下即可以实现导航,也可以在应用程序中实现导航。1.3Form模块的层次结构在Form模块中可创建多种类型的对象。图2-2是Form模块的层次结构图。下面对Form模块中的对象分别予以描述。窗口(Window):窗口包含画布视图。一屏可显示几个窗口,这由屏幕大小和各窗口的位置及窗口的大小决定。画布视图(Canvas_View):是一个放置可见对象的界面,所有对象都放在画布上。一个画布可包含(图文)文本和图形,但都是静态信息,用户不能与之交互。一个Form模块可有多个画布,画布上有项。项(Item):项是Form中的最基本的单位,它是块的成员。项按功能可以组成记录,能显示信息并可以与用户交互数据。常用来执行对数据库的操作各维护。块(Block):块是Form模块中一些界面项(如文本项、列表项等)的逻辑组合,它属于Form模块。需要注意的是,块中的项不需要从物理上存放在一起,它们可以分别安排在多个画布视图和窗口上。触发器(Trigger):由一个事件可以引起其执行的PL/SQL块。触发器依据其作用范围可发为Form级触发器、块级触发器和项级触发器。用户命名程序单元(User_namedprogramunit):它是用户命名的过程(procedure)、 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 (Function)或包(package),它属于Form模块。其他对象:包括报警器(Alert)、参数(Parameter)、记录组(RecordGroup)等。它们都属于Form模块。第2章Form的工作方式本章介绍有关Form工作的一些基本情况,包括一下内容:如何生成Form应用模块运行一个Form模块Form工作模式通过Form查询数据库数据插入、更新和删除记录提交和回滚事务2.1Form应用模块的生成前面讲过,Form应用模块共有三类:Form模块:所有对象和代码的集合,包括窗口(Window)、项(Item)、PL/SQL代码块或触发器、存储过程等。用户可用它完成数据查询、删除及修改等操作。菜单模块:PL/SQL过程、子菜单和菜单项命令的集合,提供执行命令的菜单。库模块:PL/SQL过程、函数、包的集合,咱应用中被其他模块调用。可以将Form、Menu、Library三个模块集成为一个完整的应用。例如你可以定义一个菜单模块并把它连到Form模块。类似地,可将库模块连接到菜单模块或库模块,这样,Form模块中的触发器和存储过程可以调用与其相连的库模块中的过程。Form应用模块也可以与OracleDeveloper的其他工具,如Reports报表和Graphics图形工具集成起来。例如设计Form中的按钮可以执行一个Reports报表输出。可见,模块化大大增强了应用设计的灵活性,提高了开发效率。2.1.1建立新的Form模块设计Form模块时可以同时打开好几个Form模块、菜单模块和库模块。当你启动够造部件时,系统自动打开一个新的Form模块,这样可以直接建立Form对象了。如果你不想在缺省Form下工作,而是想打开以存在的模块,那么系统会关闭缺省的新模块,你打开的模块会替代缺省模块。模块可以一.fmb、.mmb、.pll文件格式保存,或保存到数据库中。模块村区设计参数决定从文件系统还是从数据库打开该模块。缺省情况下,模块存取设计的参数为文件系统,表示从文件系统打开该模块。建立新的Form、菜单和库模块的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 在对象导航器中,定位于Form、菜单(Menu)或库(Library)节点,选择对象导航器上的“新建(Create)”工具图标可以新建Form、菜单和库模块。选择“文件(File)”上的“新建(New)”菜单项,然后选择Form、菜单(Menu)、和库(Library)可以新建Form、菜单和库模块。打开以建立的Form、菜单和库模块选择“文件(File)”上的“打开(Open)”菜单项,显示文件或数据库对话窗。选择欲打开的模块。以打开的模块显示在对象导航器的相应节点(Form、Menu、Library)下。2.1.2生成Form模块运行文件在运行一个Form之前,必须根据.Fmb构造文件生成.fmx可运行文件。生成一个Form或菜单(Menu)是会编译还未编译的程序单元,产生可运行文件。当运行前编译(CompileBeforeRun)参数为ON(缺省设置)时,系统会在你执行“程序(Program)”上的“运行(Run)”命令时隐式地编译该Form,通过构造部件或命令行以可以显示编译Form。编译Form时,系统编译还未编译的PL/SQL代码,当有编译错误时会显示错误报警,表示有错误信息,并将终止编译。缺省情况下,编译部件以增量方式编译,即只是编译当前标志为未编译的PL/SQL代码,可以选择“程序(Program)”下的“编译(Compile)“下的”全部(CompiileAll)“菜单项强制进行完全编译。生成Form模块(1)在构造部件中显式生成Form打开Form,若打开的模块多于一个,必须标记欲编译的模块。选择“文件(File)”下的“管理(Administration)”中的“编译(Compile)”菜单项。若编译成功,状态行将显示“模块编译成功(ModuleCompiledSuccessfully)”。构造部件在缺省目录下以与Form同样的名字生成后缀为.fmx的运行文件。(2)在构造部件中运行时编译Form选择“工具(Tools)”下的“优化选项(Options)”菜单项进入选项对话窗。设置运行前编译(CompileBeforeRun)参数为ON(缺省)。标志欲运行的Form模块,选择“程序(Program)”上的“Run”菜单项。构造部件隐式编译并运行该Form。生成菜单(Menu)模块设置Form模块的菜单模块(MenuModule)属性可把定制的菜单模块连到Form上,运行时Form自动调入连接的菜单模块。当然,你必须显示地从菜单构造模块(.mmb)编译一个可执行的菜单运行文件(.mmx)才能成功地运行该Form。运行前编译参数设置为ON,不会生成与Form相连的菜单模块,也就是说,必须单独编译从构造部件编译的菜单。首先打开菜单模块。选择“文件(File)”菜单下的“管理(Administration)”项中的“编译(Compile)”命令,在缺省目录中生成有同样名字并以.Mmx为后缀的运行文件。生成库模块库模块不必显示地生成单独的运行文件。以.pll为后缀的文件库包含构造所需的源代码和运行所需的编译执行代码。要想将一个库连接到一个Form、菜单或另一个库,要求该库以被编译过,并放在缺省运行搜索目录下。在导航器中编译生成库所包含的子程序和包,只要选择“程序(Program)”下的“编译(Compile)”中的“全部(CompileAll)”命令即可。2.1.3设置模块存取设计参数模块存取设计(ModuleAccessDesign)参数决定模块是否保存到文件系统或数据库,以及是否从文件系统或数据库打开。设置模块存取设计参数(1)选择“工具(Tools)”菜单下的“优化选项(Options)”显示参数对话框窗。(2)设置选项访问(ModuleAccessto):文件(File)、数据库(Database)或文件/数据库(File/Database)。选择文件表示模块保存到文件系统并从文件系统打开;选择数据库表示模块保存到数据库并从数据库调入;选择文件/数据库系统显示过滤(Filter)对话窗,由用户定义存放位置(文件系统还是数据库)、打开或保存的模块的类型。该对话窗有两个选项:对象访问(ObjectAccess):决定Form是否在保存或打开模块是显示文件对话窗或数据库对话窗,可以选择数据库或文件系统。显示(Display):决定在保存、打开、改名、删除一个模块时,在文件对话窗或数据库对话窗显示文件还是显示模块。可以选择表格(Form)、菜单(Menu)、PL/SQL程序库、对象库或全部。Form模块两种保存方式的特征比较Form模块两种保存方式的特征比较见表2-1。表2-1Form模块两种保存方式特征比较存到文件系统(.fmb)存到数据库二进制格式文件,日后可以重新打开修改存到基表中,模块的各个部分存到不同基表中,使之在修改时可在设计部件中重新打开文件中各部分可以拷贝到其他Form模块各部分可以拷贝到其他Form模块在不同平台上可以移植在不同平台上可以移植2.1.4保存Form应用模块设计Form时,保存模块可使用下述命令:“文件(File)”菜单上的“保存(Save)”命令:第一次保存模块时,显示文件或数据库对话框,定义模块名字,如果该模块已存在,系统则和提示是否以当前版本覆盖以前的旧版本。“文件(File)”菜单上的“另存为(Saveas)”命令:保留旧版本的模块,以新名字保留新版本模块。根据保存方式不同分别显示文件或数据库对话框。若同时打开多个模块,Form单独记录各个模块的变化,只有当前模块被保存。2.1.5关闭和删除Form应用模块关闭Form应用模块在设计时选择“文件(File)”菜单上的“Save”命令,关闭活动模块,或者在对象导航器中选择模块,并单击工具条山的删除按钮。如果该模块的变化未被保存,Form提醒你在关闭该模块前保存已发生的变化。删除存在数据库中的Form应用模块选择“文件(File)”菜单下的“管理(Administration)”项中的“删除(Delete)”命令进入删除对话框,选择“列表(List)”显示所有模块或在删除域中输入模块的名字。单击“确定(OK)”删除改模块。更改存在数据库中的模块名选择“文件(File)”菜单下的“管理(Administration)”项中的“重命名(Name)”命令进入删除对话框,选择“列表(List)”显示模块或在旧名域处输入欲改名的模块名。在新名域(New)处输入新名字,注意不要包含扩展名。单击“确定(OK)”改名。文件系统模块删除和更名选择相应的文件系统命令删除模块,或更改模块名字。恢复到上次保存的模块选择“文件(File)”菜单上的“回复(Revert)”命令取消上次模块保存以来对模块所作的修改。2.1.6模块文件格式的转换Form模块通常都可以以二进制格式保存和编译。但在构造部件里也可以在二进制和文本格式间转换模块存取格式。如将Form、菜单(Menu)和库(Libray)模块的二进制格式(.frm、.mmb、.pll)转换为文本格式(.fmt,.mmt,.pld)。模块的文本格式文件描述模块的对象和节点,它是可读的文本。模块文件的格式转换的方法如下:选择“文件(File)”菜单下的“管理(Administration)”项中的“转换(Convert)”命令显示转换对话窗。定义欲转换模块的类型和名字以转换方向,即从二进制向文本还是文本向二进制转换。按转换按钮,产生模块的新版本文件,如转换二进制Form(.fmb)到文本(.fmt),会得到.fmt文件以及源文件.fmb。转换是通过调用编译部件来进行的,也可以从命令行或双击生成图标做的这一点。需要注意的是,这样经过的文本文件可以包含一些二进制代码数据(如图形、声音的数据),但它们是字符格式。2.2运行Form模块Form应用模块提供用户存取的数据库信息,用户利用Form检索数据、修改数据并保存修改结果。你可以利用FormBuilder建立Form应用;用户利用Runtime部件运行所设计的应用。但作为Form应用开发者,你也可以交替使用FormBuilder和Runtime部件,开发和 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 、调试应用程序。运行Form主要是为了查看Form界面、Form与用户交互的效果,从而开发处更好的应用程序。可以使用两种方式运行Form应用模块:命令行方式在FormBuilder中运行的方式。注意,菜单模块和库模块不能单独运行,它们只有在设计时与相应的Form相联系没,在运行时由Form自动调入相应的菜单和库模块。用命令行方式运行Form模块在运行执行程序F45RUN后使用合适的参数:F45RUN[module_name][user/password][parameters]如F45RUNsamplescott/tigerstatistics=Yes.有关命令行参数的使用说明见联机帮助。在FormBuilder中运行Form模块在FormBuilder中选择“文件(File)”菜单山的“打开(Open)”命令打开要运行的Form模块。选择“程序(Program)”上的“运行(Run)”菜单。如果运行前生成(GenerateBeforeRun)参数为开(ON),Form会首先产生一个.fmx文件,然后运行该文件,若运行前生成参数为(OFF),Form会在当前模块下寻找一个合适的.fmx文件,然后运行该文件。此外,还可以在FormBuilder中使用图标运行一个Form模块。双击Runform运行图标即可,在对话窗中输入要运行的Form的名字、要连接的数据库及其他可选参数。2.3Form工作模式Form有两种工作模式:正常模式和查询模式。2.3.1查询模式查询模式允许输入查询条件,在该模式下,键盘输入被视为检索数据的条件。在该模式下可以完成以下功能:检索所有记录。使用查询条件检索记录。使用“查询/何处(Query/Where)”对话窗检索记录。使用“查询(Query)”上的“统计符合个数(CoutHits)”得到被检索到的记录数。该模式下不能使用以下功能:退出Form运行。使用某些函数,如Next_Record.插入新记录。更新已有记录。删除记录。进入查询模式选择“查询(Query)”上的“输入(Enter)”;执行查询选择“查询(Query)”上的“执行(Execute)”;终止查询选择“查询(Query)”上的“取消(Cancel)”。也可以在FL/SQL代码中使用Enter_Query、Execute_Query和Cancel_Query命令完成上述操作。2.3.2正常模式一般地,运行Form即进入正常模式,正常模式允许插入和修改数据记录。在该模式下,键盘输入被视为键入新记录或者修改已有记录。在该模式下可以完成以下功能:检索所有记录。插入、修改和删除记录。提交记录。可导航到当前块之外。退出Form运行。该模式下不能使用以下功能:使用查询条件检索记录。使用“查询/何处(Query/Where)”对话窗检索记录。可以使用“查询(Query)”上的“输入(Enter)”和“查询(Query)”上的“取消(Cancel)”在正常模式和查询模式之间进行切换。2.4查询数据利用Form可从数据库中检索数据,但有时需要改进缺省状态的查询功能,以便能查询出所需的某些数据。查询可分两类:非受限查询:查询所有对应查询块的基表列所组成的行。受限查询:查询满足一定条件的对应查询块的基表列所组成的行。2.4.1非受限查询使用非受限查询可以有如下三种方法:选择菜单“查询(Query)”上的“执行(Execute)”项。按“查询(Query)”上的“执行(Execute)”的快捷键[F8]键)。单击执行查询按钮。运用非受限查询访问数据库的过程大致如下:运行Form模块。Form模块运行起来之后,操作界面如图15-1所示。从菜单中选择“查询(Query)”上的“执行(Execute)”项。Form显示查询到的第一条记录。当执行查询时,Form内部会建立查询命令(如select*fromemp)并执行查询。选择“记录(Record)”上的“下一个(Next)”项,Form会显示下一条记录。此时,状态行显示:Count:*2,表示当前显示的是第二条记录。重复使用光标键[Down],可依次看到后面的记录,直到最后一条记录。此时,状态行显示Count:*最后一条记录数。若再按光标键[Down],信息行显示:FRM—40352:lastrowofqueryretrieved.此时应按光标键[Up]可以依次查看前面的记录。例2-1查询EMP表中所有职员的信息。查询职员信息的Form运行起来之后,操作界面如图15-1所示。从菜单中选择“查询(Query)”上的“执行(Execute)”菜单,Form显示第一条职工信息,如图15-2所示。此时状态行显示:记录:1/?则表示查询到多条记录,可以用光标键[Down]来顺序查看下一条记录。需要指出的是,虽然非受限查询能检索到所有基表记录,但由于使用的是单记录块,所以每次只显示一条记录。也可以使用多记录块,使得能同时显示多条记录。操作界面如图15-3所示。图2-2查询所有职员信息图2-3一次显示多条记录2.4.2受限查询使用受限查询的过程一般如下:(1)从菜单选项“查询(Query)”上的“输入(Enter)”进入查询模式。状态行显示:Count:*0ENTERQUERY在需要进行受限查询的有关项上输入查询条件。(2)选择菜单项“查询(Query)”上的“执行(Execute)”运行查询。此时Form内部建立一条与查询条件相关的查询命令,然后执行并显示满足条件的记录。建立查询条件可以采用匹配值、模式匹配和“查询/何处(Query/Where)”对话窗等方式。例2-2查询职员JUN的所有信息。查询职员信息的Form如图2-1所示。查询职员JUN的信息的过程如下:从菜单中选择“查询(Query)”上的“输入(Enter)”,单击职工姓名域,输入“JUN”。从菜单中选择“查询(Query)”上的“执行(Execute)”,Form显示职工名为JUN的职工的信息。状态行显示:记录:1/?则表示查询到多条记录,可以用光标键[Down]来查看下一条记录。1.使用模式匹配的方法查询一般地,在受限查询中,查询条件是与数据库列类型匹配的一个值,此时缺省的条件运算符为“=”。除此之外,还可以使用模式匹配的方法,例如使用某个域的部分值和统配符“—”、“%”、Like来组成查询条件,这几中统配符的含义如下:“—”表示匹配单个字符。“%”表示匹配任意个字符。Like是一种模糊匹配,“—”和“%”隐式包含了Like操作符。例2-3查询姓名以L开头的职员的信息。查询职员信息的Form界面如图15-1所示。查询姓名以L开头的职员的过程如下:从菜单中选择“查询(Query)”上的“输入(Enter)”,单击职工姓名域,输入“L%”。从菜单中选择“查询(Query)”上的“输入(Execute)”,Form显示职员以L开头的职工的信息。此时状态行显示:记录:1/?表示查询到多条记用光标键[Down]可查看职员LIU的信息。2.使用关系运算符查询在查询域中使用关系运算符组合建立查询条件。可以使用的关系运算符包括:>、<、=、>=、<=、<>或!=。例2-4查询工资大于$2000,奖金小于等于$1500的职员的信息。查询职员信息的Form如图15-1所示。查询过程如下:从菜单中选择“查询(Query)”上的“输入(Enter)”,单击薪金域,输入“>2000”,单击奖金域,输入“<=1500”。从菜单中选择“查询(Query)”上的“执行(Execute)”,Form显示符合条件的职工JUN的信息。此时状态行显示:记录:1/?则表示查询到多条记录,用光标键[Down]可查看其他符合条件的职员的信息。3.使用“统计符合个数(CountHits)”菜单项查看检索记录数有时我们可能查看到大量记录,我们希望在查询执行前看看可能有多少条记录会被检索,此时可以用“统计符合个数(CountHits)”菜单项实现此项功能。例2-5使用“统计符合个数(CountHits)”菜单项查看记录数。查询职员信息的Form界面如图15-1所示。查询过程如下:从菜单中选择“查询(Query)”上的“输入(Enter)”,在工作职务域中选择“营销员”。从菜单中选择“查询(Query)”上的“统计符合个数(CountHits)”项,Form在状态行显示有4条记录满足查询条件。4.使用“查询/何处(Query/Where)”对话窗建立复杂查询使用“查询/何处(Query/Where)”对话窗可以建立复杂查询条件,如建立OR(或)条件,对查询结果排序,Form会自动将这些条件和其他条件一起构成一条SELECT语句。使用“查询/何处(Query/Where)”对话窗的步骤如下:从菜单中选择“查询(Query)”上的“输入(Enter)”菜单项。在有关项中输入:冒号后跟唯一字符变量名(以字母开头)表示该项。选择“查询(Query)”上的“输入(Execute)”菜单项,显示“查询/何处(Query/Where)”对话窗。使用“:变量”、SQL语句和逻辑运算符建立查询条件。单击“确定(OK)”,执行查询。例2-6使用“查询/何处(Query/Where)”对话窗查询工资大于$2000,奖金在$1000到$2000之间的职员的信息。查询职员信息的Form如图15-1所示。查询过程如下:从菜单中选择“查询(Query)”上的“输入(Enter)”,单击薪金域,输入“:S”,单击奖金域,输入“:C”。从菜单中选择“查询(Query)”上的“执行(Execute)”,显示“查询/何处(Query/Where)”对话窗。在对话窗中输入“:S>2000AND:Cbetween1000and2000”。如图15-4所示。图15-4“查询/何处(Query/Where)”对话窗单击“确定(OK)”,执行查询。可以检索到符合条件的记录。如果需要根据某域进行排序,如根据工资排序,可在对话窗输入“OrderBy:S”,即可将查询到的数据按工资高低进行排序。需要注意的是,在运行时输入的OrderBy子句,会覆盖设计时定义的OrderBy子句。15.5插入、更新和删除数据前面讲过,对于数据的插入、更新和删除,只能在正常模式下完成。在正常模式下,Form将把在空记录域中的输入视为对数据记录行的插入,将把在被检索的记录上的输入或改动视为更新,而删除一条记录需要通过菜单项来完成。15.5.1插入记录通过Form向数据库中插入一条记录的步骤如下:通过向下滚动光标直到在最后一条记录的后面显示一条空记录,或者选择“记录(Record)”上的“插入(Insert)”菜单以使当前光标处于一条空记录域上。在需要输入数据的项上输入数据。选择“操作(Action)”上的“保存(Save)”菜单将插入的记录行保存到数据库中。例15-7查询职工信息,若不存在职工号为1500的职工,则插入职工1500的信息。运行Form,选择“查询(Query)”上的“输入(Enter)”菜单进入查询模式。单击职工号域,输入“1500”,选择“查询(Query)”上的“执行(Execute)”菜单执行条件查询,此时,状态行会显示没有检索到记录。选择“查询(Query)”上的“取消(Cancel)”菜单,退出查询模式。在职工号域上输入“1500”,在职工姓名域上输入“YAO”,在其他需要输入数据的项上输入数据。选择“操作(Action)”上的“保存(Save)”菜单将该记录保存到数据库中。2.5.2更新记录通过Form对数据库中的某条记录进行更新修改的步骤如下:选择“查询(Query)”上的“执行(Execute)”菜单执行非受限查询检索数据库表中的所有记录。使用光标键[Down]或[Up]滚动记录,选择需要更新的记录。在需要更改的项上输入新值。选择“操作(Action)”上的“保存(Save)”菜单将修改保存到数据库中。例2-8将职工号为1010的职工工资增加到2000。选择“查询(Query)”上的“执行(Execute)”菜单。使用光标键[Down]将光标滚动到职工号为1010的记录上。使用[Tab]键将当前光标停在薪金上,并将其值改为2000。选择“操作(Actioin)”上的“保存(Save)”菜单将修改保存到数据库中。在这里,也可以先在查询模式中使用条件查询,找出需要修改的记录,然后退出查询模式,再对记录进行修改。注意:在修改具有主从关系的记录时,需要保证主从关系不被破坏。2.5.3删除记录通过Form删除数据库中的某条记录的步骤如下:选择“查询(Query)”上的“输入(Enter)”菜单进行查询模式。单击与记录删除条件有关的项(Item),输入查询条件。选择“查询(Query)”上的“执行(Execute)”菜单执行条件查询。选择“查询(Query)”上的“取消(Cancel)”菜单退出查询模式。选择“记录(Record)”上的“删除(Remove)”菜单清除当前记录。选择“操作(Action)”上的“保存(Save)”菜单最终完成从数据库中删除记录。例2-9将职工号为1003的职工从数据库中删除。运行Form,选择“查询(Query)”上的“输入(Enter)”菜单进入查询模式。单击EMPNO项,输入1003,选择“查询(Query)”上的“执行(Execute)”菜单执行条件查询,此时,状态行会显示检索到一条记录。选择“查询(Query)”上的“取消(Cancel)”菜单,退出查询模式.选择“记录(Record)”上的“删除(Remove)”菜单清除当前记录。选择“操作(Actioin)”上的“保存(Save)”菜单将该记录保存到数据库中。此时系统会提示是否真正要从数据库中删除,选择“是(Yes)”按钮即确定删除。这里同样需要注意,在删除具有主从关系的记录时,需保证主从关系不被破坏。关于主从关系块,我们将在第18章进行讲解。2.6提交和回滚事务在使用Form的过程中,用户对数据的任何修改并不立即被反映到数据库中,这些操作只是在Form工作区中完成的,也就是说,Form并不直接与数据库打交道,而是对Form工作区中的数据库表的拷贝进行操作。这样做有两个方面的好处:一是避免错误操作数据,用户可修改工作区中的数据,也可使这些修改作废。如果用户在将改变提交之前作废修改,那么数据库表不会受到任何影响,有利于数据库的数据安全。另一个好处是不必为每次修改去连接数据库,所有的操作均是在本地完成的,一旦需要提交,只须一次性地提交数据库,增加了处理速度和提高了效率。因此,要使插入、修改、删除操作永久生效,用户必须显示地将工作区的内容提交到数据库,提交时可选择“操作(Action)”上的“保存(Save)”菜单项,它执行数据库提交操作。2.6.1提交事务如果想把对Form的修改提交到数据库中,需要选择“操作(Action)”上的“保存(Save)”菜单命令来完成。提交一个事务的过程一般如下:检验数据的合法性。Form顺序导航到每一块,检验每一条记录的所有数据。若每一块的所有数据都合法,则Form所产生的事务被确认为有效。每条记录有一个状态,如New或Changed。Form仅处理从这些状态上可以表明被插入、修改或删除的记录,而那些未被改变的记录不被处理。Form给每一条标志为插入、更新或删除的记录发布一个合适的SQL语句。使用定义在数据库表上的约束或触发器检验数据。释放与此次修改有关的数据库锁。其他用户可看到修改后的数据。提交事务需要注意下面几个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。使用记录所保证数据的一直性Form在多用户环境中提供锁功能,它可以防止两个或多个用户同时修改同一条记录。当用户A试图修改一条记录,Form首先决定从用户查询该记录以来,是否有其他用户更新或删除该记录。若该记录已被更新或删除,用户A必须重执行查询,检查返回的记录,然后再作进一步处理。然而,如该记录未被改变,Form会自动锁住该记录,这样用户A更新它时,其他用户不能修改它。若用户想在自动锁记录发生之前锁住一条记录,请选择“记录(Record)”上的“(Lock)”菜单命令。2.合理分布有效性检验在Form应用中,存在将有效性检验是放在应用方还是放在Oracle数据库方的问题。Oracle允许数据库级的隐式数据检查,当Form运行在Oracle上时,所有提交记录被强制接受预定义的数据库约束检查。可以在应用Form中除掉数据输入时的约束检查,而把它留到数据库提交时再进行。有必要提出的是在应用Form中进行约束检查能使用户立即得到错误反馈,从而利用在线帮助和适当错误信息快速校正错误。较好的折衷方法是在数据输入时(应用方)和提交时(数据库方)合理分布检验,以期应用更友好、更安全。2.6.2回滚事务如果想废除使用Form对数据所做的修改,需要选择“操作(Action)”上的“清除全部(ClearAll)”菜单命令来完成。回滚一个事务包括以下一些步骤:恢复所有未提交的插入、更新、删除。释放当前Form所有的数据库锁。清除当前Form中的所有数据。需注意的是一旦事务被“操作(Action)”上的“保存(Save)”菜单保存提交过,就再也不能恢复该事务了。如果用户想退出Form而没有提交数据,Form会要求用户在提交或废除修改之间作出选择后方可退出Form应用。第三章Form设计工具本章介绍设计Form的基本工具,包括以下内容:Form界面设计。对象导航器。布局编辑器。属性选项板。菜单编辑器。弹出菜单。PL/SQL编辑器。3.1Form设计界面从MicrosoftWindows的开始菜单中选择“程序Developer200R2.0FormBuilder”即可进入Form的设计界面。如图3-1所示。进入Form设计界面时会显示一个欢迎对话框。在这个对话框中,用户可以选择是否使用数据块向导,手动建立新表格,打开现有表格或建立基于模板的表格。对于初学者还可以选择学习与Form设计有关的文档,如图3-2所示。根据相应的选择,Form会进入相应界面。对于前面一项,除了可以使用向导进行设计外,其他的选项一般会进入Form设计界面。一般进入Form设计界面后,首先需要连接数据库。选择“文件(File)”上的“连接(Connect)”菜单命令显示“连接”对话框。输入用户名、口令和数据库连接字符串,如图3-3所示。然后单击“连接”按钮。3.2对象导航器对象导航器(ObjectNavigator)是一个用来创建各管理Form的所有对象的窗口,如图3-4所示。对象导航器中的每一行称一个节点。每个节点由三部分组成:符号:表示该节点是否包含低一级对象,有以下几种符号:彩色加号(+)表示该节点包含子对象。灰色加号(+)表示该节点没有子对象。减号(-)表示该节点下所有子对象都已被显示出来。图标:每个对象左边的图符。单击该图标,可编辑该对象。对象的名字:用于标识Form中的对象。单击Form节点上的任何位置都可以选择一个对象。在对象导航器中选择一个已存在Form对象与在布局编辑器中选择该对象是一致的。可以从菜单或工具条中选择一条命令。在工具条可以快速选择命令。将光标移到图标上而不用鼠标单击可得到该工具条命令的弹出描述,如图3-5所示。对象导航器有两种视图显示模式:所有权视图显示模式和视觉视图显示模式。进入Form设计界面后的缺省显示模式是所有权视图显示模式。所有权视图显示模式使用菜单“视图(View)”上的“所有权视图(OwnershipView)”命令即可进入所有权视图显示模式。在所有权视图显示模式中,所有Form对象按照其所处的层次分层显示。如按表格—>块—>项的顺序分层显示,如图3-6所示。视觉视图显示模式使用菜单“视图”上的“视觉视图”命令即可进入视觉视图显示模式。在视觉视图显示模式中,对象导航器中显示可见的Form对象,并按照可见对象所处的层次分层显示。也就是说,在视觉视图显示模式中,仅显示窗口、画布和项,显示层次为窗口—>画布—>项,如图3-7所示。在对象导航器中可以完成如下一些功能:创建对象。删除对象。编辑对象。移动对象。拷贝对象。对象改名。展开和隐藏对象。查找对象。此外,使用对象导航器还可以建立对象间的联系。下面分别介绍。3.2.1创建对象在对象导航器中,创建一个对象的步骤如下:选择表示该创建对象的节点,或选择一个已存在的同类型的节点。单击“创建(Create)”图标,新对象即被创建。创建新对象不同会出现不同的事件,而不同的对象会决定怎么样继续操作。例3-1使用对象导航器创建一个新块。①选择块节点,如果已存在块节点,则选择一个已存在的块节点。②单击创建图标,即可创建一个新块。创建新块的步骤详见第18章。3.2.2删除对象在对象导航器中,删除一个对象的步骤如下:选择表示要删除对象的节点。单击“删除(Delete)”图标,显示对话框,从中确认删除。单击“是(Yes)”按钮删除对象。例3-2使用对象导航器删除一个项。选择该项节点。单击删除图标,会弹出一个对话框,如图3-8所示。单击“是(Yes)”按钮删除对象。3.2.3编辑对象在对象导航器中,编辑一个对象的步骤如下:在对象导航器中双击表示该对象的图标。不同的对象类型决定了它们各自不同的编辑方法。双击代码对象图标,出现PL/SQL编辑器。双击画布视图图标,出现布局编辑器。双击其它对象图标,出现属性选项板。此外,单击某个对象,使用“工具(Tools)”菜单下的某些菜单项,也可以进入相应的对象编辑工具。例3-3使用布局编辑器编辑一块画布。选择要编辑的画布节点。双击该画布节点,进入布局编辑器,如图3-9所示。编辑画布上的项。3.2.4移动对象在对象导航器中,移动一个对象的步骤如下:选择要移动对象的节点。选择“剪切(Cut)”图标或“编辑(Edit)”上的“剪切(Cut)”菜单命令。将目的节点定位。选择“粘贴(Paste)”图标或“编辑(Edit)”上的“粘贴(Paste)”命令。或单击对象,拖动到目的节点。例3-4使用对象导航器移动一个项。选择要移动的项节点。选择“剪切(Cut)”图标或“编辑(Edit)”上的“剪切(Cut)”菜单命令。将目的节点定位。选择“粘贴(Paste)”图标或“编辑(Edit)”上的“粘贴(Paste)”命令。或单击对象,拖动到目的节点,如图3-10所示。3.2.5拷贝对象在对象导航器中,拷贝一个对象的步骤如下:选择要拷贝对象的节点。选择“复制(Copy)”图标或“编辑(Edit)”上的“复制(Copy)”菜单命令。将目的节点定位。选择“粘贴(Paste)”图标或“编辑(Edit)”上的“粘贴(Cut)”命令。或单击要拷贝的对象,将它拖动到目的节点。拷贝对象的操作与移动对象的操作基本相同。3.2.6更改对象名所有新创建的对象都有缺省的对象名如Block1、Itme1、Cnavas2等。更改缺省名可以更方便地表达该对象的含义。在对象导航器中,更改一个对象的对象名的步骤如下:选择欲改名的对象。单击对象进入编辑模式,并删除旧名。键入新名,按回车键。或者双击旧名高亮显示它,然后键入新名。也可以在属性选项板中设置名字属性更改对象名。例3-5使用对象导航器将一个名为“ENAME”的项改名为“EMPLOYEE_NAME”。选择ENAME项。单击对象名进入编辑模式,删除旧名。键入新名,或双击旧名高亮显示它,然后键入新名,如图3-11所示。按回车键,完成输入。展开与隐藏对象对象导航器开始仅显示最上层的对象。正如前所述,前有彩色“+”号表示该对象有子对象。前有“—”表示所有了对象均已显示出来。可以同时展开和隐藏对象的一级子对象,也可以同时展开和隐藏所有子对象。展开一级子对象选择需要展开的节点。单击“展开(Expand)”图标或单击“加号(+)”,显示第一级子对象。展开所有子对象选择需要展开的节点。单击“展开全部(ExpandAll)”图标或按住[Shit]后单击“加号(+)”,显示所有子对象。隐藏一级子对象选择一个已展开的节点。单击“隐藏(Collapse)”图标或单击“减号(-)”,隐藏第一级子对象。隐藏所有子对象选择已展开的节点。单击“隐藏全部(CollapseAll)”图标或按住[Shit]后单击“减号(-)”,隐藏所有子对象。需要指出的是,隐藏(Collapse)和隐藏全部(CollapseAll)是不同的。设有某对象全问展开,这时若选择隐藏,再选择展开,则可见它的全部子对象;若选择隐藏全部,再选择展开,则只可见它的下一级子对象。例3-6使用对象导航器展开各隐藏对象。选择欲展开和隐藏的对象。单击展开的图标按钮,如图3-12所示,或单击隐藏的图标按钮,如图3-13所示。3.2.8查找对象在对象导航器中查找对象有两种办法:使用对象导航器上的“查找(Find)”域的搜索串定位于一个对象,或者先标识一个对象,然后利用该标识导航到该对象。使用“查找(Find)”域搜索一个对象的步骤如下:使用“查找(Find)”域搜索一个对象的步骤如下:单击“查找(Find)域”。键入搜索字符串单击“向下查找(SearchForward)”工具从当前项搜索到导航器的结束处,或单击“向上查找(SearchForward)”工具从当前项搜索到导航器的开始处。例3-7使用“查找(Find)”域搜索名为ENAME的对象。单击“查找(Find)”域。键入“ENAME”,单击向下查找或单击向上查找工具,光标自动移到名字以搜索字符串开头的第一个对象,如图3-14所示。通过标识对象进行搜索标识一个对象的步骤如下:选择该对象。选择“导航器(Navigator)”上的“添加书签(SetMark)”命令搜索被标志对象的步骤如下:选择“导航器(Navigator)”上的“跳转到书签(GotoMark)”命令,被标识的对象被选中。从上面可以看出,在同一个时间只能有一个标志是激活的。3.3布局编辑器布局编辑器(LayoutEditor)是一个图形化工具,用于创建和安放Form的界面项(Items)、图文文本和图形(Boilerplatetextandgraphics),如图3-15所示。在布局视图的窗口属性来实现的。进入布局编辑器的方法有如下三种:在导航器中,双击欲编辑的画布视图对象的图标。在导航器中,按鼠标右键弹出菜单(LayoutEditor),选择布局编辑器。选择“工具(Tools)”下的“布局编辑器(LayoutEditor)”,选择要在其上工作的画布视图,这里有两种情况:如果在Form上定义有多个画布,会弹出画布值列表(LOV),可选择欲编辑的画布。如果在Form上仅有一个画布,Form会产生一个缺省画布视图。关闭一个布局编辑器,只需双击窗口左上角的关闭框。可同时打开多个布局编辑器,在它们之间拷贝各粘贴对象。需要指出的是,在布局编辑器上不能清除、剪切、复制下列对象:画布(Canvas)对象:当“视图(View)”菜单下的“显示画布(ShowCanvas)”选项为ON时视图(View)矩形:当“视图(View)”菜单下的“显示画布(ShowCanvas)”选项为ON时。块滚动条。布局编辑器窗口标题栏显示上下文(Context)信息,包括当前Form的名字、当前的画布视图的名字以及当前的名字。当你在布局编辑器画布上创建项时,该项自动分配到当前块,即布局编辑器上的当前块。可以用“排列(Arrange)”菜单下的相应命令改变布局编辑器块的上下信息。在布局编辑器上还可以切换显示不同的画布视图。3.3.1选择或复制对象在布局编辑器上选择对象以便大小(Resize)、剪切(Cut)、复制(Copy)、移动(Move)或为格式化对象设置可见属性(VisualAttribute)、字体(Font)、颜色(Color)或模式(Pattern)。选择一个对象单击工具板上“选择(Select)”工具将指针放在对象上,单击。在对象边框上会显示黑矩形,称为选择句柄。当选择一个组时,显示组的句柄。复选一组对象选择一个区域内的对象:单击工具板上的“选择(Select)”工具。单击并拖动选择矩形以包括所有选择的对象。往当然选择中增加一个对象:当选择了一个或多个对象时,按[Ctrl]键并单击另一个对象。重复上一步,往当前选择中增加入欲选择的对象。选择布局工作区中所有对象:选择“编辑(Edit)”菜单下的“选择全部(SelectAll)”菜单项。修改选择在对象边框外任一点单击。在多选择中,按[Ctrl]键并单击一对象,则从当前选择中去掉对该对象的选择。3.3.2布局编辑器工具板在布局编辑器工中,工具板包含以下工具:图方绘制工具。项绘制工具填充/线色板。如图3-16所示使用布局编辑器工具创建和操作项与图问对象。选择工具扳上的工具的方法:将光标移动到图标上而不用单击,可得到该工具的弹出描述。Select工具是缺省工具,利用它可以选择和操纵对象和组。单击工具扳上的工具图标,可激活不同工具,进行某一操作。双击某一工具图标,可使该工具成为缺省工具,我们称该土标被“别住”。在布局编辑器上有画布视图,在画布视图上的对象是项或图文对象,其中:项是操作者与Form交互的界面控制对象(如文本项、复选框、单选组等)。每一个项属于一个块,显示在导航器层次图的Block节点上。图文对象是指在画布上画的或输入到画布上的线、圆、文本和图形等了。这些对象与它们所在的画布视图相关联,也就是说,删去了画布视图就删去了它的图文对象。与众不同的是,图文对象是无名对象,图文对象不显示在对象导航器中,它们的属性也不显示兆秒毫属性选项扳中。可以在对象导航器和新建的数据块窗口中创建项或者在布局编辑器中使用项的工具绘制它们,然而只能在布局编辑器中在所希望的画布视图上创建图文对象。可以将项和图文对象放在布局编辑器工作区内的任何地方,也可以在放在画布视图外,然而只有整个边框都在画布视图范围内的对象在运行时才能可见。3.3.3布局编辑器菜单布局编辑器与在对象导航中见到的菜单是不一样的,这里主要讲述不同的菜单部分,包括“编辑(Edit)”菜单、“视图(View)”菜单、“格式(Format)”菜单和“排列(Arrange)”菜单。1.“编辑(Edit)”菜单编辑(Edit)菜单主要是为了操作Form中的对象。它包括以下一些菜单项:还原(Undo):废除本次操作剪切(Cut):删除所选对象,存放在剪贴板上复制(Copy):复制所选对象,存放在剪贴板上粘贴(Paste):将剪贴板内容放在布局编辑器工作区上清除(Clear):删除所选对象,不存在剪贴板上复制对象(Duplicate):完整拷贝所选对象,放在布局编辑器工作区上选择全部(SelectAll):选择布局编
本文档为【ORACLEFORM培训资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
腐朽的灵魂
暂无简介~
格式:doc
大小:132KB
软件:Word
页数:0
分类:互联网
上传时间:2021-07-07
浏览量:18