2012年8月2日星期四

ADF_187:使用LaunchPopupListener过滤Input Text with LOV(1)

运行环境:JDeveloper 11.1.2.2.0 + Oracle Database 10g Express Edition 10.2.0.1。

使用Input Text with LOV组件时,点击按钮会显示LOV的查询结果。
如果需要通过程序设置查询条件,可以定制LaunchPopupPopupListener。
这里假设的情况是:在LOV对应的VO上有Where子句和参数定义。

重点步骤说明:

1. 修改LOV对应的VO
(1)增加Where子句和参数

(2)因为不希望bv_minSalary出现在查询界面上,所以将其隐藏


2. Managed Bean的代码
    public void jobIdLaunchPopupListener(LaunchPopupEvent launchPopupEvent) {
        BindingContext bctx = BindingContext.getCurrent();
        BindingContainer bindings = bctx.getCurrentBindingsEntry();
        JUCtrlListBinding lov = (JUCtrlListBinding)bindings.get("JobId");
     lov.getListIterBinding().getRowSetIterator().getRowSet().setNamedWhereClauseParam("bv_minSalary",                                                                                        new Integer(5000));
    }


3. 运行
显示的查询结果是MinSalary>5000的记录。


Project 下载:ADF_LOV_InputText(4).7z

参考文献:
1. http://oracleseeker.com/2009/09/14/launch_popup_listener_filter_lov/
2. https://forums.oracle.com/forums/thread.jspa?messageID=10267170
3. https://forums.oracle.com/forums/thread.jspa?threadID=665594

没有评论: