给列表界面添加过滤条件
来源:互联网 发布:怎么在淘宝买翻墙 编辑:程序博客网 时间: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; }