1 @Override
2 protected IQueryExecutor getQueryExecutor(IMetaDataPK queryPK,
3 EntityViewInfo viewInfo) {
4 if(viewInfo ==null){//dialog query对应的视图信息
5 viewInfo = new EntityViewInfo();
6 }
7
8 FilterInfo filter = viewInfo.getFilter();//dialog query对应的视图过滤
9 if(filter ==null){
10 filter = new FilterInfo();
11 viewInfo.setFilter(filter);
12 }
13 OrgUnitInfo orgUnitInfo = getBGOrgUnitInfo();
14 FilterInfo myfilter = new FilterInfo();//自己添加的过滤
15 if(rbImmOrgUnit.isSelected()){
16 Set<String> set = new HashSet<String>();
17 String sql = "select FID from t_org_costcenter where FParentID = '"+orgUnitInfo.getId().toString()+"'";
18 IRowSet rs = null;
19 try {
20 rs = SQLExecutorFactory.getRemoteInstance(sql).executeSQL();
21 while(rs.next()){
22 set.add(rs.getString("FID"));
23 }
24 } catch (BOSException e) {
25 // TODO Auto-generated catch block
26 e.printStackTrace();
27 } catch (SQLException e) {
28 // TODO Auto-generated catch block
29 e.printStackTrace();
30 }
31 set.add(orgUnitInfo.getId().toString());
32 myfilter.getFilterItems().add(
33 new FilterItemInfo("orgUnit.id", set, CompareType.INCLUDE));
34 }else if(rbAllOrgUnit.isSelected()){
35 Set<String> set = new HashSet<String>();
36 getAll(orgUnitInfo.getId().toString(),set);
37
38 myfilter.getFilterItems().add(
39 new FilterItemInfo("orgUnit.id", set, CompareType.INCLUDE));
40 }else{
41 myfilter.getFilterItems().add(
42 new FilterItemInfo("orgUnit.id", orgUnitInfo.getId().toString(), CompareType.EQUALS));
43 }
44 try {
45 filter.mergeFilter(myfilter, "and");//合并视图过滤和自己添加的过滤
46 } catch (BOSException e) {
47 // TODO Auto-generated catch block
48 e.printStackTrace();
49 }
50 viewInfo.setFilter(filter);//重设合并后的过滤
51 return super.getQueryExecutor(queryPK, viewInfo);
52
53 }