有时会遇到如下需求,把一个表格中某个字段的相同值合并起来显示,如下图

而且表格中的行数是动态显示的,所以是不确定的,在OAF中实现这种需求并不简单,后面想了一个临时的解决办法,希望以后能够想到更好的解决方法。
就在AM中,找到对应的vo,并且获得所有的行,遍历每个行,看当前行的“款项名称”是否已经存在,如果存在就是用vo.setAttribute("FundsName", null)方法把该属性置为空(由于当前功能不存在新增、修改、删除、保存等操作,故可以如此),如果不存在就显示出来。
代码如下:
public void queryOmFunds(String searchHeaderId) { OmFundsVOImpl vo = this.getOmFundsVO1(); vo.setWhereClause(null); vo.setWhereClauseParams(null); if (searchHeaderId != null && !("".equals(searchHeaderId.trim()))) { vo.setWhereClause("sell_header_id = :1" ); vo.setWhereClauseParam(0, searchHeaderId); } vo.executeQuery(); Row row = vo.first(); String fundsCode = ""; if (row != null) { fundsCode = (String)row.getAttribute("FundsCode"); row = vo.next(); } while (row != null) { String value = (String)row.getAttribute("FundsCode"); if (fundsCode.trim().equals(value.trim())) { row.setAttribute("FundsName", null); } else { fundsCode = (String)row.getAttribute("FundsCode"); } row = vo.next(); } }
本文介绍了一种在OAF应用中通过遍历虚拟对象(VO)并检查特定字段来实现合并表格中重复字段值的方法。对于不需要增删改查功能的场景,此方案能有效减少重复项显示。
5148

被折叠的 条评论
为什么被折叠?



