OAF中 遍历HGrid组件中的所有VO行
在HGrid组件中有如下所示的HeaderVO和LineVO

需要在头上的LOV中触发事件去更新行VO中的值,LOV事件的处理方法见 getLovParameter ,但是由于HGrid的特殊性,不能取到当前事件行,所以建议在VO中新增一个transection的变量,例如LovChangeFlag。
选择LOV的事件后设置该值为Y
public void setAccountItemId(Number value)
{
setAttributeInternal(ACCOUNTITEMID, value);
setLovChangeFlag("Y");
}
PFR 中LOV事件处理
else if (pageContext.isLovEvent()) {
else if ("AccountItemCode".equalsIgnoreCase(lovInputSourceId)) {
OAHGridBean hGridBean =
(OAHGridBean)webBean.findChildRecursive("AccountHgrid");
OAHGridQueriedRowEnumerator hgridEnum =
new OAHGridQueriedRowEnumerator(pageContext, hGridBean);
am.drAccountChangeFin(hgridEnum);
}
}
am中事件处理
public void drAccountChangeFin(OAHGridQueriedRowEnumerator hgridEnum)
{ while (hgridEnum.hasMoreElements())
{
Row rowToUpdate = (Row)hgridEnum.nextElement();
if (rowToUpdate != null)
{
String lovChangeFlag =
(String)rowToUpdate.getAttribute("LovChangeFlag");
if ("Y".equals(lovChangeFlag)) //得到触发LOV事件的行
{
rowToUpdate.setAttribute("LovChangeFlag", "N"); //得到后再将此值设为N
Number headerId=
(Number)rowToUpdate.getAttribute("HeaderId");
//业务代码
//...
while (hgridEnum.hasMoreElements())
{
rowToUpdate = (Row)hgridEnum.nextElement();
Number currentHeaderId =
(Number)rowToUpdate.getAttribute("HeaderId");
//此处判断遍历得到的row是否是LINEVO中的数据
if (headerId.equals(currentHeaderId))
{
rowToUpdate.setAttribute("XXX", value );
}
}
}
}
}
}
OAHGridQueriedRowEnumerator会将HGrid中所有的数据放入枚举中,并且会将HeaderVO中的所有数据放在前面,将LineVO中的所有数据放在后面,所以不用担心在遍历的时候会先遍历到LineVO中的数据。
OAF中 遍历HGrid组件中的所有VO行的更多相关文章
- VC中遍历目标进程中的模块
VC中遍历目标进程中的模块 MFC代码win32 也可以用 在下面代码进行修改转换就可以了CString strModule; 可以换成 char* 但是MODULEENTRY32结构中的szModu ...
- Element中Tree树结构组件中实现Ctrl和Shift多选
在Element中的树结构中, 实现多选功能,首先的是判断有没有按下键盘ctrl和shift按键.但是在Element中的tree组件的左键点击事件是没有提供$event鼠标属性判断的.所以就需要在函 ...
- JS中遍历EL表达式中后台传过来的Java集合
前言:在我的项目里有这么一个情况,后台直接model.addAttribute()存储了一个对象,此对象内部有一个集合,前端JSP处理的方法正常情况下就是直接使用EL表达式即可.但是如果在JS中需要使 ...
- 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)
文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...
- 在PHP中遍历数据库表中的数据
数据库中的数据: //1.分别将每一行的每一列遍历出来 //mysql_fetch_row()函数在每一次遍历后会将指针向后自动移动一个单位 while($row=mysql_fetch_row($r ...
- Mybatis 中遍历map 参数中的 list 和 array 属性
原文:https://blog.csdn.net/liudongdong0909/article/details/51048835 问题在项目有中遇到批量删除操作时,需要根据两个属性去删除数据,其中一 ...
- vue父组件中获取子组件中的数据
<FormItem label="上传头像" prop="image"> <uploadImg :width="150" ...
- react:在一个组件中调用别的组件中的方法
先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟 ...
- js中遍历删除数组中的项(项目中遇到的问题解决)
代码如下: for (var key=0;key<$scope.pageContent.messages.length;key++){ if($scope.pageContent.message ...
随机推荐
- 递归练习(C语言)
本文地址:http://www.cnblogs.com/archimedes/p/recursive-practice.html,转载请注明源地址. 1.炮弹一样的球状物体,能够堆积成一个金字塔,在顶 ...
- App Icon生成工具(转载)
原地址:http://www.cocoachina.com/bbs/read.php?tid=290247 下载软件:在AppStore搜索App Icon Gear 打开软件 决定制作启动图或图标, ...
- IOS开发之功能模块--自定义导航控制器类常用自定义的代码
前言:本文篇幅不多,但是涉及到的内容却是开发中常用的. 涉及的内容: 1.统一设置导航控制器子控制器的返回按钮. 2.因为修改了系统的返回按钮,所以还需要设置手势事件. 3.隐藏底部的工具条. 这里直 ...
- spring aop 拦截业务方法,实现权限控制
难点:aop类是普通的java类,session是无法注入的,那么在有状态的系统中如何获取用户相关信息呢,session是必经之路啊,获取session就变的很重要.思索很久没有办法,后来在网上看到了 ...
- mysql远程链接 方法和flush-hosts
有时候会发现要用远程链接mysql 1 先要在mysql的host的机器上修改mysql表,最快就是复制一下本地localhost,现在phpmyadmin复制功能什么的很好用,然后把host列中的l ...
- Effective Java 66 Synchronize access to shared mutable data
synchronized - Only a single thread can execute a method or block at one time. Not only does synchro ...
- 3.输入三个整数,xyz,最终以从小到大的方式输出。利用嵌套。
<body>请输入a的值:<input type="numbe" id="a" value=""/>请输入b的值:& ...
- 《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的还原方式
本篇是继上篇的备份方式,本篇介绍的是还原方案,在SQL Server在2005以上现有的还原方案一般分为以下4个级别的数据还原: 1.数据库完整还原级别: 还原和恢复整个数据库.数据库在还原和恢复操作 ...
- 基于XML配置的Spring MVC 简单的HelloWorld实例应用
1.1 问题 使用Spring Web MVC构建helloworld Web应用案例. 1.2 方案 解决本案例的方案如下: 1. 创建Web工程,导入Spring Web MVC相关开发包. Sp ...
- 烂泥:KVM利用LVM快照快速部署虚拟机
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章介绍了有关KVM利用LVM快照备份和恢复虚拟机的功能,这篇文章我们来介绍,如何利用LVM快照功能为KVM快速部署虚拟机. 部署虚拟机需要以下几 ...