最近有个需求,就是采购订单的供应商要按照一级和二级来选,一级关联二级,二级关联供应商。之前的一级和二级都是用LovInput做的,现在想要改为messageChoice。如下图:

改为:

下面给大家介绍下我是如何实现的:

1.页面修改:

把Cate1的属性改为messageChoice,如下图配置:

为Cate1设置事件:

参数:

把Cate2的属性也改为messageChoice,如下图配置:

设一个无参数的事件,用来刷新用:

2.在页面关联的AM中,加入如下两个方法:

 public void msgChoice(String zReqLineId)
{
ZReqLinesVOImpl linesVO = this.getZReqLinesVO();
int rowCount = linesVO.getRowCount();
for (int i = 0; i < rowCount; i ++)
{
ZReqLinesVORowImpl linesRow = (ZReqLinesVORowImpl)linesVO.getRowAtRangeIndex(i);
//循环遍历各行
Number primaryKey = linesRow.getZreqLineId();//获取行id
if (primaryKey.intValue() == Integer.parseInt(zReqLineId))
{
String cate1 = (String)linesRow.getCate1();
System.out.println("cate1:" + cate1);
msgChange(cate1);
}
} } public void msgChange(String cate1)
{
ViewObject vo = this.getCuxPOCategory2LovVO1();
String whareString="1=1";
whareString = whareString + " and DETL_PID = '" + cate1 + "'";
vo.setWhereClause(null);//置空VO中的where条件
vo.setWhereClauseParams(null); //置空VO中的where条件
vo.setWhereClause(whareString);//赋值拼接的where条件
vo.executeQuery(); //执行查询
}

3.在页面的CO加入如下代码,通过事件调用AM中的方法:

 if("select1".equals(pageContext.getParameter("event")))
{
String Cate1LineId = pageContext.getParameter("Cate1LineId");//获取fireAction的参数
System.out.println("Cate1LineId:" + Cate1LineId);
Serializable []params = { Cate1LineId };
am.invokeMethod("msgChoice", params);//调用AM方法
}

出现的bug:

本例不适合多行的情况,当出现多行时,会导致二级的messageChoice的各行结果总是按照最后选择的一级关联,(如图)原因是每一行都公用一个VO导致的。如果某位大神看到此文,有解决此bug的方法,请写在评论中,谢谢了。

OAF messageChoice 关联问题的更多相关文章

  1. OAF_开发系列12_实现OAF开发中URL中的标记和加密参数传递(案例)

    20150712 Created By BaoXinjian

  2. OAF_开发系列01_实现OAF资料主从关系Master-Detail联动(案例)

    2014-06-02 Created By BaoXinjian

  3. OAF_文件系列3_实现OAF多行表中附件功能AttachmentImage(案例)

    20150727 Created By BaoXinjian

  4. OAF TABLE中添加序号列

    在实际的OAF页面TABLE的使用中,会有很多时候需要在前台页面中显示序号,虽然在sql中可以使用rownum来获得序号,但是rounum的优先级比order by 高,所以在语句中order by ...

  5. EBS OAF中如何在多行表中实现附件功能

    EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...

  6. EBS OAF 开发中的OAMessageRadioGroup控件

    EBS OAF 开发中的OAMessageRadioGroup控件 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 简单介绍 RadioGro ...

  7. OAF开发中一些LOV相关技巧 (转)

    原文地址:OAF开发中一些LOV相关技巧 在OAF开发中,LOV的使用频率是很高的,它由两部分构成一是页面上的LOV输入框(如OAMESSageLovInputBean),二是弹出的LOV模式窗口(O ...

  8. Oracle OAF 应用构建基础之实现控制器 (转)

    原文地址: Oracle OAF 应用构建基础之实现控制器 设计一个OA Controller 如OA Framework Page解析中所描述的,OA Controller定义了web beans的 ...

  9. EBS OAF 发展 URL商标、加密和编码

    EBS OAF 发展 URL商标.加密和编码 (版权声明.我原来的或翻译的文章,如需转载,转载的个人学习,转载请注明出处:否则,请与我联系.版权所有) 马克 当您指定页面定义声明URL参数,文本也能够 ...

随机推荐

  1. 【JUC】JUC线程池框架综述

    一.前言 在分析完了JUC的锁和集合框架后,下面进入JUC线程池框架的分析,下面给出JUC线程池的总体框架,之后再逐一进行分析. 二.JUC线程池框架图 说明:从上图可知,JUC线程池框架中的其他接口 ...

  2. HTML中使用javascript解除禁止input输入框代码:

    转:表单中Readonly和Disabled的区别 参考资料: disabled和readonly区别: 参考博文1地址:http://blog.csdn.net/symgdwyh/article/d ...

  3. jQuery-1.9.1源码分析系列(十二) 筛选操作

    在前面分析的时候也分析了部分筛选操作(详见),我们接着分析,把主要的几个分析一下. jQuery.fn.find( selector ) find接受一个参数表达式selector:选择器(字符串). ...

  4. JsTree实现简单的CRUD

    现在需要将省市县区域这块搞成树状图的形状,由于项目使用的AngularJS+ABP+WebAPI各个模块之间数据传输形式是json格式,那么对于JsTree来说就方便很多了,只需要将json数据搞成我 ...

  5. MySQL高级查询 之 与 Group By 一起使用的函数 和 关键字

    1 GROUP_CONCAT mysql> SELECT student_name, ->     GROUP_CONCAT(test_score) ->     FROM stud ...

  6. [Asp.net 5] Logging-新日志系统目录

    楼主有个美好的愿望——把asp.net 5所有能看懂的代码一一呈现给大家(比如C++,楼主就看不懂).现在已经做完了依赖注入.多语言.配置文件三部分,比较基础的日志就成为了楼主的下一个目标.下面是楼主 ...

  7. CSS基础转载

    css基本知识框架:(一:基本知识缩影.二基本知识框架图) 1.css样式表的基本概念 2.样式表基本类型-----1.内嵌样式 2.内联样式3.链入外部样式表4.导入外部?式 3.样式表配置方法 4 ...

  8. Javascript贪食蛇小游戏

    试玩:http://hovertree.com/game/9/ 贪吃蛇是一种风靡全球的小游戏,就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的蛋,越吃越长.只要蛇头碰到屏幕四周,或者碰到自己的身子, ...

  9. [C#] .NET4.0中使用4.5中的 async/await 功能实现异

    好东西需要分享 原文出自:http://www.itnose.net/detail/6091186.html 在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framew ...

  10. C#中 字符串转换为计算公式,并计算结果

     根据总结,大概分为以下三种: 第一种: 用DataTable中的Compute方法. 例如:" 1*2*3 " 代码如下: var a = new System.Data.Dat ...