给列表界面添加过滤条件

来源:互联网 发布:怎么在淘宝买翻墙 编辑:程序博客网 时间:2024/06/05 21:13
    @Override    protected FilterInfo getDefaultFilterForQuery()    {        return new FilterInfo();    }        @Override    protected IQueryExecutor getQueryExecutor(IMetaDataPK arg0, EntityViewInfo arg1)    {        //查询        FilterInfo filter = new FilterInfo();        Object objDateFrom = planDateFrom.getValue();//开始时间        if(objDateFrom!=null)        {            Calendar c = Calendar.getInstance();            c.setTime((Date)objDateFrom);            c.set(Calendar.HOUR_OF_DAY, 0);            c.set(Calendar.MINUTE, 0);            c.set(Calendar.SECOND, 0);            filter.getFilterItems().add(new FilterItemInfo("planDate",c.getTime(),CompareType.GREATER_EQUALS));        }        Object objDateTo = planDateTo.getValue();//结束时间        if(objDateTo!=null)        {            Calendar c = Calendar.getInstance();            c.setTime((Date)objDateTo);            c.set(Calendar.HOUR_OF_DAY, 23);            c.set(Calendar.MINUTE, 59);            c.set(Calendar.SECOND, 59);            filter.getFilterItems().add(new FilterItemInfo("planDate",c.getTime(),CompareType.LESS_EQUALS));        }        //模糊查询:单号,车牌,司机,接收方        String queryStr = planSearch.getText();        if(queryStr!=null && queryStr.length()!=0)        {            FilterInfo filter2 = new FilterInfo();            queryStr = "%" + queryStr + "%";            filter2.getFilterItems().add(new FilterItemInfo("number", queryStr, CompareType.LIKE));            filter2.getFilterItems().add(new FilterItemInfo("truckLicence.name", queryStr, CompareType.LIKE));            filter2.getFilterItems().add(new FilterItemInfo("driver.name", queryStr, CompareType.LIKE));            filter2.getFilterItems().add(new FilterItemInfo("entrys.otherLicence", queryStr, CompareType.LIKE));            filter2.getFilterItems().add(new FilterItemInfo("entrys.otherDriver", queryStr, CompareType.LIKE));            filter2.getFilterItems().add(new FilterItemInfo("cmpanyOrgUnit.name", queryStr, CompareType.LIKE));            filter2.setMaskString("#0 or #1 or #2 or #3 or #4 or #5");            try            {                filter.mergeFilter(filter2, "and");            }            catch (BOSException e)            {                e.printStackTrace();            }        }        //排除未确认和全部派车的,显示待派车和部分派车        filter.getFilterItems().add(new FilterItemInfo("billState",1,CompareType.NOTEQUALS));        filter.getFilterItems().add(new FilterItemInfo("billState",4,CompareType.NOTEQUALS));        //排除数量-已派车收运数量=0的派车计划分录        Set<String> planIdSet = getPlanEntryIdSet();        if(planIdSet.size()>0)        {            filter.getFilterItems().add(new FilterItemInfo("entrys.id",planIdSet,CompareType.INCLUDE));        }        EntityViewInfo evi = (EntityViewInfo) arg1.clone();        IQueryExecutor executor = null;        try        {                    FilterInfo filter1 = evi.getFilter();            if(filter1==null || filter1.getFilterItems().size()==0)            {                evi.setFilter(filter);            }else            {                filter1.mergeFilter(filter, "and");                evi.setFilter(filter1);            }            executor = super.getQueryExecutor(arg0, evi);            System.out.println(executor.getSQL());        }        catch (BOSException e)        {            e.printStackTrace();        }        return executor;    }

原创粉丝点击