对EntityViewInfo的理解
1,EntityViewInfo常常用作bos中接口参数,来做查询用,其中包含了FilterInfo(过滤)、Selector(指定属性)以及Sorter(排序)
SelectorItemCollection sic = new SelectorItemCollection();
//表示获取info所有的属性
sic.add(newSelectorItemInfo("*"));
//表示获取info上creator上所有的属性
sic.add(newSelectorItemInfo("creator.*"));
//表示只获取info上auditor上id,name和number三个属性
sic.add(new SelectorItemInfo("auditor.id"));
sic.add(newSelectorItemInfo("auditor.number"));
sic.add(newSelectorItemInfo("auditor.name")); 特殊的
XXXFactory.getRemoteInstance().getXXXInfo(IObjectPKpk);//直接获取info,如果info中含有关联属性,只能取到关联属性的ID
XXXFactory.getRemoteInstance().getXXXInfo(IObjectPKpk, SelectorItemCollection selector);//直接获取Info,通过在selector中指定需要取哪些属性,比如
2,AtsOverTimeBillEditHandler.class中案例,加上自己的理解.
EntityViewInfo EntityViewInfo = new EntityViewInfo();//新建接口
SelectorItemCollection sic = new SelectorItemCollection(); //通过Selector设定属性
sic.add(new SelectItemInfo("proposer.id"));//表示只获取info上proposer上id属性
sic.add(new SelectItemInfo("id"));//表示只获取info上id属性
sic.add(new SelectItemInfo("attendDate"));//表示只获取info上attendDate属性
sic.add(new SelectItemInfo("dayType"));//表示只获取info上dayType属性
entityViewInfo.setSelector(sic);//设置属性
FilterInfo filterInfo = new FilterInfo();//建立过滤条件
filterInfo.getFilterItems().add(new FilterItemInfo("proposer.id",personInfo.getId().toString()));
filterInfo.getFilterItems().add(new FilterItemInfo("attendDate",newDate,CompareType.GREATER_EQUALS));
entityViewInfo.setFilter(filterInfo);//设置过滤条件
3,AtsOverTimeBillListHandler这个里面的代码补充
FilterInfo fla = new FilterInfo();
fla.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("entries.otDate", beginDateTs, CompareType.GREATER_EQUALS));
fla.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("entries.otDate", endDateTs, CompareType.LESS_EQUALS)); FilterInfo flb1 = new FilterInfo();
flb1.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(1), CompareType.EQUALS));
FilterInfo flb2 = new FilterInfo();
flb2.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(2), CompareType.EQUALS));
FilterInfo flb3 = new FilterInfo();
flb3.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(3), CompareType.EQUALS));
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"; flb3.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("PERSON.ID", existsSql, CompareType.EXISTS)); FilterInfo flb4 = new FilterInfo();
flb4.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("billState", Integer.valueOf(3), CompareType.EQUALS));
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')"; flb4.getFilterItems().add(new com.kingdee.bos.metadata.entity.FilterItemInfo("PERSON.ID", notExistsSql, CompareType.NOTEXISTS)); FilterInfo flb = new FilterInfo();
flb.mergeFilter(flb1, "OR"); //这是一个含有合并过滤(mergeFilter)的案例 可以是"OR"
flb.mergeFilter(flb2, "OR");
flb.mergeFilter(flb3, "OR");
flb.mergeFilter(flb4, "OR"); filter.mergeFilter(fla, "AND");//这是一个含有合并过滤(mergeFilter)的案例 也可以是"and"
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,
对EntityViewInfo的理解的更多相关文章
- 金蝶handler中 collection 代码片段理解
1,AtsOverTimeBillBatchEditHandler中collection的理解 SelectorItemCollection selectors = new SelectorItemC ...
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
一.前言 DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- ThreadLocal简单理解
在java开源项目的代码中看到一个类里ThreadLocal的属性: private static ThreadLocal<Boolean> clientMode = new Thread ...
- JS核心系列:理解 new 的运行机制
和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...
随机推荐
- seleium 滑动到底部
def scroll(driver): driver.execute_script(""" (function () { var y = document.body.sc ...
- VS开发ArcEngine时的一个异常信息——“ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components.”
问题描述:程序报错“ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS ...
- jquery的操作
jQuery jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行 ...
- 云原生生态周报 Vol. 6 | KubeCon EU 特刊
5 月 26日,2019 年第一个 KubeCon + CloudNativeCon 在巴塞罗那成功闭幕.本届 KubeCon 共吸引了超过 7700 名与会者,相较去年哥本哈根大会的 4300 余名 ...
- Android Studio(十):添加assets目录
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- ubuntu14.04 编译hadoop-2.6.0-cdh5.4.4
1 protocol buffer sudo apt-get install libprotobuf-dev asn@hadoop1:~/Desktop$ protoc --version libpr ...
- Codeforces Round #168 (Div. 1 + Div. 2)
A. Lights Out 模拟. B. Convex Shape 考虑每个黑色格子作为起点,拐弯次数为0的格子构成十字形,拐弯1次的则是从这些格子出发直走达到的点,显然需要遍历到所有黑色黑色格子. ...
- HDU 2546 01背包问题
这里5元是个什么意思呢.差不多就是特殊情况了. 就是说最贵的那个东西先不买.并且最后要留下5元去买那个最贵的. 也就是说对现在金钱-5 拿剩下的钱去对减去最贵的商品后的商品dp.看这些剩下的钱能买多少 ...
- servicemix 实例 -- 参考open source ESBs in action这本书
1. 项目结构 2. bean服务处理单元 1)Person类 package esb.chapter3; import java.io.StringWriter; import javax.xml. ...
- Jackson-deserialization fails on circular dependencies(JackSon无限递归问题)
Ok, so I'm trying to test some stuffs with jackson json converter. I'm trying to simulate a graph be ...