Oracle OAF 学习小结- 字段控制 的完整案例开发

Posted Jane Chiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle OAF 学习小结- 字段控制 的完整案例开发相关的知识,希望对你有一定的参考价值。

相关开发配置详见 Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发

需求概述

需求描述

要点1:页面初始化的时候,获取当前用户,并显示在界面。

要点2:勾上复选框显示详细信息,勾掉隐藏详细信息(选做)

效果图


开发步骤

创建基于OA的项目:Hello

参考下表完成:

参数
默认目录<JDEV_USER_HOME>\\myprojects
WorkspaceDEMO.jws
ProjectDEMO.jpr
Default Packagedemo.oracle.apps.cux.emp
DBC File<JDEV_USER_HOME>\\dbc_files\\secure\\VIS.dbc
用户/密码HAND_11175/handhand
应用/职责简称CUX/HAND
Database ConnectionSyfdemo.ml.com

检查Project运行属性:调式信息

添加OA Diagnostic、OADeveloperMode。如果默认的项目属性已经设置,这里就不用设置了。

创建View Objects:HelloVO

该VO用来完成增加和修改。在demo.oracle.apps.cux.hello.server下创建。

Name: HelloVO

创建向导中,勾选 Rows
Populated Programmatically,not Based on a Query.

HelloAM中DataModel,选HelloVO。

修改AM的Java类

在EmpAMImpl.java中加入方法,去调用VO:

public void setHelloVOCheckFlag (String checkFlag)        
	OAViewObject  hVO = (OAViewObject)findViewObject("HelloVO1");       
	OARow row = (OARow)hVO.first();
       
	if ("on".equals(checkFlag))            
		row.setAttribute("CheckFlag", true);        
	 else            
	row.setAttribute("CheckFlag", false);        
	   


public void init()        
	OAViewObject hVO = (OAViewObject)findViewObject("HelloVO1");
      
      	if (hVO != null)       
	        
		if (hVO.getFetchedRowCount() == 0)        
		 
            		hVO.setMaxFetchSize(0); 
             		hVO.executeQuery();      
      			hVO.insertRow(hVO.createRow());
             		OARow row = (OARow)hVO.first();            
			row.setAttribute("RowKey", 1);         
		      
	    

创建Page:HelloPG

参考下表完成:

参数
NameHelloPG
Packagedemo.oracle.apps.cux.hello.webui

修改最高层区域

参考下表完成:

参数
IDPageLayoutRN
Region StylepageLayout
AM Definitionoracle.apps.fnd.framework.server.OAApplicationModule
Window TitleHello Window Title
TitleHello Page Header
Auto FooterTrue
FormTrue

创建主内容区域

N: 右键PageLayoutRN/New/Region
参考下表完成:

参数
IDMainRN
Region StylePageLayout

创建文本框UserName

N: 右键MainRN/New/Item
参考下表完成:

参数
IDUserName
Item StylemessageStyledText
PromptHello
Length20
Maximum Length50

创建Checkbox

N: 右键MainRN/New/Item
参考下表完成:

参数
IDCheckFlag
Item StylemessageCheckBox
Initial ValueN
Checked ValueY
Unchecked ValueN
Initially CheckedFalse
PromptDisplay
Action TypefireAction
Eventshow

创建文本框Details

N: 右键MainRN/New/Item
参考下表完成:

参数
IDDetails
Item StylemessageTextInput
PromptDetails Information :
Rendered$oa.HelloVO1.CheckFlag

创建控制器

N: 右键MainRN/New/Set New Controller…
参考下表完成:

参数
Packagedemo.oracle.apps.cux.hello.webui
Class NameHelloCO

实际上是创建类java类HelloCO。修改代码:
1、 添加引用类

import oracle.apps.fnd.framework.OAException; 
import java.io.Serializable; 
import oracle.apps.fnd.framework.webui.beans.message.OAMessageStyledTextBean; 

2、 修改processRequest()

 public void processRequest(OAPageContext pageContext, OAWebBean webBean)   
      super.processRequest(pageContext, webBean); 
      OAApplicationModule am = pageContext.getApplicationModule(webBean); 
      //获取当前登录用户名显示在页面上
      String userName = pageContext.getUserName();
      OAMessageStyledTextBean mstBean = OAMessageStyledTextBean)webBean.findChildRecursive("UserName"); 
      mstBean.setText("Hello " + userName + " !"); 
      am.invokeMethod("init"); 
  

3、 修改方法processFormRequest()

public void processFormRequest(OAPageContext pageContext, OAWebBean webBean) 
  
      super.processFormRequest(pageContext, webBean); 
      OAApplicationModule am = pageContext.getApplicationModule(webBean); 
      String event = pageContext.getParameter(EVENT_PARAM); 
      if(event.equals("show"))
          String checkFlag = pageContext.getParameter("CheckFlag");
          System.out.println(checkFlag); 
          Serializable[] params = checkFlag;
          am.invokeMethod("setHelloVOCheckFlag", params);           
      
  

4、 右键HelloWorldMainCO.java或其代码内任何区域,Rebuild。

在本地Jdeveloper自带的OC4J服务器中运行

N: 右键HelloPG.xml,运行。

发布到EBS

步骤同“ Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发”的发布,每个XML文件,都要import一下,至于功能定义,只要定义HelloPG就可以了。

以上是关于Oracle OAF 学习小结- 字段控制 的完整案例开发的主要内容,如果未能解决你的问题,请参考以下文章

Oracle OAF 学习小结- 新增输入值约束

Oracle OAF个性化一例 -- 个性化查询条件

Oracle系列:(32)小结

springmvc学习笔记-入门程序小结

Oracle SQL-选择OAF文件版本历史记录

OAF-从Oracle MDS检索区域/页