1、关于 eas bos 列表界面的忽略 CU 过滤protected boolean isIgnoreCUFilter() return true;如何删除叙事簿上的列设置格式。经常在开发过程中碰到对已发布的叙事簿(继承自 ListUI)再进行加字段等操作后,部署上去发现新格式不能生效,重新设置默认格式也无效。此问题的原因是系统已经保存了旧的格式,二次开发后之前的设置无法修改,只能删除掉此 ListUI 之前的设置信息,具体方法如下:一共涉及两张表:T_QUERY_QueryPanel 和 T_QUERY_QuerySolution,后者是主表,执行以下 sqldelete T_QUERY_Qu
2、eryPanel where fsolutionid in (select fid from T_QUERY_QuerySolution where FParentUIName=XXXUI);delete from T_QUERY_QuerySolution where FParentUIName=XXXUI;EntityViewInfo 中 FilterInfo 如何设置包含多项的过滤?EntityViewInfo 常常用作 bos 中接口参数,来做查询用,其中包含了 FilterInfo(过滤)、Selector(指定属性)以及 Sorter(排序),我们会经常碰到过滤时,某个属性要像 s
3、ql 中的 in 的查询方式,FilterInfo 提供了此功能,具体写法如下:第一种是 CompareType 用 Inner:用 inner 方式时,值项要写成如下格式:数值类型为:(1,2,3),字符串类型为“1,2,3“第二种是 CompareType 用 Include:用 Include 方式时,值项要写成如下格式:Set 类型,即建立一个 Set 对象,将值一个一个加入。注意:FilterInfo 在做 like 的过滤时,值项的两端要类似于 sql 加上“%“ 方可正确过滤。打开 ListUI 时先弹出过滤框覆盖 ListUI 的方法 initDefaultFilter(),返
4、回 true。代码如下:protected boolean initDefaultFilter()return true;新建用户界面继承 ListUI 使用 KDTable 报错新建用户界面 XXlistUI,在 bos 启动客户端进行调试时,进入业务单据界面时,跳出很抱歉,系统不能正常执行操作任务,请选择重新登录或退出系统的错误提示。下面是客户端报错提示错误信息:com.kingdee.bos.BOSException: Can“t found propertyUnit: CU in com.kingdee.eas.base.message.app.BMCMessage!, query :
5、 com.kingdee.eas.base.message.MsgQuery, view : WHERE (CU.id = “Q1nBg08PT/KJqhBLZWuu4sznrtQ=“ OR CU.id = “11111111-1111-1111-1111-111111111111CCE7AED4“ OR CU.id = “00000000-0000-0000-0000-000000000000CCE7AED4“) ORDER BY id ASC 错误详细堆栈信息:java.lang.RuntimeException: com.kingdee.bos.BOSException: Can“t f
6、ound propertyUnit: CU in com.kingdee.eas.base.message.app.BMCMessage!, query : com.kingdee.eas.base.message.MsgQuery, view : WHERE (CU.id = “Q1nBg08PT/KJqhBLZWuu4sznrtQ=“ OR CU.id = “11111111-1111-1111-1111-111111111111CCE7AED4“ OR CU.id = “00000000-0000-0000-0000-000000000000CCE7AED4“) ORDER BY id
7、ASC解决办法:检查抽象类的这个方法/* output jbInit method*/private void jbInit() throws Exceptionthis.resHelper = new ResourceBundleHelper(AbstractProblemHandleNewEditUI.class.getName();this.setUITitle(resHelper.getString(“this.title“);mainQueryPK = new MetaDataPK(“com.kingdee.eas.base.message“, “MsgQuery“);/ CoreU
8、I this.tblMain.setFormatXml(resHelper.getString(“tblMain.formatXml“);this.tblMain.putBindContents(“mainQuery“,new String “,“);/如果不行的,这里就多了一句this.tblMain.putBindContents(“BMCMessage“,new String “id“);/Register controls property bindingregisterBindings();registerUIState();切换到元数据编辑界面 ListUI,把新建的 ListUI 界面,默认的 column1,cell1 删除掉,点保存,然后重新添加 column 和 cell,尽可能不要起 column1 和 cell1 默认名称,更改一下名字。然后发布一下,刷新代码,看看那句红色的是否还存在。如果没有应该就没有问题了