金蝶EASBOS工作笔记.docx
《金蝶EASBOS工作笔记.docx》由会员分享,可在线阅读,更多相关《金蝶EASBOS工作笔记.docx(44页珍藏版)》请在冰豆网上搜索。
金蝶EASBOS工作笔记
金蝶EAS-BOS工作笔记
————————————————————————————————作者:
———————————————————————————————— 日期:
1. 发布元数据没看到代码,可能有以下原因:
1。
发布方案路径(src,deploy,metadate)不对
2.eas5.4 更新数据中心报文件找不到错误:
到项目目录下的runtime下config下的 datasources.xml 删除 版本检查代码---第二段代码
3.在eclipse中加入反编译插件,1。
jad.exe 加入到C:
\WINDOWS\system32
2.jadclipse_3.1.0.jar加入到E:
\kingdeeEAS\eas\bos\BOSModular\platform\eclipse\plugins
4. 继承ListUI的界面,必须有个id字段
5.加载onLoad方法出错,有可能是onLoad()方法,调用其他方法里面有错误代码
6.Invalidcolumn name:
1.rowSet.getString(“xxx”); xxx不是有效的列名
2.还有就是table的列名无效
7. 应用服务配置不正确:
可能是:
1.启动的服务器与运行的项目方案不一致
ﻩﻩ2.数据库服务没有启动
ﻩﻩﻩ 3.数据中心没有设置正确
8.BOS中实体Entity的ID 是通过oracle的Functions 功能实现ID自动变化,通过entity_pkmapping.properties这个找到每个实体的对应BOSTYPE的值。
9.使用BOS界面,弹出‘客户端配置错误,找不到第三方类’,
可能是:
1.客户端代码有错误;
ﻩ 2.类不存在
10.在单据里,得到各分录的记录:
1.通过界面得到:
ProposalDefinedInfopdInfo;//单据Info
pdInfo.ProposalDefinedEntry1Collection();
//返回ProposalDefinedEntry1Collection集合
pdInfo.ProposalDefinedEntry2Collection();
//返回ProposalDefinedEntry2Collection集合
2.通过实体关系得到:
this.kdtEntry1 //得到kdtEntry1这个表格的对象
this.kdtEntry2//得到kdtEntry2这个表格的对象
this.kdtEntry3 //得到kdtEntry3这个表格的对象
11. 你想引用某个界面上所有功能:
1.可以通过继承这个界面
ﻩ2.可以通过复制这个界面,再反编译实现类ﻫ12.如果你得到一个实体的Info对象,再取到实体各字段的值
1. Info.getString(“这里写字段的名称”);
ﻩﻩ2.Info.get()方法——得到各属性的值
13.发布BIM或者是 BOS下的文件之前,最好是先校验下,如果校验不通过,那么发布肯定过不了。
14.BIM发布不成功,有可能是:
1. 元数据缓存空间,有脏数据,清理下
2.数据中心不对ﻩ
ﻩﻩﻩﻩ3.数据库服务器没启动ﻩ
ﻩﻩ4.源代码有错误
15.当功能运行结果跟你想象中有不一致的地方,但是你的操作认为没有什么问题,
这种情况可以是服务器读取文件没有更新:
解决方法有:
1.你需要涮新下源文件src
ﻩﻩﻩ2.重新启动服务器
16. 得到记录集合的方式:
1. 通过实体工厂(xxxEntryFactory)
ﻩﻩﻩﻩ2. 通过查询(xxxQuery)
以下是具体实现代码:
1.通过实体工厂(xxxEntryFactory)
EntityViewInfoavevi=new EntityViewInfo();
FilterInfo avfilter= newFilterInfo();
ﻩ avfilter.getFilterItems().add(newFilterItemInfo("id",accountId));
avevi.setFilter(avfilter);
ﻩ AccountViewCollectionmyavc=AccountViewFactory.getRemoteInstance().getAccountViewCollection(avevi);
2.通过查询(xxxQuery)
IQueryExecutoriqec=QueryExecutorFactory
ﻩﻩﻩ.getRemoteInstance(newMetaDataPK(
ﻩﻩﻩ"com.kingdee.eas.custom.proposal.app","AsstActTypeQuery"));
ﻩﻩiqec.option().isAutoIgnoreZero=false;
ﻩiqec.option().isAutoTranslateBoolean=true;
iqec.option().isAutoTranslateEnum=true;
EntityViewInfovv= newEntityViewInfo();
ﻩﻩFilterInfoff =newFilterInfo();
ff.getFilterItems().add(newFilterItemInfo("name",row.getCell("accoutView").getValue().toString()));
ﻩvv.setFilter(ff);
ﻩiqec.setObjectView(vv);
ﻩﻩIRowSetrowSet=iqec.executeQuery();
ﻩwhile(rowSet.next()){}
3.通过执行sql语句
ﻩFDCSQLBuilderbuilder=new FDCSQLBuilder();
ﻩ builder.appendSql("selectsum(famount)asamount fromT_CON_GuerdonBillwherefcontractid =?
ANDfstate = ?
ANDfisGuerdoned = 1");
ﻩ builder.addParam(contractId);
builder.addParam("4AUDITTED");
ﻩ IRowSetrowSet=builder.executeQuery();
if(rowSet.size()==1)
{
rowSet.next();
guerdonAmt= FDCHelper.toBigDecimal(rowSet.getBigDecimal("amount"));
}
ﻩ builder.clear();
17.删除界面中的字段要注意:
1.如果这个字段是在BIM下新建的,就要在BIM下去删除
ﻩﻩ如果这个字段是在BOS下新建的,就要在BOS下去删除
18.自定义F7实现步骤:
1.在BOS界面,先拖入kDLabelContainer,再拖入一个F7:
kDBizPromptBox
ﻩ调整F7大小:
boundLabelLength:
100
2.在F7控件绑定query在F7属性里
queryInfocom.kingdee.eas.custom.proposal.app.AsstActTypeQuery
3. 建立一个BOS界面实体与F7的实体关系RelationShips
ﻩﻩAssociation com.kingdee.eas.custom.nj.app.R_F7_AsstType_FA
ﻩﻩ1 --------0..1
4.在BOS界面实体,加入一个连接属性:
projectPlace,并选好对应关系
并在BOS界面实体对应表中加入F7实体ID,到相应表加入UI控件对应的字段,
4.1到BOS界面,对F7字段进行数据绑定
5. 在query里,增加关联的子对象,并将属性导入到query里去,然后发布
ﻩ6.将实体绑定到F7
ﻩ7. 发布UI
18.1 制作自定义辅助核算项目F7
select *fromT_BD_GeneralAsstActTypetwheret.fgroupid='iXhSqAEUEADgAWe2wKgA0gXSzQw='
select * fromT_BD_GeneralAsstActTypeGroup
19.弹出界面,并把值传到界面去
UIContextuiContext=newUIContext(this);
uiContext.put("ID",getSelectedKeyValue());
UIFactory.createUIFactory(UIFactoryName.MODEL).create(getEditUIName(),uiContext,null,OprtState.VIEW).show();
20.得到表格table的选中行的值:
getSelectedKeyValue();
21.如果你要在某列弹出某个单据query的信息,并把选中记录中的某个字段保存到数据库,并显示出来,出现内码问题?
1.你所指定的保存格式不存在
2.就是你指定的number,name值为空
22.界面UI弹出自定义过滤界面:
1. protected CommonQueryDialoginitCommonQueryDialog()
{
if(commonQueryDialog!
=null)
{
returncommonQueryDialog;
}else
{
commonQueryDialog= super.initCommonQueryDialog();
commonQueryDialog.setWidth(400);
commonQueryDialog.addUserPanel(newContractFullFilterUI(this, actionOnLoad));
return commonQueryDialog;
}
}
23.得到外键属性的值:
1.ﻩ通过主实体得到得到该外键属性的id,如:
entryInfo.get外键()对象(这个对象只有id);先得到外键对象id,通过id得到外键对象
ﻩ2.得到外键对象,那么就可以得到外键实体的任何属性值
24.ﻩ初始化;界面ﻩ
publicvoidinitUIToolBarLayout()
{
super.initUIToolBarLayout();
kDBtnVoucher.setIcon(EASResource.getIcon("imgTbtn_auditing"));
}
25.点击‘table’时,提示‘你没有选中行’或者‘行的颜色没有变化’
可能:
1.table里没有id字段
ﻩﻩ2.tblMain.check