EAS-BOS开发问题与解决

2019-08-30 20:43

Studio新建的UI发布只能看到抽象类的问题

在导入了新的解决方案之后,在二次开发时进行新建UI,进行发布,但是在代码视图中只能看到抽象类,没有其他的代码。

对于客户二次开发中用户自定义的单据才生成实现类,但发现BOS Studio新建的ui元数据自定义标记为false,导致在发布时认为不是用户自定义的,因此没生成实现类。

需要把ToolCommon 插件下

(E:\\kingdee\\bos\\BOSModular\\boscommon\\eclipse\\plugins\\com.kingdee.bos.toolcommon)的 toolcommon.properties 这个文件中的isDevelopVersion=true 改为: isDevelopVersion=false

如何修改UI的父类?

如何修改EditUI绑定的实体Entity?

点击UI,选择左边浏览方式“大纲”。选择Data Objects 的editData(查询对象)

设置由自己定义的一个Entity元素据。 Java源码会有这样一句话:

editData = (com.kingdee.eas.fi.fi_cs.CsAccountViewInfo)ov; 其中CsAccountViewInfo是自己定义的一个Entity。而com.kingdee.eas.fi.fi_cs则是他的路径。

如何修改ListUI绑定的查询Query?

解决:

点击UI,选择左边浏览方式“大纲”。选择Data Objects 的mainQuery(查询对象) 设置由自己定义的一个Query元素据。 Java源码会有这样一句话:

mainQueryPK = new MetaDataPK(\其中CsAccountViewQuery是自己定义的一个Query。而com.kingdee.eas.fi.fi_cs.app则是他的路径。

将一个元数据从一个文件夹直接拉到另外一个文件夹,打开文件的时候会报错误

com.kingdee.bos.engine.MDParseError 解决:

把元数据从一个文件夹移到另一个文件夹不能直接拉。需要用复制功能,并且只能够在EAS-BOS的工作透视图下。

如果在其他视图下进行操作,将无法复原。

导出sql的时候CreateTable.sql无法创建table,oracle和sqlserver定义的类型有什么不一致

原因:

导出数据表会自动生成一些脚本,但是选择oracle时,实际导出的却是sqlserver的脚本。导出有问题,oracle和sqlserver导出的都是sqlserver的脚本。 解决:

认清oracle和sqlserver定义的类型有什么不一致。

Oracle的Date等同于sqlserver的DateTime,nvarchar2等同于sqlserver的nvarchar。Varchar2等同于sqlserver的varchar。

com.kingdee.bos.metadata.MetaDataNotFoundException: Cannot found metadata BOSType[null]

原因:

没有重写ListUI的getBizInterface() 方法。

解决:一定要重新实现ListUI和EditUI的getBizInterface()方法,重新实现ListUI的getBizInterface()方法问题解决。

keyFiled没有设置,请重写getFiledName()方法。

解决:

在设置query元数据的时候没有配置好主键,一定要设置主键

无法实现字段排序

解决:在*UI.java文件上面添加方法

protected void tblMain_tableClicked(KDTMouseEvent e) throws Exception { //覆盖原方法

super.tblMain_tableClicked(e);

}

该方法会实现父类的排序功能。

备注:tblMain_tableClicked是指双击的事件。一般用在查询页面。 还有一个tblMain_tableSelectChanged是指点击时触发的事件。

日志操作写错:指标录入(分配)审核写成了指标录入(分配)修改。

原因:审核,反审核的操作最后都执行了修改的操作。所以就将日志文件改成了修改。而不是审核或者反审核。

分析:日志操作一般在.log文件上面做修改。

比如说这个问题。日志文件为指标管理属于集中支付模块,gov_biz.log在这个模块的源文件下面gov/biz/。一般添加日志在.log文件的日志项。选择某个目录,为其添加日志项,组名,别名都需要每一层每一层写清楚(这会自动默认上下级关系)。接着选定引用对象,(有两种对象:引用对象和功能对象)。功能对象还不是很了解,引用对象是一个实体。接着选定某些引用方法,意思就是这些方法触发的时候写入日志。

另外还有一个方法写入日志。直接在某个按钮操作调用写日志方法。该方法在

GovBasedataUtils是基础数据管理公用函数及接口。方法名为setOperLog,该方法有两个,具备不同的参数。选择所需要的方法调用。 备注:

针对这个bug需要注意一个空指针的问题,如果直接调用父类的actionPassAudit_actionPerforme的方法,会出现这个问题。原因是有refresh(e)方法进行刷新。所以不能调用父类的方法,自己重写。修改完日志的时候,还需要在文件菜单中同步一下日志项数据。setOperLog方法是写log进入操作对象这个字段。而不是写入操作这个字段。这点需要注意。

进入基础资料关联管理进行修改,删除的时候,日志操作出现字符串,没有正确显示操作对象

分析:首先检查日志有没有出错,没有出错的话可在java文件中进行修改。因为是删除和修改操作,所以我们可以重写父类的删除修改操作,添加一个写日志的操作。 解决:首先找到该Java文件: GovBaseDocBizRefListUI.java。 重写actionEdit_actionPerformed和 actionRemove_actionPerformed方法。 (GovBaseDocBizRefInfo) getBizInterface().getValue(new ObjectUuidPK(keyValue),getSelectorItemCols())是用来得到自己定义的对象这里是GovBaseDocBizRefInfo。而该对象的数据则用getSelectorItemCols()方法来获取。最后则是自己定义的写log的方法。

在改bug的过程中,还出现一个问题,就是写日志操作必须在修改和删除操作之前执行,否则会出现一些意外问题,比如说写日志写的不是当前选择的数据,而是选择第一条数据。还有就是出现删除操作提示记录找不到。这都是因为把写日志操作放在了修改和删除操作之后导致的。原因是如果是修改操作后返回的是第一条数据,修改完自然写的就是第一条数据的日志了。如果先删除再写日志的话肯定得不到对象,因为被先删除了,所以会出现提示。

无法启动debugserver.bat,debugserver窗口自动关闭。

解决:

到W:\\apusic\\domains\\server1路径下将server.xml文件删除即可解决。

Oracle sql语句报错:“未明确定义列”

解决:

在表关联中出现了相同的字段名字,给与一个别名就可以解决。


EAS-BOS开发问题与解决.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工作手机使用管理办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: