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. Activity之间定时跳转

    起源:很多应用在打开时,首先会加载欢迎页面,经过几秒后再跳转到主页面. 下面,我通过两种不同的方式来实现页面的定时跳转. 第一种方式: 通过Timer类的schedule方法. 实现从MainActi ...

  2. GitHub 菜鸟使用

    之前有用过一次,但是一直弄不明白怎么用,今天我又试了一下,成功了,现在我就记录下来,为了以后的使用以及帮助那些跟我原先一样不会用的同学 进入正题: Step 1: 注册GitHub账号 https:/ ...

  3. 收藏的技术文章链接(ubuntu,python,android等)

    我的收藏 他山之石,可以攻玉 转载请注明出处:https://ahangchen.gitbooks.io/windy-afternoon/content/ 开发过程中收藏在Chrome书签栏里的技术文 ...

  4. Android中pendingIntent的深入理解

    pendingIntent字面意义:等待的,未决定的Intent.要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, i ...

  5. Unix/Linux环境C编程入门教程(2) CentOS环境搭建

    Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装CentOS并且配置好C/C++开发环境,这是一款Linux. ...

  6. Date Time Picker控件

    Step1 在界面中添加一个Date Time Picker控件,ID为:IDC_DATETIMEPICKER1 Step2 该控件关联变量 CDateTimeCtrl m_dateCtrl; Ste ...

  7. GridView中日期显示格式

    DataFormatString="{0:d}"

  8. STMP发送邮件被当垃圾邮件处理的解决方法

    昨天使用了.Net通过smtp发送邮件的方式发送了一封邮件到自己的QQ邮箱,但是发送成功后并没有提示邮箱收到新的邮件,而且去收件箱里面也没有新增的邮件. 这让本人觉得奇怪,所以就觉得是否被当作垃圾邮件 ...

  9. socketio 握手前中断报错

    前两天折腾了下socketio,部署完发现通过nginx代理之后前端的socket无法和后端通信了,于是暴查一通,最后解决问题: location / { proxy_pass http://127. ...

  10. java获取当前路径的几种方法

    1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//use ...