1、OAFCRUD开发OA Framework 基于MVC设计模式浏览器发送HTTP请求到控制器,控制器响应浏览器端输入,创建并设置模型,当模型发生变化时,视图得到通知,刷新界面显示。OA Framework应用开发结构1、应用模块拥有视图对象(数据)2、根应用模块拥有事务对象(调用存储过程)3、页面的pageLayout拥有根应用模块4、业务组件重用,各层调用关系Client-AM-VO-EOOA Framework 开发步骤1、 创建业务组件1) 业务组件包2) 实体对象(实体关联)3) 基于实体对象(或SQL)建立视图对象(视图连接)4) 应用模块对象,把视图对象实例添加到应用模块中2、 以
2、声明方式定义页面(Region和Item)3、 为需要的Region设置控制器类4、 编写应用模块代码和控制器类代码配置开发环境1、解压缩JavaDeveloper10 OA Extension压缩文件至硬盘目录(解压目录不要包含空格和中文)。2、添加系统环境变量JDEV_USER_HOME,指定一个目录,此目录作为程序开发和本机运行时的主目录,如下图所示,从图中可以看出,第一步文件的解压目录为D:OracleJDeveloper。3、从服务器下载dbc文件,dbc文件放在JDEV_USER_HOME指定路径的子目录下,dbc文件必须放在secure目录下。(即D: OracleJDevelo
3、perjdevhomejdevdbc_filessecure)4、在jdevbin(D:OracleJDeveloperjdevbin)中找到jdeveloper.exe文件,点击右键建立桌面快捷键,双击jdeveloper桌面快捷键。5、创建(或打开)项目。6、使用jdeveloper建立数据库连接,用于设计时访问数据库。7、测试连接。建立连接和测试连接1、选择FileNew打开新建对话框,选择GeneralConnectionsDatabase Connection,如图:2、点击确定,跳过欢迎页面,进入下图界面,修改Connection Name,如图:3、下一步,输入数据库的用户名,密
4、码,如图:4、下一步,输入数据库IP地址,端口号,数据库名称,如图:5、下一步,点击Test Connection,如果在Status输出文本框中输出Success!,即为连接成功。如图:*项目程序包整体结构oracle.apps.应用产品简称.功能简称(业务简称(notice)(eg: inv 库存管理系统,oracle.apps.inv.notice)包路径说明命名规则oracle.apps.inv.notice.server项目的私有组件所在包,包含:AM应用模板,VO视图对象,VL视图连接。AM:XxAMVO: XxVOVL:XxVLoracle.apps.inv.notice.web
5、ui项目的私有页面PG,控制器(CO)所在包BbPG页面名称+COoracle.apps.inv.schema.server实体对象EO和实体联系对象AO所在的包。(公用部分)EO:XxEOAO:XxAOoracle.apps.inv.lov.server值列表(listofValues)LOV视图,LOV应用模板AM,LOV的Java控制文件。(公用部分)XxLOVVOXxLOVAMoracle.apps.inv.lov.webuiLOV页面(LOV Region)XxLovRNoracle.apps.inv.poplist.serverpoplist下拉框(MessageChoice)视图
6、VOXxListVO在建立新增页面的前面,先建立一个查询页面,在查询页面添加一个新增按钮,点击新增按钮弹出新增页面。创建OA工作台和OA项目选择FileNew打开新建对话框,如图:从新建对话框中选择GeneralWorkspace Configured for Oracle Applications,确定,进入New Oracle Applications Workspace 窗口,输入文件名(工作台名称),并选择Add a New OA Project,如图: 确定后进入Oracle Applications Project Wizard对话框,第一步更改File Name和Default
7、Package 分别为:CRUDDemo和oracle.apps.ak.create。第二步选择Database Connection,选择开始建好的数据库连接(也可以自己重新新增一个数据库连接),如图:第三步,指定DBC文件路径,Application用户名(sysadmin)和密码(sysadmin),如图:点击完成按钮完成工程的创建。设置项目的运行选项选择CRUDDemo.jpr项目,右键Project Properties进行选项设置。选择Oracle ApplicatonsRun Options设置页,选择OADeveloperMode和OADiagnostic项到Selected
8、Options中。在运行期间OADeveloperMode提供了额外的代码检测和标准检测;OADiagnostic使运行出来的页面顶部有全局按钮Diagnostics按钮,这个选项覆盖了其他几个对应的预制文件。如图:查询1、创建根UI应用模块(AM)为页面创建一个应用模块(AM),使其成为页面的根节点。在导航栏中右键点击CRUDDemo.jpr,通过菜单选择New,在弹出的对话框中选择Business TierADF Business ComponentsApplication Module,如图:点击确定,跳过欢迎页,在Package中指定包名为:oracle.apps.ak.create.
9、server,在Name中指定AM名称为CreateAM,如图:选择下一步到第四步Java页中选择Generate Java File(s), 点击下一步,完成。如图:2、为根应用模块(AM)启用钝化功能钝化功能对所有的根UI应用模块(AM)使用,详细内容请参考OA Framwork Developers Gruide。从导航栏中选择CreateAM应用模块,右键从菜单中选择Edit CreateAM(或者双击CreateAM),在弹出的对话框中选择Custom Properties节点:在Name字段中输入RENETION_LEVEL,在Value字段中输入MANAGE_STATE,选择Ad
10、d按钮增加,如图:点击确定按钮,设置成功退出向导。3、创建实体对象(EO)为FWK_TBX_EMPLOYEES表创建一个实体对象(EO)1)在导航栏中右键点击CRUDDemo.jpr,新建New弹出对话框,Business TierADF Business Components 选择Entity Object,如图:2)确定,跳过欢迎页面,在Name中输入EmployeesEO,设置Package为oracle.apps.ak.create.schema.server,选择DataBase Schema为AK,在Schema Object 中输入AK.FWK_TBX_EMPLOYEES,如图:
11、 3)选择下一步到第三步Attribute Settings,确保EmployeeId的Primary Key的复选框选中,不改变其他任何值。4)选择下一步,在java页面中,为Entity Object Class:EmployeesEOImpl选择Generate Java File选择框,在Generate Methods区域选择Accessors、Create Method、Remove Method、Validation Method,点击Class Extends 按钮,确保基类为oracle.jbo.server.EntityImpl,如图:5)选择下一步,在Generate页,
12、确保Generate Default View Object选项框没有被选中,如图:6)选择下一步,点击完成按钮创建EO。7)选择EmployeesEO,双击,在弹出的对话框中,选择Tuning,勾选Use Update Batching ,设置文本框值为100,如图:4、创建视图对象EmployeeSumsVO(VO)在导航栏中右键点击CRUDDemo.jpr,新建New弹出对话框,Business TierADF Business Components 选择View Object,如图:确定,跳过欢迎页,修改Package和Name,如图:下一步,设置视图对应的EO,选择前面建立的实体Em
13、ployeesEO,添加到Selected中,如图: 点击下一步,选择用户所需要的字段,如图:选择下一步到第七步Java页面,仅仅勾选View Row Class下的两个选项,如图:点击下一步,完成按钮。5、添加视图对象(VO)到根应用模块(AM)选择CreateAM,双击弹出对话框,选择DataModel,选择新建的视图EmployeesSumVO到CreateAM下面,确定完成。6、 创建初始查询页面简单查询1.在导航栏中右键点击CRUDDemo.jpr,新建New弹出对话框,Web TierOA Components 选择Page,如图:2.选择确定,在New Page对话框中,输入Na
14、me和Package的值,如图:选择确定,创建页面。3.更改页面布局1)在结构窗口中,选择EmployeesSumPG中的region1,设置其以下属性,如图:属性值IDPageLayoutRNAM Definitionoracle.apps.ak.create.server.CreateAMWindow Title员工信息查询Title员工信息2)在新增页面添加查找区域选择PageLayout区域,点击右键“NewRegion”,创建一个新的区域。设置新创建区域的属性:属性值IDMainRNRegion Style:QueryConstructionresultsBasedSearchInc
15、lude Simple PanelTrueInclude Views PanelTrueInclude Advanced PanelTrue3)添加查询结果表到MainRN在结构窗口中选择MainRN区域,右键从上下文菜单中选择NewRegion Using Wizard,按下一步跳过欢迎页,在BC4J Objects 页中,在Application Modules选择对应的AM下的视图。如图:下一步,在Region Properties页中设置Region ID的值为EmployeesTable ,Region Style的值为Table,如图:下一步,在View Attributes中,选
16、择查询表格中要显示的字段列,如图:下一步,设置对应的列显示的名称以及字段控件类型(比如可以编辑输入或者不可编辑等),如图:(这里是查询显示,因此所有列都设置为messageStyledText)点击完成,完成表格的创建。在页面中选择创建的表格EmployeesTable,设置其属性:属性值Width75%Text:员工列表Additional Text员工列表在界面上设置查询项,选择表格EmployeesTable中的需要设置查询的字段,设置其属性为:这里设置EmployeeId和FullName为查询项。(可以根据需要设置不同的查询列)属性值Search AllowTrue4.运行程序,界面
17、如下:运行错误解决办法1、500 Internal Server Error如果运行界面报如下错误,如图:则需要配置如下:在系统盘(C盘),目录“C:WINDOWSsystem32driversetc” 下面找到文件hosts,复制粘贴到桌面,用记事本打开,添加Host信息。其中,10.10.198.158为数据地址,为host地址,根据需要修改。修改之后,保存,然后复制粘贴到之前的目录“C:WINDOWSsystem32driversetc”中,进行替换,再重新运行页面。如图:2、You have insufficient privileges for the current operati
18、on如运行时报如下错误:解决办法:JDeveloper-tools-Embedded OC4J Server preferences 弹出框中查看Startup中的属性设置,如图:将其中的 Host Name Or Ip Address Used To Refer to Embedded OC4J 选择为Default Local IP Address.客户化查询1、 新增查询页面CustomSearchPG1) 选择工程CRUDDemo,右键NewWeb Tier OA ComponentsPage,确定,弹出如图:修改Name:CustomSearchPG,选择(修改)包路径(Packag
19、e):oracle.apps.ak.create.webui。2) 选择CustomSearchPG,在结构窗口中修改region1的属性,如下:属性值IDPageLayoutRNAM Definitionoracle.apps.ak.create.server.CreateAMWindow Title客户化查询Title客户化查询3) 页面中增加查询区域(Region)选择PageLayoutRN区域,右键New Region,新建查询区域,设置区域属性如下:属性值IDMainRNRegion StylequeryConstruction ModeautoCustomizationCrite
20、riaInclude Simple PanelTrueInclude Advanced PanelTrue4) 查询区域增加查询表格(table)选择查询区域(MainRN),右键NewRegion Using Wizard,跳过欢迎页,如图:选择对应的AM下的所需的视图(没有则建立相应的视图,再新增查询表格,视图的建立请参考前面章节)下一步,输入表格名称(SearchTable)和类型(table),如图:下一步,选择视图中字段,用于页面表格显示,如图:下一步,修改显示字段的名称和控件类型,如图: 下一步,完成,即完成表格的创建。5) 修改表格属性在页面(CustomSearchPG)中选择
21、新建的表格(SearchTable),修改其属性,如下:属性值Width75%Text员工列表Additional Text员工列表6) 查询区域(MainRN)创建查询条件a.简单查询1)页面中选择查询区域(MainRN),右键NewsimpleSearchPanel,创建简单查询条件,系统会自动创建一个header区域和一个messageComponentLayout区域。选择header区域,设置其属性如下:属性值IDSimpleSearchHdrText简单查询选择messageComponentLayout区域,设置其属性如下:属性值IDSimpleSearchRN2)选择messa
22、geComponentLayout区域,右键 NewmessageTextInput,反复执行此操作,新增两个messageTextInput控件,作为两个查询条件,设置其属性如下:属性值IDSearchEmpIDMaximum Length30Prompt员工ID属性值IDSearchFullNameMaximum Length30Prompt员工名称3)选择查询区域(MainRN),右键NewsimpleSearchMappings,系统会自动创建一个simpleSearchMappings控件和一个queryCriteriaMap1控件。选择queryCriteriaMap1控件,设置其
23、属性:属性值IDSearchIDMapSearh ItemSearchEmpIDResults ItemEmployeeID选择simpleSearchMappings,右键NewqueryCriteriaMap,设置其属性如下:属性值IDSearchNameMapSearh ItemSearchFullNameResults ItemFullNameb.高级查询根据a中建立简单查询,建立高级查询的panel和Mappings。1)页面中选择query Components,右键New AdvanceSearchPanel,创建简单查询条件,系统会自动创建一个header区域和一个messag
24、eComponentLayout区域。选择header区域,设置其属性如下:属性值IDAdvanceSearchHdrText高级查询2)选择AdvanceSearchHdr,右键NewadvanceSearch,系统会自动创建一个AdvanceSearch区域,Criteria,CriteriaRow1以及两个Item:Item1和Item2。选择AdvanceSearch区域,设置其属性ID:AdvanceSearchRN。选择CriteriaRow1,设置其属性ID:AdvanceSearchEmpID。选择Item1,设置其属性Prompt:员工ID。选择Item2,设置其属性如下:属
25、性值IDAdvanceSearchIDMaximum Length30Additional Text员工ID高级查询条件选择Criteria,右键New CriteriaRow,创建一个CriteriaRow控件。选择新创建的CriteriaRow控件,设置其属性ID:AdvanceSearchName。选择Item1,设置其属性Prompt :员工姓名。选择Item2,设置其属性,如下:属性值IDAdvanceSearchFullNameMaximum Length30Additional Text员工姓名高级查询条件3)页面中选择query Components,右键NewAdvanceS
26、earchMappings,系统会自动创建一个advanceSearchMappings控件和一个queryCriteriaMap1控件。选择queryCriteriaMap1控件,设置其属性:属性值IDAdvanceSearchIDMapSearh ItemAdvanceSearchIDResults ItemEmployeeID选择advanceSearchMappings,右键NewqueryCriteriaMap,设置其属性如下:属性值IDAdvanceSearchNameMapSearh ItemAdvanceSearchFullNameResults ItemFullName2、
27、运行结果简单查询页面 高级查询页面:新增1、创建新增页面视图EmployeesVO创建视图步骤如前面所示,只是第七步Java页面,默认选择,不做任何处理。创建视图之后,添加视图对象EmployeesVO(VO)到根应用模块CreateAM中(AM),方法如上所示。2、基于EmployeesVO创建新增页面1)选择工程CRUDDemo.jpr,点击右键“NewWeb TierOA ComponentePage”,创建一个页面。在弹出框中,设置界面名称和所在程序包:Name:NewEmployeePGPackage:oracle.apps.ak.create.webui2)点击完成。3)对新增页面
28、NewEmployeePG进行设置选择新增页面NewEmployeePG中的“PageLayout”区域,点击右键“NewRegion Using Wizard”,根据向导创建一个表格。在弹出框的,BC4J Object页面中,在“Application Module”选择当前对应的AM:oracle.apps.ak.create.server.CreateAM,并选择所对应的VO,如图: 点击下一步,设置控件的属性:属性值Region IDEmployeesTableRegion Style:defaultSingleColumn(也是一中表格,但是是单表的)如图:点击下一步,在View A
29、ttributes页面,选择所需要在界面上显示的字段。点击下一步,在Region Items页面分别设置每一个字段的属性,如图:其中,字段EmployeeID的属性设置如下:属性值PromptIDStyle:MessageStyledText设置其他字段属性值的Style类型为MessageTextInput,即可输入的。点击完成,完成表格的创建。4)在页面中选择EmployeesTable,设置其属性Region Style:MessageComponentLayout。5)对新增页面NewEmployeePG中增加按钮选择新增页面NewEmployeePG中的“PageLayout”区域,点击右键NewRegion,创建一个按钮区域,设置新增区域的属性:属性值Region StylepageButtonBarIDButtonRN选择新增的按钮区域“ButtonRN”,点击右键“NewItem”,重复执行此步操作,创建两个控件,分别按照下表设置其属性:属性值Item StylesubmitButtonIDApplyPrompt保存属性值Item StylesubmitButtonIDCancelPrompt取消
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1