• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黄洪波写点东西的地方
博客园    首页    新随笔    联系   管理    订阅  订阅
TABLE中动态设置poplist的值跟着当前行的某些列动态变化

核心方法

 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

the Dependent Poplist section

Dynamic Poplist Empty when setListVOBoundContainerColumn is called.

 

posted on 2015-06-28 14:19  红无酒伤  阅读(673)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3