對EntityViewInfo的理解


 

 

1,EntityViewInfo常常用作bos中接口參數,來做查詢用,其中包含了FilterInfo(過濾)、Selector(指定屬性)以及Sorter(排序)

 

 

 
 1 SelectorItemCollection sic = new SelectorItemCollection();  
 2   
 3 //表示獲取info所有的屬性  
 4   
 5 sic.add(newSelectorItemInfo("*"));  
 6   
 7 //表示獲取info上creator上所有的屬性  
 8   
 9 sic.add(newSelectorItemInfo("creator.*"));  
10   
11 //表示只獲取info上auditor上id,name和number三個屬性  
12   
13 sic.add(new SelectorItemInfo("auditor.id"));  
14   
15 sic.add(newSelectorItemInfo("auditor.number"));  
16   
17 sic.add(newSelectorItemInfo("auditor.name"));  
18 
19 特殊的
20 XXXFactory.getRemoteInstance().getXXXInfo(IObjectPKpk);//直接獲取info,如果info中含有關聯屬性,只能取到關聯屬性的ID  
21   
22 XXXFactory.getRemoteInstance().getXXXInfo(IObjectPKpk, SelectorItemCollection selector);//直接獲取Info,通過在selector中指定需要取哪些屬性,比如  

 

2,AtsOverTimeBillEditHandler.class中案例,加上自己的理解.

 1 EntityViewInfo  EntityViewInfo =  new EntityViewInfo();//新建接口
 2     SelectorItemCollection sic = new SelectorItemCollection(); //通過Selector設定屬性
 3     sic.add(new SelectItemInfo("proposer.id"));//表示只獲取info上proposer上id屬性
 4     sic.add(new SelectItemInfo("id"));//表示只獲取info上id屬性
 5     sic.add(new SelectItemInfo("attendDate"));//表示只獲取info上attendDate屬性
 6     sic.add(new SelectItemInfo("dayType"));//表示只獲取info上dayType屬性
 7     entityViewInfo.setSelector(sic);//設置屬性
 8     FilterInfo  filterInfo = new FilterInfo();//建立過濾條件
 9     filterInfo.getFilterItems().add(new FilterItemInfo("proposer.id",personInfo.getId().toString()));
10     filterInfo.getFilterItems().add(new FilterItemInfo("attendDate",newDate,CompareType.GREATER_EQUALS));
11     entityViewInfo.setFilter(filterInfo);//設置過濾條件

 

3,AtsOverTimeBillListHandler這個里面的代碼補充

 1 FilterInfo fla = new FilterInfo();
 2               fla.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("entries.otDate", beginDateTs, CompareType.GREATER_EQUALS));
 3               fla.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("entries.otDate", endDateTs, CompareType.LESS_EQUALS));
 4               
 5               FilterInfo flb1 = new FilterInfo();
 6               flb1.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(1), CompareType.EQUALS));
 7               FilterInfo flb2 = new FilterInfo();
 8               flb2.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(2), CompareType.EQUALS));
 9               FilterInfo flb3 = new FilterInfo();
10               flb3.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(3), CompareType.EQUALS));
11               String existsSql = "SELECT 1 FROM T_HR_ATS_AttendanceResult attenceResult WHERE attenceResult.FPROPOSERID = ENTRIES.FPERSONID AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') >= '" + beginDate + "'" + " AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') <= '" + endDate + "'" + " AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') = to_char(ENTRIES.fotDate,'YYYY-MM-DD')" + " AND attenceResult.FLASTUPDATETIME <= ATSOVERTIMEBILL.FLASTUPDATETIME";
12               
13               flb3.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("PERSON.ID", existsSql, CompareType.EXISTS));
14               
15               FilterInfo flb4 = new FilterInfo();
16               flb4.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(3), CompareType.EQUALS));
17               String notExistsSql = "SELECT 1 FROM T_HR_ATS_AttendanceResult attenceResult WHERE attenceResult.FPROPOSERID = ENTRIES.FPERSONID AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') >= '" + beginDate + "'" + " AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') <= '" + endDate + "'" + " AND to_char(attenceResult.Fattencedate,'YYYY-MM-DD') = to_char(ENTRIES.fotDate,'YYYY-MM-DD')";
18               
19               flb4.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("PERSON.ID", notExistsSql, CompareType.NOTEXISTS));
20               
21               FilterInfo flb = new FilterInfo();
22               flb.mergeFilter(flb1, "OR"); //這是一個含有合並過濾(mergeFilter)的案例 可以是"OR"
23               flb.mergeFilter(flb2, "OR");
24               flb.mergeFilter(flb3, "OR");
25               flb.mergeFilter(flb4, "OR");
26               
27               filter.mergeFilter(fla, "AND");//這是一個含有合並過濾(mergeFilter)的案例 也可以是"and"
28               filter.mergeFilter(flb, "AND");

 

4,

給列表添加過濾條件:

http://blog.csdn.net/fenyu8/article/details/12085499

 

5,設置列表界面打開時查詢的缺省過濾條件,返回null值屏蔽CU條件 getDefaultFilterForQuery

 

6,

//這是一種比較特殊的用法,目前,還不懂意思
protected FilterInfo getDefaultFilter(HttpServletRequest request, HttpServletResponse response)
    throws WafException
  {
    FilterInfo filterInfo = super.getDefaultFilter(request, response);
    filterInfo = AtsWebUtils.getDefaultOrgFilter(filterInfo);
    return filterInfo;
  }

7,

做EAS,包括shr要養成一個習慣:打補丁前備份整個服務器目錄,有問題就還原
 
8, 其他的案例
http://blog.csdn.net/douml88/article/details/8855333
 
 
9,要是不會,就可以找找js源碼解讀

       
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM