根据一个表中的字段属性名称作为查询条件来批量修改该表中数据

来源:互联网 发布:必看的心理书籍知乎 编辑:程序博客网 时间:2024/05/16 06:25
有时候需要通过一个表中字段属性名称作为改表的查询条件去查询出这些字段的值。然后对这些值进行维护。
1、将需要维护的字段的名称和值保持在属性表中FND_LOOKUP_VALUES中,这里针对的是一个key对应一个value值
    1     EMPLOYEES     FIRST_NAME     Steven     名字
    2     EMPLOYEES     LAST_NAME     King     姓
    3     EMPLOYEES     EMAIL     SKING     电子邮箱
    4     EMPLOYEES     PHONE_NUMBER     515.123.4567     电话号码
 2、建立Fnd_lookup_values相对于的LOV视图
select t.lookup_values,t.meaning,t.description from fnd_lookup_values t where t.lookup_type='EMPLOYEES'
3、根据要维护的表,建立相应的EO、VO。

4、针对VO建立相应的子查询
5、在AM的实现类中写相应的查询方法
public void queryTableColumus(String columus) {
        EmployeesVOImpl vo = this.getEmployeesVO1();
        vo.applyViewCriteria(null);//清空子查询,避免缓存数据
       // System.out.println("columus--"+columus);
        if (columus.equals("firstName")) {
            System.out.println("firstName");
            vo.appendViewCriteria(vo.getViewCriteria("byFirstNameVC"));
          
        } else if (columus.equals("lastName")) {
            System.out.println("lastName");
            vo.appendViewCriteria(vo.getViewCriteria("byLastNameVC"));
         
        } else if (columus.equals("email")) {
            System.out.println("email");
            vo.appendViewCriteria(vo.getViewCriteria("byEmailVC"));
          
        } else if(columus.equals("phoneNum")){
            System.out.println("phoneNum");
            vo.appendViewCriteria(vo.getViewCriteria("byPhoneNumVC"));
          
        }
        vo.executeQuery();
      
    }
6、在DC中将创建好的query拖到页面上建立页面,然后显示table。将query或者它外面的layout的visible属性设置为false,不显示该query或者外边的layout。
7、将需要展示的LOV拖到页面上选择Single Selection->ADF Select One Choice
另外将对应的value拖到页面上
9、创建两个按钮并绑定方法
    public String queryAction() {
        ViewObject vo =  this.findIterator("EmployeesVO1Iterator").getViewObject();
        vo.setWhereClause(null);
        vo.executeQuery();
        Object tableColumuns =
            this.resolveExpression("#{bindings.FndLookupValueLovVO1.inputValue}");
        String columunsName = null;
        if (tableColumuns.toString().trim().equals("0")) {
            columunsName = "firstName";
        } else if (tableColumuns.toString().trim().equals("1")) {
            columunsName = "lastName";
        } else if (tableColumuns.toString().trim().equals("2")) {
            columunsName = "email";
        } else {
            columunsName = "phoneNum";
        }
        OperationBinding ob = this.findOperation("queryTableColumus");
        ob.getParamsMap().put("columus", columunsName);
        ob.execute();
        return null;
    }
0 0
原创粉丝点击