![](https://box.kancloud.cn/6ec00f09ad22765bbbdf418edadaa2f7_323x176.png) > 我爱罗经常用此招侦查,包括中忍考试偷窥答案,与迪达拉对战等。忍术优势:偷窥范围广,可以在任意场景下进行查探. 虚拟字段和沙之眼类似,是虚拟出来的,施(开)术(发)者通过查克拉施放出来的招式.专门用于偷(显)窥(示). 快速编辑元字段->添加虚拟字段(V1.6 beta2+) ![](https://box.kancloud.cn/afe83c8de98a6240126b01cb33fa1a32_518x154.png) 添加好的虚拟字段 ![](https://box.kancloud.cn/508912ec8a4ead15c6bf14af973a6038_1130x228.png) 元字段属性解释: > 字段表名=virtual 快速查询,导入,Form保存 会忽略此种字段 > 字段名自动开头标识 v_ > 虚拟字段禁止排序,和持久化,因为DB没有这个字段 > 虚拟字段主要用于临时的一些操作 虚拟字段实际案例: **格式化显示** 使用场景: 格式化显示,多列计算... ![](https://box.kancloud.cn/6fdb3c36b6a5782078c9dfaffb5ea089_479x178.png) ~~~ // 格式化器-代码 function(value, row, index, field) { return new Date().getFullYear() - row.age; } ~~~ **自定义查询** ![](https://box.kancloud.cn/9fee076d89b83ead674d7f6480ac893f_481x228.png) ~~~ public class TestIntercept extends MetaObjectIntercept { @Override public void queryBefore(AopContext ac) throws Exception { int year = ac.ctrl.getParaToInt("query_v_year");// Eova查询字段名都是 query_+元字段名, 获取事请注意 int age = DateTime.now().getYear() - year; // 覆盖查询条件,而year是虚拟字段,会被自动忽略(beta4新特性,请注意升级) ac.condition = "and age = ?"; ac.params.add(age); } } ~~~ **自定义新增修改** 虚拟字段可以自行控制新增状态和编辑状态 可以在新增和修改时,弄出来几个字段然后通过Aop取值然后搞事情! 和上面的自定义查询套路差不多,只不过是其它的Aop方法.