Oracle OAF 学习小结(3)- 字段控制 的完整案例开发
相关开发配置详见 Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发
需求概述
需求描述
要点1:页面初始化的时候,获取当前用户,并显示在界面。
要点2:勾上复选框显示详细信息,勾掉隐藏详细信息(选做)
效果图
开发步骤
创建基于OA的项目:Hello
参考下表完成:
参数 | 值 |
---|---|
默认目录 | <JDEV_USER_HOME>\myprojects |
Workspace | DEMO.jws |
Project | DEMO.jpr |
Default Package | demo.oracle.apps.cux.emp |
DBC File | <JDEV_USER_HOME>\dbc_files\secure\VIS.dbc |
用户/密码 | HAND_11175/handhand |
应用/职责简称 | CUX/HAND |
Database Connection | Syfdemo.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
参考下表完成:
参数 | 值 |
---|---|
Name | HelloPG |
Package | demo.oracle.apps.cux.hello.webui |
修改最高层区域
参考下表完成:
参数 | 值 |
---|---|
ID | PageLayoutRN |
Region Style | pageLayout |
AM Definition | oracle.apps.fnd.framework.server.OAApplicationModule |
Window Title | Hello Window Title |
Title | Hello Page Header |
Auto Footer | True |
Form | True |
创建主内容区域
N: 右键PageLayoutRN/New/Region
参考下表完成:
参数 | 值 |
---|---|
ID | MainRN |
Region Style | PageLayout |
创建文本框UserName
N: 右键MainRN/New/Item
参考下表完成:
参数 | 值 |
---|---|
ID | UserName |
Item Style | messageStyledText |
Prompt | Hello |
Length | 20 |
Maximum Length | 50 |
创建Checkbox
N: 右键MainRN/New/Item
参考下表完成:
参数 | 值 |
---|---|
ID | CheckFlag |
Item Style | messageCheckBox |
Initial Value | N |
Checked Value | Y |
Unchecked Value | N |
Initially Checked | False |
Prompt | Display |
Action Type | fireAction |
Event | show |
创建文本框Details
N: 右键MainRN/New/Item
参考下表完成:
参数 | 值 |
---|---|
ID | Details |
Item Style | messageTextInput |
Prompt | Details Information : |
Rendered | ${oa.HelloVO1.CheckFlag} |
创建控制器
N: 右键MainRN/New/Set New Controller…
参考下表完成:
参数 | 值 |
---|---|
Package | demo.oracle.apps.cux.hello.webui |
Class Name | HelloCO |
实际上是创建类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 学习小结(3)- 字段控制 的完整案例开发相关推荐
- Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发
开发配置 了解EBS服务器目录 $JAVA_TOP JSP中可以引用标准Java类库,也可以引用其他Java类库,客户化开发的类库统一放在$JAVA_TOP下,按目录组织.OAF开发的文件都放在这里. ...
- OAF 增删改查/LOV/Button/Sequence 的完整案例开发
开发配置 了解EBS服务器目录 $JAVA_TOP JSP中可以引用标准Java类库,也可以引用其他Java类库,客户化开发的类库统一放在$JAVA_TOP下,按目录组织.OAF开发的文件都放在这里. ...
- 深度学习实现NBA球星颜值打分完整案例(二)
已经上传了完整的代码和数据,数据比较少,大家可以帮忙补充. 项目地址(记得给个start):https://github.com/jimenbian/face_rank 最近咳嗽加班比较严重,耽误了几 ...
- 三菱PLC4轴控制伺服完整案例,三菱PLC FX3U加三菱1PG定位模块控制4个松下伺服,有完整的注释,结构清晰明了
伺服控制程序JOG HOME 定位 全部写成了功能块FB .你可以直接拿过去用,MCGS触摸屏,做的配方,也可以拿出来,有详细的电气图纸CAD,IO规划表. ID:4526660543412966自动 ...
- MySQL,Oracle系统学习,以及SQL语言-----数据库篇学习笔记
Handouts MySQL和Oracle系统学习 一. 开篇立意(~~~~必看,有说明~~~~) 二. Oracle 篇 数据库存在之意义 基础概念(必须看,后面不会说明!!!) Oracle管理系 ...
- Oracle DBA学习基础篇(一) Oracle体系结构 学习笔记
这里是我通过Oracle DBA实战这本书学习的 Oracle体系结构,大部分是我对书中的内容做的总结,还有遇到不理解的知识点,通过查询资料做的整合.通过这篇博客希望可以让你对Oracle的一些内部原 ...
- oracle的学习规划路线
1.Oracle基础教程 该部分学习主要是针对了解和使用Oracle,算是Oracle的入门级学习.主要学习Oracle的基础理论,以此为基础学会使用Oracle.主要内容有: Oracle介绍:介绍 ...
- JavaSE学习小结二
JavaSE学习小结二 记录学习----------JavaSE模块三&四 其中大部分是一些工具类,会将常用方法及其功能描述整理成表格方便日后查阅 文章目录 JavaSE学习小结二 一.Obj ...
- Oracle存储过程学习
Oracle存储过程学习 目录 Oracle 存储过程... 1 Oracle存储过程基础知识... 1 Oracle存储过程的基本语法... 2 关于Oracle存储过程的若干问题备忘... 4 1 ...
最新文章
- java读取XML文件的四种方式
- 【01】Clean Code
- 操作系统【抢占式处理机调度例题、LLF最低松弛度优先算法】
- scala学习 之 环境搭建(一)
- 如何在IDEA 中使用Git
- irq4中断子程序c语言写法,AVR汇编程序参考
- 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析
- dtoj#4263. duliu
- x64 结构体系下的内存寻址
- 200个c语言程序(由简单到复杂),200个c语言程序(由简单到复杂)
- Node编码格式的设置
- asp 后台批量管理程序
- 团队-象棋游戏-代码设计规范
- Oracle 使用 PL/SQL Developer 生成 AWR 报告
- 在FL Studio中如何使用Patcher插件
- 过极验滑块破解-小米商城app过滑块
- Duplicate entry ‘‘ for key ‘Primary‘
- 计算机基本操作评课记录,《Word的基本操作》评课稿--李存业
- 浏览器网页标签页图标显示
- C# SuperSocket 手把手教你入门 傻瓜教程---1(服务器单向接收客户端发送数据)