下面是客户端报错提示错误信息:com.kingdee.bos.BOSException: Can"t found 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 ASC错误详细堆栈信息:java.lang.RuntimeException: com.kingdee.bos.BOSException: Can"t found 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 ASC
解决办法:
检查抽象类的这个方法
/**
* output jbInit method
*/
private void jbInit() throws Exception
{
this.resHelper = new ResourceBundleHelper(AbstractProblemHandleNewEditUI.class.getName());
this.setUITitle(resHelper.getString("this.title"));
mainQueryPK = new MetaDataPK("com.kingdee.eas.base.message", "MsgQuery");
// CoreUI
this.tblMain.setFormatXml(resHelper.getString("tblMain.formatXml"));
this.tblMain.putBindContents("mainQuery",new String[] {"",""});
//如果不行的,这里就多了一句
this.tblMain.putBindContents("BMCMessage",new String[] {"id"});
//Register control's property binding
registerBindings();
registerUIState();
}
切换到元数据编辑界面ListUI,把新建的ListUI界面,默认的column1,cell1删除掉,点保存,然后重新添加column和cell,尽可能不要起column1和cell1默认名称,更改一下名字。然后发布一下,刷新代码,看看那句红色的是否还存在。如果没有应该就没有问题了
在BOS设计开发工具中新建了实体(继承了CoreBase),query,EditUI(绑定了实体),ListUI(绑定了query),发布生产java文件后,实现了为实现的方法,启动测试,点开ListUI后,报错。查了query里面的sql,并没有出现cu这个东西,并且也没有加任何的过滤条件。实在不明白这个CU.id是怎么来的,哪位高手遇到过,麻烦指点一下,谢谢!
错误信息:com.kingdee.bos.BOSException: Can't found propertyUnit: [CU] in [com.kingdee.eas.test0.app.Test]!, query : com.kingdee.eas.test0.app.TestQuery, view : WHERE (CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4' OR CU.id = '11111111-1111-1111-1111-111111111111CCE7AED4' OR CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4')
错误详细堆栈信息:java.lang.RuntimeException: com.kingdee.bos.BOSException: Can't found propertyUnit: [CU] in [com.kingdee.eas.test0.app.Test]!, query : com.kingdee.eas.test0.app.TestQuery, view : WHERE (CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4' OR CU.id = '11111111-1111-1111-1111-111111111111CCE7AED4' OR CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4')
at: com.kingdee.eas.framework.client.ListUI.tblMain_doRequestRowSetForNoQueryPK(ListUI.java:2003)
at: com.kingdee.eas.framework.client.ListUI.tblMain_doRequestRowSet(ListUI.java:2075)
at: com.kingdee.eas.framework.client.AbstractListUI$2.doRequestRowSet(AbstractListUI.java:332)
at: com.kingdee.bos.ctrl.kdf.data.impl.DataSetWrapperFactory.fireRequestRowSet(DataSetWrapperFactory.java:257)
at: com.kingdee.bos.ctrl.kdf.data.impl.DataSetWrapperFactory.requestData(DataSetWrapperFactory.java:233)
at: com.kingdee.bos.ctrl.kdf.table.KDTDataRequestManager.requestData(KDTDataRequestManager.java:517)
at: com.kingdee.bos.ctrl.kdf.table.KDTDataRequestManager.doDataRequestReal(KDTDataRequestManager.java:435)
at: com.kingdee.bos.ctrl.kdf.table.KDTDataRequestManager.doDataRequest2(KDTDataRequestManager.java:325)
at: com.kingdee.bos.ctrl.kdf.table.KDTDataRequestManager.doDataRequest(KDTDataRequestManager.java:283)
解决方式:
listui默认会增加cu的过滤,重载isIgnoreCUFilter(),return true方法就可以了;