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

相关开发配置详见 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就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值