EAS的客户端去除默认的组织单元过滤条件或默认查询条件的值

我们再eas客户端开发list界面的时候,有时候需要过滤或修改默认的拼接的组织单位或创建时间等条件,这里我们可以在listUI.java里修改execQuery方法如下来修改参数

protected void execQuery() {
		String className = (String)getUIContext().get("UIClassParam"); 
		if(className != null && className.equals("VIEWALL")){
			FilterItemCollection filterItemColl  = this.mainQuery.getFilter().getFilterItems();
			for(int i=0;i<filterItemColl.size();i++){
				FilterItemInfo filterItemInfo = filterItemColl.get(i);
				if(filterItemInfo.getPropertyName().equals("company.id")){
					filterItemInfo.setCompareType(CompareType.ISNOT);
					filterItemInfo.setCompareValue(null);
				}
			}
			super.execQuery();
			try {
				onShow();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}else{
			super.execQuery();
		}
		
	}

上面做法如果造成了公司查询条件失效可以采用如下方法

protected void execQuery() {
		String className = (String)getUIContext().get("UIClassParam"); 
		if(className != null && className.equals("VIEWALL")){
//			this.mainQuery.getFilter().getFilterItems().removeObject(0);
			FilterItemCollection filterItemColl  = this.mainQuery.getFilter().getFilterItems();
			for(int i=0;i<filterItemColl.size();i++){
				FilterItemInfo filterItemInfo = filterItemColl.get(i);
				if(filterItemInfo.getPropertyName().equals("company.id")&&
						filterItemInfo.getCompareType().equals(CompareType.INCLUDE)){//判断propertyName和比较符为in的则替换值
					filterItemInfo.setCompareType(CompareType.ISNOT);
					filterItemInfo.setCompareValue(null);
				}
			}
			super.execQuery();
			try {
				onShow();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}else{
			super.execQuery();
		}
		
	}

如果发现默认的拼接的是cu.id in ("xxxx"),也可以重写 isIgnoreCUFilter ,返回true,忽略组织过滤条件

@Override
	protected boolean isIgnoreCUFilter() {
		// TODO Auto-generated method stub
		return true;
	}

  

posted @ 2023-02-15 15:01  凉了记忆  阅读(125)  评论(0编辑  收藏  举报