EBS OAF 开发中的OAMessageRadioGroup控件

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)

简单介绍

RadioGroup控件在OAF12.2.4及之前的开发文档中没有想关介绍,也没有不论什么演示样例程序中有相关应用。在网上有介绍说,它是和radiobutton一块使用,其ID作为RadioButton的group name使用,而且有相关样例。可是这是错误的,本文就是用来介绍RadioGroup控件,并有对应的代码演示样例。

RadioGroup控件并不能和RaidioButton控件一块使用,它也和RadioButton控件关系不大,由于你使用它的时候,根本不须要手工加入不论什么RadioButton控件。它实际是和MessageChoice(Poplist)非常像,或者说全然和MessageChoice功能一样,都是值对形式,仅仅是显示形式不一样, MessageChoice显示为下拉菜单,而RadioGroup就显示为一组RadioButton。

MessageChoice会为其对应的VO中的每条记录在下拉列表生成一条记录;而RaidoGroup会为VO中的没条记录生成一个Radiobutton.

演示样例介绍

实现后的页面例如以下,假设选择了Quick Mode,以下利用PPR事件来先Quick Mode相关的区域(Region);假设选择了Standard Mode,以下利用PPR事件来显示Standard Mode相关的区域。

其页面声明式定义例如以下图,包括一个RadioGroup控件极其以下依据其值要显示的两个区域。

演示样例实现步骤

1.      就像上面说的,由于RadioGroup和MessageChoice(Poplist)非常像,所以我们也须要为这个控件建立一个对应的VO,这里的VO是RadioGroupVO,这非常easy,仅仅是从表AK_SEARCH_MODE中查询出要使用的值对而已。

这里表是我自己建立的,假设要用的话,建议使用EBS lookup,这样能够完美解决多语言问题等,我使用的脚本例如以下:

CREATETABLE AK_SEARCH_MODE

(search_modeVARCHAR2(20)   NOT NULL,

mode_valueVARCHAR2(20));

INSERTINTO AK_SEARCH_MODE VALUES ('Quick Mode', 'QUICK');

INSERT INTO AK_SEARCH_MODE VALUES ('Standard Mode','STANDARD');

2.      建立好VO,我们须要建立AM。这里能够把上面的VO加到AM中,也能够不加,这和poplist一样,依据须要,由于poplist和radiogroup都能够直接使用VO的长名称(包括路径),也能够使用VO的演示样例名。

3.      建立页面结构,就像上面看到的一样,这里为RadioGroup控件设置例如以下,事实上全然和MessageChoice(poplist)全然一样。

4.      由于我们要触发PPR事件,所以,这里也使用了PVO,当中加了两列分别用于控制当选择不同的mode时显示不同的区域。

5.      由于加入了PVO,所以我们须要在请求页面的时候,要初始化PVO,须要对这个页面加入CO,并在AM和VO里加入以下的代码。

AM代码:

public void initPVOAndRadioGroupVO()

  {

    OAViewObjectImpl pvo = getRadioGroupPVO1();

    if(pvo!=null &&pvo.getFetchedRowCount()==0)

    {

      pvo.setMaxFetchSize(0);

      pvo.executeQuery();

      Row pvoRow = pvo.createRow();

     pvoRow.setAttribute("RenderQuickRN", Boolean.TRUE);

     pvoRow.setAttribute("RenderStdRN", Boolean.FALSE);

     pvoRow.setNewRowState(Row.STATUS_INITIALIZED);

      pvo.insertRow(pvoRow);

      RadioGroupVOImpl mainVo =this.getRadioGroupVO1();

      mainVo.executeQuery();

    }

  }

CO代码:

 public void processRequest(OAPageContextpageContext, OAWebBean webBean)

  {

    super.processRequest(pageContext, webBean);

    OAApplicationModule am = pageContext.getApplicationModule(webBean);

   am.invokeMethod("initPVOAndRadioGroupVO");

  }

6.      设置页面中不同mode对应区域的render属性利用EL来绑定到PVO上建立的两个属性来实现PPR。

7.      在第三步为RadioGroup加入了PPR事件,所以须要在AM和CO做对应的处理,代码例如以下,这里我们依据RadioGroup控件的值通过AM来设置PVO的值,然后依据PVO来动态显示不同的区域。

AM中的代码:

 public void handleRadioBtnChanged(Stringmode)

  {

    Row pvoRow = getRadioGroupPVO1().first();

    if("QUICK".equals(mode))

    {

     pvoRow.setAttribute("RenderQuickRN", Boolean.TRUE);

     pvoRow.setAttribute("RenderStdRN", Boolean.FALSE);

    }

    else

    {

     pvoRow.setAttribute("RenderQuickRN", Boolean.FALSE);

     pvoRow.setAttribute("RenderStdRN", Boolean.TRUE);

    }

  }

CO中的代码:

public void processFormRequest(OAPageContextpageContext, OAWebBean webBean)

  {

    super.processFormRequest(pageContext,webBean);

    OAApplicationModule am =pageContext.getApplicationModule(webBean);   

    String event = pageContext.getParameter(OAWebBeanConstants.EVENT_PARAM);

    String source =pageContext.getParameter(SOURCE_PARAM);

   if(event.equals("handleModeChange"))

    {

      OAMessageRadioGroupBean radioGroupBean =(OAMessageRadioGroupBean)webBean.findChildRecursive("ModeRadioGroup");

      String mode =(String)radioGroupBean.getValue(pageContext);

      Serializable[]  paras = { mode };

     am.invokeMethod("handleRadioBtnChanged", paras);

    }

  }

这样一个简单的RadioGroup控件演示样例就完毕。

EBS OAF 开发中的OAMessageRadioGroup控件的更多相关文章

  1. EBS OAF开发中实现參数式弹出窗体

    EBS OAF开发中实现參数式弹出窗体 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 概览 參数式弹出窗体和嵌入式弹出窗体不一样,它拥有独立 ...

  2. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

  3. Android开发中目前流行控件和知识点总结

    Android开发中目前流行控件和知识点总结   1.SlidingMenu 滑动菜单 应用案例:Facebook . Path 2.0 .人人.网易新闻 下载地址: https://github.c ...

  4. EBS OAF开发中的错误/异常处理(ErrorHandling) (转)

    原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...

  5. ios开发中关闭textview控件的虚拟键盘

    在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘. 1.第一种方法是textfield控件 ...

  6. EBS OAF开发中怎样实现功能页签(Global Tab)

    EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...

  7. EBS OAF开发中怎样通过ReferenceAO进行验证

    EBS OAF开发中怎样通过ReferenceAO进行验证 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) Reference AO 除了用于 ...

  8. EBS OAF开发中实体对象和视图对象的属性设置器

    EBS OAF开发中实体对象和视图对象的属性设置器 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 源文: Home > Oracle ...

  9. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

    本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ...

随机推荐

  1. [原创]C语言里为何会有“2+2=5”的结果

    原文链接:C语言里为何会有“2+2=5”的结果 写这篇原创文章是因为看到了极客中的一篇文章<有趣各种编程语言实现2+2=5>,其中C语言是这样实现的: int main() { ″; // ...

  2. canvas1

    canvas学习(一) Canvas 学习之路 (一) canvas 是H5 里面神一样的东西,使得只是通过html和js就能做出非常棒的游戏和画面. 因为对前端无限的爱好,更加对canvas充满好奇 ...

  3. SQL Server 执行计划重编译的两大情况

    1.与正确性相关的重编译 1.为表或视图添加列,删除列. 2.为表添加约束.默认值.规则,删除约束.默认值.规则. 3.为表或视图添加索引. 4.如果计划用不用索引而这个索引被删除. 5.删除表中的统 ...

  4. Oracle EBS-SQL (BOM-3):检查期间新增Bom数量.sql

    --本周系统BOM汇总记录 SELECT         ITM.SEGMENT1  物料编码, ITM.DESCRIPTION   物料描述, bom2.CREATION_DATE   创建日期, ...

  5. Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)

    这是一个在窗体标题栏添加自定义按钮的组件(TTitleBarButton)开发实例,标题栏按钮组件TTitleBarButton以TComponent为直接继承对象,它是一个可以在窗体标题栏上显示按钮 ...

  6. Google Play Services Library update and missing symbol @integer/google_play_services_version

    转自http://stackoverflow.com/questions/19843784/google-play-services-library-update-and-missing-symbol ...

  7. paip.c++ qt 项目工程互相引用的方法

    paip.c++ qt 项目工程互相引用的方法 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/ ...

  8. Qt通过Http上传文件(路过)

    web端: <?php $c = $GLOBALS['HTTP_RAW_POST_DATA']; $n = $_GET["filename"]; $fp = fopen($n ...

  9. iOS实现文件上传功能模块

    iOS实现文件上传功能,首先要知道的是,上传到服务器的数据格式,一般采用HTTP文件上传协议.如下图 如图所示,只要设置好了HTTP的协议格式,就可以实现文件上传功能. 代码如下: //图片上传模块 ...

  10. a simple erlang process pool analysis

    a simple erlang process pool analysis 这是一个简单的erlang进程池分析,是learn you some erlang for Great Good 里面的一个 ...