核心方法
OAAdvancedTableBean table = (OAAdvancedTableBean)webBean.findChildRecursive("TimeEntryTbl"); OAMessageChoiceBean elePoplist = (OAMessageChoiceBean)table.findChildRecursive("ElementSelect"); elePoplist.setListVOBoundContainerColumn(0, table, "EmployeeGroupName"); elePoplist.setListVOBoundContainerColumn(1, table, "PeriodEndDate"); elePoplist.setListVOBoundContainerColumn(2, table, "AssignmentId"); elePoplist.setPickListCacheEnabled(false);
问题扩展。
在页面中有添加新一行的操作,如何使添加的新一行中的poplist的值集跟着当前行的LOV返回的值变化而变化。
核心思路:
在MessageChoice中绑定poplist取值来源的时候不要使用dependent poplist,而是使用View Instance。
有些关联list是需要上下文限制的,如 省市选择,甚至还是在table中。2个poplist通过pvo实例化,在根据事件,刷新VO是不行的,因为是多行,而且局部事件是早于poplist数值获取的,这样也没办法加限制条件。【摘自oraclearea51 的Sudhakar Mani文章】
视图定义
控件设置
代码控制
ProcessRequest
ProcessFormRequest
AM
//视图定义 CountryVO select Meaning ,LookupCode from fnd_lookup_values_vl where lookup_type='CHOLA_COUNTRY' StateVO select Meaning ,LookupCode from fnd_lookup_values_vl where lookup_type='CHOLA_State' and tag= :1 //控件设置 ID Country Picklist View Definition:chola.oracle.apps.fnd.poplist.server.CountryVO Picklist View Instance :CountryVO1 Picklist Display Attribute:Meaning Picklist Value Attribute:LookupCode ActionType - fireParialAction Event - country ID State Picklist View Definition:chola.oracle.apps.fnd.poplist.server.StateVO Picklist View Instance :StateVO1 Picklist Display Attribute:Meaning Picklist Value Attribute:LookupCode ActionType - fireParialAction //代码控制 //processRequest OAAdvanceTableBean advTable = (OAAdvanceTableBean)webBean.findChildRecursive("ResultAdvTable"); OAMessageChoiceBean statePoplist = (OAMessageChoiceBean)advTable.findChildRecursive("State"); statePoplist.setListVOBoundContainerColumn(0,advTable,"Country"); //processFormRequest if("country".equals(pageContext.getParameter(OAWebBeanConstants.EVENT_PARAM))){ am.invokeMethod(initStateVOQuery); } //AM public void statePoplist(){ StateVOImpl vo = (StateVOImpl) getStateVO1(); if(vo==null){ MessageToken[] errorTokens= {new MessageToken("OBJECT_NAME","CountryVO1")}; throw new OAException("AK","FWK_TBX_OBJECT_NOT_FOUND",errorTokens); } vo.executeQuery(); }
参考文章:
Poplist Dependent on an LOV not working in AdvTable - Add another row
Dynamic Poplist Empty when setListVOBoundContainerColumn is called.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)