在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行的更多相关文章

  1. VC中遍历目标进程中的模块

    VC中遍历目标进程中的模块 MFC代码win32 也可以用 在下面代码进行修改转换就可以了CString strModule; 可以换成 char* 但是MODULEENTRY32结构中的szModu ...

  2. Element中Tree树结构组件中实现Ctrl和Shift多选

    在Element中的树结构中, 实现多选功能,首先的是判断有没有按下键盘ctrl和shift按键.但是在Element中的tree组件的左键点击事件是没有提供$event鼠标属性判断的.所以就需要在函 ...

  3. JS中遍历EL表达式中后台传过来的Java集合

    前言:在我的项目里有这么一个情况,后台直接model.addAttribute()存储了一个对象,此对象内部有一个集合,前端JSP处理的方法正常情况下就是直接使用EL表达式即可.但是如果在JS中需要使 ...

  4. 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)

    文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...

  5. 在PHP中遍历数据库表中的数据

    数据库中的数据: //1.分别将每一行的每一列遍历出来 //mysql_fetch_row()函数在每一次遍历后会将指针向后自动移动一个单位 while($row=mysql_fetch_row($r ...

  6. Mybatis 中遍历map 参数中的 list 和 array 属性

    原文:https://blog.csdn.net/liudongdong0909/article/details/51048835 问题在项目有中遇到批量删除操作时,需要根据两个属性去删除数据,其中一 ...

  7. vue父组件中获取子组件中的数据

    <FormItem label="上传头像" prop="image"> <uploadImg :width="150" ...

  8. react:在一个组件中调用别的组件中的方法

    先介绍一下要解决的问题:react中一个组件A和一个组件B,其中B是被connect(connect是redux中的方法)包装过的组件,包装成BContainer,A和BContainer的关系是兄弟 ...

  9. js中遍历删除数组中的项(项目中遇到的问题解决)

    代码如下: for (var key=0;key<$scope.pageContent.messages.length;key++){ if($scope.pageContent.message ...

随机推荐

  1. iOS的高德地图标注特定位置

    在开发时有时候遇到项目里面需要展示公司的位置,这时如果导入百度地图什么的就太浪费资源,而且还占内存 这时只要调用自动高德地图的就行了 自己写一个控制器,导入框架 现在导入系统框架只要多打次就能出来了, ...

  2. Swift基础之闭包

    内容纲要: 1.闭包基础 2.关于闭包循环引用 正文: 1.闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks) ...

  3. JavaScript Patterns 2.11 Writing Comments

    Document all functions, their arguments and return values, and also any interesting or unusual algor ...

  4. WP开发-Toolkit组件 列表采集器(ListPicker)的使用

    列表采集器ListPicker在作用上与html中的<select/>标签一样 都是提供多选一功能,区别在于ListPicker可以自定义下拉状态和非下拉状态的样式. 1.模板设置 Lis ...

  5. SharePoint 指定配置数据库访问账户“域账户\用户”

    大家在安装sharepoint时都会遇到这个问题,域账户,什么是域账户哪?域账户简单理解就是网路账户,与本地账户不同,什么是域哪?域就是控制器. 一台Windows 计算机,它要么隶属于工作组,要么隶 ...

  6. 进制,原码VS补码

    进制 十,八,十六进制=>二进制 十进制=>二进制:辗转相除取余,10除2商5余0,5除2商2余1,2除2商1余0,1除2商0余1,So,10d=1010b 八进制=>二进制:每1位 ...

  7. malloc calloc 和 realloc

    realloc()函数 原型:extern void *realloc(void *mem_address, unsigned int newsize); 语法:指针名=(数据类型*)realloc( ...

  8. 技巧:利用 Workflow 显示附近的免费 Wi-Fi

    得益于 Workflow 自 1.5.3 版本起更新的 Get Content of URL 动作,该 App 的潜力得到了极大的提升.本文分享一种有趣的用法,搜寻附近的免费 Wi-Fi 并择一显示在 ...

  9. codeforces 577E E. Points on Plane(构造+分块)

    题目链接: E. Points on Plane time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  10. 三维网格形变算法(Laplacian-Based Deformation)

    网格上顶点的Laplace坐标(均匀权重)定义为:,其中di为顶点vi的1环邻域顶点数. 网格Laplace坐标可以用矩阵形式表示:△=LV,其中,那么根据网格的Laplace坐标通过求解稀疏线性方程 ...