当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

ADF内存查询及绑定数据

发表于: 2015-05-15   作者:後知後觉c   来源:转载   浏览:
ADF
摘要: /** * * 扫描报到证号执行方法 */ public void bdzAction(ClientEvent clientEvent) { /** * Bindings做法步骤 * 1 根据bdzh内存查询 * 2 使用ADFUtils.setBoundAttrib
    /**
     *
     * 扫描报到证号执行方法
     */
    public void bdzAction(ClientEvent clientEvent) {
        /**
         * Bindings做法步骤
         * 1 根据bdzh内存查询
         * 2 使用ADFUtils.setBoundAttributeValue("")
         * 3 执行Commit方法: ADFUtils.executeByOperation("Commit")
         */
        
        //业务层操作,不推荐,因为UI-Bindings-BC,这三层关系,操作BC层结果不一定会响应到UI,操作Bindings会立刻响应到UI层
//        DCIteratorBinding dcBinding = ADFUtils.findIterator("JyglBdzView1Iterator");
//        JyglBdzViewImpl vo = (JyglBdzViewImpl) dcBinding.getViewObject();
//        //        String bdzh = (String) JSFUtils.getElExpression("#{bdzrkBean.bdzh}");
//        String bdzh = (String) clientEvent.getParameters().get("bdzValue");
//        String yhbh = UserOperation.getYhbh();
//        vo.setWhereClause("Bdzh = '" + bdzh + "'");
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            Row row = vo.first();
//            row.setAttribute("Rkr", yhbh);
//            row.setAttribute("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            row.setAttribute("Bdzzt", 1);
//            vo.getDBTransaction().commit();
//        } else {
//            JSFUtils.addFacesInformationMessage("不存在该报到证");
//        }
//        vo.setWhereClause(null);
//        this.setBdzh("");
//        ADFUtils.refreshTable("JyglBdzView1Iterator", (RichTable) JSFUtils.findComponentInRoot("t2"));//运行时有错,第二个参数改成this.getRichTable()
//        ADFUtils.refresh(JSFUtils.findComponentInRoot("it1"));
        
        //绑定层操作,优先推荐,内存查询可用ViewCriteria(有公共封装类调用,初学最好暂时不调用,自己写),setWhereClause(本身是数据库查询的,但是setQueryMode可设内存查), RowMatch查询
        //优先使用ViewCriteria,这种查询方式不会影响到原来的结果集
        String bdzh = this.getBdzh();
        String yhbh = UserOperation.getYhbh();
        System.out.println("报到证:" + bdzh);
        DCIteratorBinding dcBinding = ADFUtils.findIterator("JyglBdzView1Iterator");
        JyglBdzViewImpl vo = (JyglBdzViewImpl) dcBinding.getViewObject();
        
        //1,ViewCtriteria查询
        ViewCriteria vc = vo.createViewCriteria();
        vc.setName("criteria");
        ViewCriteriaRow vcRow = vc.createViewCriteriaRow();
        ViewCriteriaItem item = vcRow.ensureCriteriaItem("Bdzh");
        item.setOperator("=");
        item.setValue(bdzh);
        vc.add(vcRow);
        vo.applyViewCriteria(vc);
        vo.executeQuery();
        vo.findByViewCriteria(vc, -1, ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
        if (vo.getEstimatedRowCount() > 0) {
            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
            ADFUtils.executeByOperation("Commit");
        } else {
            JSFUtils.addFacesInformationMessage("不存在该报到证");
        }
        vo.removeViewCriteria("criteria");

        //2,setWhereClause查询(有问题:页面列表结果只显示EO单表内容,VO是多表关联的话,其他表的字段值没有显示)
//        vo.setWhereClause("Bdzh = '" + bdzh + "'");
//        vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
//            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
//            ADFUtils.executeByOperation("Commit");
//        }
//        vo.setWhereClause(null);
    
        //3,RowMatch查询,只查询内存(也存在问题,和setWhereClause一样)
//        RowMatch rm = new RowMatch("Bdzh = '" + bdzh + "'");
//        vo.setRowMatch(rm);
//        vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
//        vo.executeQuery();
//        if (vo.getEstimatedRowCount() > 0) {
//            ADFUtils.setBoundAttributeValue("Rkr", yhbh);
//            ADFUtils.setBoundAttributeValue("Rksj", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//            ADFUtils.setBoundAttributeValue("Bdzzt", 1);
//            ADFUtils.executeByOperation("Commit");
//        }
//        vo.setRowMatch(null);
        System.out.println(vo.getQuery());
        this.setBdzh("");
        ADFUtils.refreshTable("JyglBdzView1Iterator", this.getRichTable());
        ADFUtils.refresh(JSFUtils.findComponentInRoot("it1"));
    }

 

ADF内存查询及绑定数据

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
ADF开发中, 我们创建VO之后, 很多时候,我们都需要给这个vo的查询加上一些查询条件, 这时候就免不了
利用内存表来操作数据的方法。 1.创建部门表和员工表两张表,直接将数据库表中的数据导入内存表中。
背景和需求   中国铁路客户服务中心网站(www.12306.cn)是世界规模最大的实时交易系统之一,媲美Am
Visual studio 2005 中的 Crystal Report 的应用( 1 ):水晶报表绑定查询的 dataset 数据 1 ) 创
数据绑定的想法其实是很简单的。它的想法就是用最少的代码将数据呈现到界面或在用户操作了界面的控
附WPF书籍推荐: 1、不要为书籍经销商的炒作蒙蔽,国内翻译的《WPF揭秘》被褒扬成经典,其实我认为
Oracle EBS OAF VO(View Object)开发中的绑定方式(Binding Style)的介绍 在OAF VO开发中,Binding
Oracle EBS OAF VO(View Object)开发中的绑定方式(Binding Style)的介绍 魏红生 在OAF VO开发中,
到目前为止,请求已经能交给我们的处理器进行处理了,接下来的事情是要进行收集数据啦,接下来我们
6.6.2、@RequestParam绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号