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,

做EAS,包括shr要养成一个习惯:打补丁前备份整个服务器目录,有问题就还原
 
8, 其他的案例
http://blog.csdn.net/douml88/article/details/8855333
 
 
9,要是不会,就可以找找js源码解读

对EntityViewInfo的理解的更多相关文章

  1. 金蝶handler中 collection 代码片段理解

    1,AtsOverTimeBillBatchEditHandler中collection的理解 SelectorItemCollection selectors = new SelectorItemC ...

  2. 理解CSS视觉格式化

    前面的话   CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...

  3. 彻底理解AC多模式匹配算法

    (本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...

  4. 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信

    接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...

  5. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  6. 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...

  7. 学习AOP之透过Spring的Ioc理解Advisor

    花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...

  8. ThreadLocal简单理解

    在java开源项目的代码中看到一个类里ThreadLocal的属性: private static ThreadLocal<Boolean> clientMode = new Thread ...

  9. JS核心系列:理解 new 的运行机制

    和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...

随机推荐

  1. HTTP参考

    HTTP参考 一.HTTP码应码响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行. 响应码分五种类型,由它们的第一位数字表示: 1.1xx:信息,请求收到,继续处理 2.2xx ...

  2. vue事件获取事件对象,vue获取事件源,vue event.currentTarget

    js的事件,如点击事件,可以直接用this获取事件对象,而jQuery可以使用$(this)来获取事件对象.vue必须借助事件的 event 对象 的 currentTarget 才能获取事件对象 v ...

  3. Vue.js 第2章 钩子函数&自定义指令&过滤器&计算属性&侦听器

    目标 钩子函数 自定义指令 自定义过滤器 计算属性 监听属性 局部自定义指令 为什么需要自定义指令 为了复用,为了代码的灵活 指令的分类:全局指令,局部指令 在vm外面创建的指令 通过Vue.dire ...

  4. docker oracle install

    https://hub.docker.com/r/9fevrier/oracle-11g Informations Oracle directory : /opt/oracle Data direct ...

  5. 注意 Laravel 清除缓存 php artisan cache:clear 的一个坑

    Laravel 的命令 php artisan cache:clear 用来清除各种缓存,如页面,Redis,配置文件等缓存,它会清空 Redis 数据库的全部数据,比如默认使用的 Redis 的 数 ...

  6. Android的headerView和emptyView共存问题

    今天做项目的时候,准备优化下ListView相关的东西,于是乎,需要做一个当列表无数据时,空的提醒页面.这个自然想到的是ListView的setEmptyView()方法,于是顺手就写了,可是,当我为 ...

  7. hdu 3934 Summer holiday (凸包+旋转卡壳)

    Problem - 3934 晚上为了演示给师弟看水平序的凸包是多么的好写,于是就随便找了一题凸包,25min居然1y掉了.. 代码如下: #include <cmath> #includ ...

  8. 微信授权登录-微信公众号和PC端网站

    https://blog.csdn.net/qq_34664239/article/details/79107529 一.微信公众号授权登录——微信公众平台 微信授权登录,并调用后台接口,获取用户信息 ...

  9. TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统

    TP-Admin即基于ThinkPHP5的web后台管理系统(总结一套自己的后台管理系统,方便自己后续的项目开发.) 主要特性:自适应手机端.支持国际化.吸取其他CMF框架优点.多站点部署.日志记录. ...

  10. 2018-9-1-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199

    title author date CreateTime categories win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 lindexi 2018-09-01 16:24: ...