效果图
Dname是以显示的Deptno为条件的
结构图
其中:
- DeptLovCO是Region(DeptLovRN)的CO
- EmpSearchCO是PG(EmpSearchPG)的CO
- DeptLovRN是一个External Lov
EmpSearchCO
public void processFormRequest(OAPageContext paramOAPageContext,
OAWebBean paramOAWebBean) {
super.processFormRequest(paramOAPageContext, paramOAWebBean);
//获取触发的LOV事件所在行
OAApplicationModule am =
paramOAPageContext.getApplicationModule(paramOAWebBean);
String lovInputSourceId = paramOAPageContext.getLovInputSourceId();
System.out.print("------------------Srd Id : " + lovInputSourceId);
String sourceParam = paramOAPageContext.getParameter(SOURCE_PARAM);
Hashtable lovResults =
paramOAPageContext.getLovResultsFromSession(sourceParam);
if ("Dname".equals(lovInputSourceId)) {
String rowReference =
paramOAPageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
OARow row = (OARow)am.findRowByRef(rowReference);
oracle.jbo.domain.Number deptNum =
(oracle.jbo.domain.Number)row.getAttribute("Deptno");
System.out.print("------------------deptNum : " + deptNum);
//将值保存在事务中
paramOAPageContext.putTransactionTransientValue("deptNum",
deptNum);
}
}
DeptLovCO
public void processRequest(OAPageContext paramOAPageContext,
OAWebBean paramOAWebBean) {
super.processRequest(paramOAPageContext, paramOAWebBean);
OAApplicationModule am =
paramOAPageContext.getApplicationModule(paramOAWebBean);
//读取事务中的参数
oracle.jbo.domain.Number deptNum =
(oracle.jbo.domain.Number)paramOAPageContext.getTransactionTransientValue("deptNum");
OAViewObjectImpl vo =
(OAViewObjectImpl)am.findViewObject("DepartmentVO");
if ((deptNum != null) && (vo != null)) {
vo.setWhereClause("deptno = " + deptNum);
}
}