Добавить и применить Where Clause к ViewObject в бине


public void onMethodRun (ValueChangeEvent valueChangeEvent) {

    ViewObject vo = VOUtils.getViewObjectByName(CONSTANTS_VO.MY_SUPER_VO);


        //        1 - Текущий день
        //        2 - Вчера    
        //        3 - Текущая неделя
        //        4 - Текущий месяц
        //        5 - Текущий квартал
        //        6 - Текущий год

        String fiterByDateChose = valueChangeEvent.getNewValue().toString();

        String WhereClauseParams = "";

        switch (fiterByDateChose) {
                case "1":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) = TRUNC(SYSDATE)";
                         break;
                case "2":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) = TRUNC(SYSDATE-1)";
                         break;
                case "3":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) BETWEEN TRUNC (SYSDATE, 'D') AND TRUNC(SYSDATE)";
                         break;
                case "4":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) BETWEEN TRUNC (SYSDATE, 'MM') AND TRUNC(SYSDATE)";
                         break;
                case "5":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) BETWEEN TRUNC (SYSDATE, 'Q') AND TRUNC(SYSDATE)";
                         break;
                case "6":  WhereClauseParams = "TRUNC(DATE_FROM_DB_TABLE) BETWEEN TRUNC (SYSDATE, 'Y') AND TRUNC(SYSDATE)";
                         break;
                default: WhereClauseParams = null;
                         break;
            }

        vo.setWhereClause(WhereClauseParams);

    vo.executeQuery();
    updateFormProgrammatically();
}


Удалить WhereClause

vo.setWhereClause(null);


Вроде каждому WhereClause можно задать индивидуальное имя конструкцией

vo.setNamedWhereClauseParam(“some_param”, anyParam);

нужно проверить как-нибудь.



Еще варианты:

//Get ViewObject
ViewObject vo = iter.getDepartments();

//Apply desired WHERE Clause and declare bind variable name
vo.setWhereClause("DEPARTMENT_NAME=:BindDepartmentName");

//Define this variable as ViewObject Bind Variable , You can also set default value for this
vo.defineNamedWhereClauseParam("BindDepartmentName", "Purchase", null);

// Execute ViewObject to finally apply where clause
vo.executeQuery();

http://www.awasthiashish.com/2015/07/adf-baiscs-define-and-remove-named-bind.html


Правда у меня, эта хреновина не заработала пока.