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. hdu 4059 The Boss on Mars 容斥

    题目链接 求出ai^4+a2^4+......an^4的值, ai为小于n并与n互质的数. 用容斥做, 先求出1^4+2^4+n^4的和的通项公式, 显然是一个5次方程, 然后6个方程6个未知数, 我 ...

  2. str系列---字符串函数

    1. strcat extern char *strcat(char *dest,char *src); 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'. 返回指 ...

  3. 迁移到gitbook

    现在要迁移到gitbook啦, 一些note类分享就只在gitbook发了, 其他一些比较长的分享会第一时间发到gitbook,但也会在这边同步 我的gitbook

  4. JAVA I/O使用方法(转)

    下面四张图表明了类之间的继承关系,其中红色.加粗的类名是常用的类. 常用转换 FileReader——>BufferedReader BufferedReader in= new Buffere ...

  5. CSSOM View Module

    就在8月份,也就是上次gf大姨妈来的时候,W3C出炉了CSSOM视图模块(CSS Object Model View)草案.CSSOM视图模块(CSSOM View Module)定义了一些 API, ...

  6. Android流式布局实现

    查看我的所有开源项目[开源实验室] 欢迎增加我的QQ群:[201055521],本博客client下载[请点击] 摘要 新项目用到了一种全新布局----Android标签流式布局的功能,正好一直说给大 ...

  7. javascript 工作必知(四) 类型转换

    string和number boolean javascript 类型会根据赋值的进行转成相应的类型. var str = ""; alert(typeof (str));//st ...

  8. Android App开发常用专题开源代码

    Android App开发中用到过的专题类开源代码: 项目的需求多了,不知不觉成了Github摘抄员,感谢分享精神,节省了很多弯路和时间.不过想要实现指定效果,还是要看懂作者的思路才好下手改造. 主题 ...

  9. iOS内购的订单对应和补单

    内购的关键类: 1.SKPayment(SKMutablePayment可将自己的参数一对一与苹果产生的payment对应起来) 2.TransactionObserver:交易状态更新时执行此方法, ...

  10. 解决 jQuery-datepicker无法弹出日期的问题

    1.确保 jquery-ui.css.jquery.min.js和jquery-ui.min.js 三个文件的引用 2.如果是下载网站上的html,需要删除时间<input>的hasDat ...