




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 发布元数据没看到代码,可能有以下原因:1。发布方案路径(src,deploy,metadate)不对2. eas 5.4 更新数据中心报文件找不到错误:到项目目录下的runtime 下config 下的 datasources.xml 删除 版本检查代码-第二段代码3. 在eclipse中加入反编译插件,1。jad.exe 加入到C:WINDOWSsystem32 2. jadclipse_3.1.0.jar 加入到E:kingdeeEASeasbosBOSModularplatformeclipseplugins4. 继承ListUI的界面,必须有个id字段5. 加载onLoad方法出错,有可能是onLoad()方法,调用其他方法里面有错误代码6. Invalid column name : 1. rowSet.getString(“xxx”); xxx不是有效的列名 2. 还有就是table的列名无效7. 应用服务配置不正确:可能是:1.启动的服务器与运行的项目方案不一致 2数据库服务没有启动 3数据中心没有设置正确8. BOS 中实体Entity 的ID 是通过oracle的Functions 功能实现ID自动变化,通过entity_perties 这个找到每个实体的对应BOSTYPE的值。9. 使用BOS界面,弹出客户端配置错误,找不到第三方类,可能是:1.客户端代码有错误; 2类不存在10. 在单据里,得到各分录的记录:1.通过界面得到:ProposalDefinedInfo pdInfo ; /单据InfopdInfo. 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下的文件之前,最好是先校验下,如果校验不通过,那么发布肯定过不了。14BIM 发布不成功,有可能是:1. 元数据缓存空间,有脏数据,清理下 2. 数据中心不对 3. 数据库服务器没启动 4 源代码有错误15. 当功能运行结果跟你想象中有不一致的地方,但是你的操作认为没有什么问题, 这种情况可以是服务器读取文件没有更新:解决方法有:1. 你需要涮新下源文件src 2. 重新启动服务器16. 得到记录集合的方式:1. 通过实体工厂(xxxEntryFactory) 2. 通过查询(xxxQuery) 以下是具体实现代码: 1. 通过实体工厂(xxxEntryFactory) EntityViewInfo avevi = new EntityViewInfo(); FilterInfo avfilter = new FilterInfo(); avfilter.getFilterItems().add(new FilterItemInfo(id,accountId); avevi.setFilter(avfilter); AccountViewCollection myavc = AccountViewFactory.getRemoteInstance().getAccountViewCollection(avevi);2. 通过查询(xxxQuery)IQueryExecutor iqec = QueryExecutorFactory.getRemoteInstance(new MetaDataPK(posal.app, AsstActTypeQuery);iqec.option().isAutoIgnoreZero = false;iqec.option().isAutoTranslateBoolean = true;iqec.option().isAutoTranslateEnum = true;EntityViewInfo vv = new EntityViewInfo();FilterInfo ff = new FilterInfo();ff.getFilterItems().add(new FilterItemInfo(name,row.getCell(accoutView).getValue().toString();vv.setFilter(ff);iqec.setObjectView(vv);IRowSet rowSet = iqec.executeQuery();while (rowSet.next() 3. 通过执行sql语句 FDCSQLBuilder builder = new FDCSQLBuilder(); builder.appendSql(select sum(famount) as amount from T_CON_GuerdonBill where fcontractid =? AND fstate = ? AND fisGuerdoned = 1); builder.addParam(contractId); builder.addParam(4AUDITTED); IRowSet rowSet = 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属性里queryIposal.app.AsstActTypeQuery3. 建立一个BOS界面实体与F7 的实体关系RelationShipsAssociation com.kingdee.eas.custom.nj.app.R_F7_AsstType_FA1 -0.14. 在BOS界面实体,加入一个连接属性:projectPlace,并选好对应关系并在BOS界面实体对应表中加入F7实体ID,到相应表加入UI控件对应的字段,4.1到BOS界面,对F7字段进行数据绑定 5. 在query里,增加关联的子对象,并将属性导入到query里去,然后发布6. 将实体绑定到F77. 发布UI18.1 制作自定义辅助核算项目F7select * from T_BD_GeneralAsstActType t where t.fgroupid=iXhSqAEUEADgAWe2wKgA0gXSzQw= select * from T_BD_GeneralAsstActTypeGroup19. 弹出界面,并把值传到界面去UIContext uiContext = new UIContext(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 CommonQueryDialog initCommonQueryDialog() if(commonQueryDialog != null) return commonQueryDialog; else commonQueryDialog = super.initCommonQueryDialog(); commonQueryDialog.setWidth(400);commonQueryDialog.addUserPanel(new ContractFullFilterUI(this, actionOnLoad); return commonQueryDialog; 23. 得到外键属性的值:1.通过主实体得到得到该外键属性的id,如:entryInfo.get外键()对象(这个对象只有id);先得到外键对象id,通过id得到外键对象 2. 得到外键对象,那么就可以得到外键实体的任何属性值 24.初始化;界面 public void initUIToolBarLayout() super.initUIToolBarLayout(); kDBtnVoucher.setIcon(EASResource.getIcon(imgTbtn_auditing); 25. 点击table时,提示你没有选中行或者行的颜色没有变化可能:1.table里没有id字段2. tblMain.checkParsed(true);这段代码没写26.出了有关系统代码底层的错误,请检查自己的代码;27.设置单元格Cell数字格式,对齐格式:table.getColumn(columnName).getStyleAttributes().setNumberFormat(#,#0.00;-#,#0.00); table.getColumn(columnName).getStyleAttributes().setHorizontalAlign(com.kingdee.bos.ctrl.kdf.util.style.Styles.HorizontalAlignment.RIGHT);28.设置table可排序tblMain.getSortMange().setSortAuto(true); 29.设置按钮图标:kDWBtnRefresh.setIcon(EASResource.getIcon(imgTbtn_refresh);30.按钮绑定Action时,按钮变灰,把Action的使能属性变成true就行;31.多条件查询:1.多条件合并查询:EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo(state, 4AUDITTED); filter.getFilterItems().add(new FilterItemInfo(state, 8VISA); filter.getFilterItems().add(new FilterItemInfo(state, 7ANNOUNCE);view.setFilter(filter); 2.多条件或查询:EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo();filter.getFilterItems().add(new FilterItemInfo(contractBill.id, contractId); filter.getFilterItems().add(new FilterItemInfo(state, 4AUDITTED); filter.getFilterItems().add(new FilterItemInfo(state, 8VISA); filter.getFilterItems().add(new FilterItemInfo(state, 7ANNOUNCE); filter.setMaskString(#0 and (#1 or #2 or #3);view.setFilter(filter); 32.过滤查询排序:EntityViewInfo evi = new EntityViewInfo(); FilterInfo filterInfo = new FilterInfo(); /建立过滤条件 if(idSet!=null & idSet.size()0) filterInfo.getFilterItems().add(new FilterItemInfo(id,idSet,CompareType.INCLUDE); SorterItemCollection siColl = evi.getSorter(); siColl.add(new SorterItemInfo(longNumber); /需要排序的字段 SorterItemInfo siInfo= siColl.get(0); /第一个需要排序的字段 siInfo.setSortType(SortType.ASCEND); /需要排序的字段升序 evi.setFilter(filterInfo); 33.设置默认第一行被选中: protected void selectFirstRow() if(!isSelectForTable()&tblPaymentBill.getRow(0)!=null& tblMain.getRow(0) != null) tblPaymentBill.getSelectManager().select(0, 0); tblMain.getSelectManager().select(0, 0); 34. 慎重使用-在循环里去比较数值,这种情况尽量用过滤35. 发布后,找不到代码,检查下发布路径36. 用代码生成ID:BOSUuid.create(menuItemInfo.getBOSType()37. BigDecimal的加,减,乘,除加:addPayment = addPayment.add(paymentInfo.getLocalAmt();减:addPayment = addPayment. subtract(paymentInfo.getLocalAmt();乘:addPayment = addPayment. multiply(paymentInfo.getLocalAmt();除:addPayment = addPayment. divide(paymentInfo.getLocalAmt(),int);BigDecimal数据取整数:intValue();BigDecimal数据比较,取大数据:max();38. BigDecimal的初始化:BigDecimal addPayment = new BigDecimal(String.valueOf(0.00);39. 在子界面获取传递下来的数据private void loadContext()int mode = (Integer)this.getUIContext().get(EASMode).intValue();AccountTableInfo accountTableInfo = (AccountTableInfo) this.getUIContext().get(table);CtrlUnitInfo cuInfo = (CtrlUnitInfo) this.getUIContext().get(cu);AsstAccountInfo asstAccountInfo = (AsstAccountInfo) this.getUIContext().get(auxAccount);AuxAccountEditUI ui = (AuxAccountEditUI) this.getUIContext().get(Owner);40.初始化按钮属性(图标,标题,可见):重写方法initWorkButton()super.initWorkButton(); actionCashflow.setEnabled(true); btnRemove.setEnabled(true); setButtonDefaultStyl(btnQuery); btnQuery.setIcon(EASResource.getIcon(imgTbtn_filter); setButtonDefaultStyl(btnAttachment); btnSubmit.setIcon(EASResource.getIcon(imgTbtn_submit); setButtonDefaultStyl(btnSubmit);41.隐藏列: tblMain.getColumn(entries.originalAmount).getStyleAttributes().setHided(true);42.冻结表:tblMain.getStyleAttributes().setLocked(true);43. tblMain.getDataRequestManager().setDataRequestMode(1); tblMain.getSelectManager().setSelectMode(10);、44.对界面输入的字段进行校验:调用方法:verifyInput(ActionEvent e)VerifyInputUtil.verifyNull(this, txttitle, 主题); /判断是否为空if (finAuditorMap = null | finAuditorMap.size() = 0) MsgBox.showError(this, 请选择至少一位财务审批人!);SysUtil.abort();对界面分录输入的字段进行校验:for (int i = 0, size = this.kdtEntrys.getRowCount(); i 0) for(int i = activeIndex.length; i 0; i-) kDTable1.removeRow(activeIndexi - 1); else int lastRowIndex = kDTable1.getRowCount() - 1; kDTable1.removeRow(lastRowIndex); 55. 表格列设置成F7弹出可选模式: KDBizPromptBox prmtBox = new KDBizPromptBox(); prmtBox.setQueryInfo(com.kingdee.eas.ma.budget.BgElementQuery); prmtBox.setDisplayFormat(name); prmtBox.setEditFormat(number); prmtBox.setCommitFormat(number);EntityViewInfo contractEVInfo = new EntityViewInfo();FilterInfo contractFilter = new FilterInfo();contractFilter.getFilterItems().add(new FilterItemInfo(,getCurrentCompany();contractEVInfo.setFilter(contractFilter); prmtBox.setEntityViewInfo(contractEVInfo);kDTable1.getColumn(bgelement).setEditor(new KDTDefaultCellEditor(prmtBox);56. 表格列设置成下拉可选模式:KDComboBox combox = new KDComboBox();for(Iteratoriter = ValueTypeEnum.iterator();iter.hasNext();combox.addItem(iter.next();kDTable1.getColumn(getDataType).setEditor(new KDTDefaultCellEditor(combox);57弹出模式:1. 弹出一个新界面:UIFactoryName.Model 2. 弹出一个页签界面:UIFactoryName.NEWTAB 3. 弹出一个页签界面关闭上一个界面:UIFactoryName.FixTAB58. 如何指定选择模式 table.getSelectManager().setSelectMode(KDTSelectManager.CELL_SELECT);59. 获取所选中的行数: Int selectCount = tblMain.getSelectManager().size();60. 获取所选中的多行的各行的行号:int selectRows = KDTableUtil.getSelectedRows(tblMain);61. 获取树节点对象selectedPathObject = getSelectedTreeNode().getUserObjectPath();62. 新增需要查询的属性SelectorItemCollection sic = new SelectorItemCollection();sic.add(new SelectorItemInfo(description);sic.add(new SelectorItemInfo(number);sic.add(new SelectorItemInfo(contractProCost);sic = evi.getSelector();62. portal 1.设置可信站点 2. 下载kdjdk1.6 3. 下载kdtool.cad 4.设置自定义级别 5. Internet选项 常规设置查看对象 中删除kingdee文件63. 多值过滤,通过集合setHashSet set = new HashSet();OrgStructureInfo company;for(Iterator iter = list.iterator(); iter.hasNext(); set.add(company.getUnit().getId().toString() company = (OrgStructureInfo)iter.next();if(set.size() 0) filter.getFilterItems().add(new FilterItemInfo(orgUnit.id, set, CompareType.INCLUDE);64. 工作流 5.4 5.3版本的BOS工具在EAS安装了一些补丁之后,出现工作流不能连接,提示服务器无法连接,服务器不能启动的原因与EAS服务器所使用的BOS .jar包和BOS设计工具中使用的 .jar包不一致有关系 可以使用下面的步骤来手工同步把eas服务器安装路径下的几个jar包复制到bos工具安装目录的对应的几个文件下面例如eas服务器安装在 f:kingdee bos工具安装在 d:easbos从 F:Kingdeeeasserverlibcommonbos复制common.jar metadata.jar ormrpc.jar workflowcommon.jar bosframework.jar 到 D:EASBOSeasbosBOSModularboscommoneclipseplugins注意在bos里面这几个文件都有单独的文件夹来存放如mon_5.4.0,com.kingdee.bos.ormrpc_5.4.0,.不能只把几个jar文件都复制到bos工具的plugin文件夹需要逐个文件替换具体如下F:Kingdeeeasserverlibcommonbosormrpc.jar 替换D:EASBOSeasbosBOSModularboscommoneclipsepluginscom.kingdee.bos.ormrpc_5.4.0ormrpc.jar 其他依此类推共3个文件(workflowcommon.jar 的位置在D:EASBOSeasbosBOSModularwfdesignereclipsepluginscom.kingdee.bos.workflowcommon_5.4.0 bosframework.jar的位置在D:EASBOSeasbosBOSModularbosruntimeeclipsepluginscom.kingdee.bos.bosframework_5.4.0这两个的位置与其他3个不同)另外5.4版本的BOS工具不能使用其内置的服务器(5.3版本可以这样使用),必须连接EAS服务器,所以EAS服务器必须启动,连接的时候直接填写EAS服务器的IP地址即可还要注意EAS服务器在打了补丁之后BOS工具也需要单独打补丁方法是在BOS工具里面的帮助菜单里面的更新BOSIDE补丁,然后选择对应的补丁ZIP包就可以了例如PTM12603.ZIP最后运行一下D:EASBOSeasbosBOSModularclear_bosmodular_env.batBOS 工作流设计过程中出现异常错误信息可以先按照这个步骤来检查65. 工作流登陆,提示jar不存在将E:EAS54_BOSeasbosBOSModular540initfloweas540_initial.jar包添加66. KDSpinner 数字微调器 获取值方法:Integer accountLevel = (Integer)spnAccountLevel.getValue();Calendar calendar = GregorianCalendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1;SpinnerNumberModel yearLevelModel = new SpinnerNumberModel(1, 1,2100, 1); spnYear.setModel(yearLevelModel); spnYear.setValue(new Integer(year);67. KDComboBox 下拉选框 获取值方法:Object objectCurrency = cmbCurrency.getSelectedItem();CurrencyInfo currencyInfo = (CurrencyInfo)cmbCurrency.getSelectedItem();customCondition.setCurrencyID(currencyInfo.getId().toString();customCondition.setCurrencyName(currencyInfo.getName();68. 命名规范 KDCheckBox chk* KDLabel lbl*KDLabelContainer lblc*KDSpinner spn*KDComboBoxcmb*KDBizPromptBox prmt*KDButton btn*KDTextField txt*KDRadioBox rb*kDWorkButton wbtn* 69. 1. /update eclipse 中加入svn插件2. 安装svn 和 TortoiseSVN 3. 然后把 SVNService.exe 复制 到 svn 安装路径下的bin目录下去 4. 创建文件仓库:svnadmin create D:SVNStore 5. 启动服务器:SVNService -install -d -r d: SVNStore 修改服务器目录:SVNService -setup -d -r c:otherplace SVNStore 删除服务器目录:SVNService - remove -d -r d: SVNStore 6. SVNStoreconf:文件仓库的conf下配置文件修改: Authz:groupsproject = wp,dy,sg,wy,xsqSVNStore:/project = rw* = rnjnf:/project = rw* = r/project = rw# * = r70. 表格列值的加减乘除UIRuleUtil.getBigDecimalValue(table.getCell(i-1,1).getValue()-UIRuleUtil.getBigDecimalValue(table.getCell(i-2,1).getValue()71. 部署问题1. q:部署后,登陆服务器,报登陆应用服务器失败。 a:将本服务器不存在的元数据删除掉,如:entity.mapping中没有的实体关系72. 工作流脚本代码参考:isCustomer = false;com.kingdee.eas.basedata.master.cssp.CustomerInfo cstmInfo = new com.kingdee.eas.basedata.master.cssp.CustomerInfo();isCustomer = cstmInfo.getBOSType().equals(com.kingdee.bos.util.BOSUuid.read(asstActId).getType();msgHeader=;msgBody=;com.kingdee.eas.fi.ar.OtherBillInfo info = com.kingdee.eas.fi.ar.OtherBillFactory.getLocalInstance ( _bosContext ).getOtherBillInfo( new com . kingdee . bos . dao . ormapping . ObjectUuidPK ( billID ) ) ; com.kingdee.eas.basedata.master.cssp.CustomerInfo customerInfo = new com.kingdee.eas.basedata.master.cssp.CustomerInfo();customerInfo.setId(com.kingdee.bos.util.BOSUuid.read(info.getAsstActID();isRequire = com . kingdee . eas . scm . credit . util . CreditUtils . isRequireVerifyCreditAtAudit (_bosContext , info.getCompany() ,customerInfo, com . kingdee . eas . scm . credit . CreditFormulaSceneEnum . ARBILL_VALUE ) ;isOverspend = false;isTimeout=false; if ( isRequire ) com . kingdee . eas . scm . credit . CreditCondition creditCondition = new com . kingdee . eas . scm . credit . CreditCondition ( _bosContext ) ; java.util.Map billNumeric = new java.util.HashMap();com.kingdee.eas.basedata.assistant.PaymentTypeInfo pt = new com.kingdee.eas.basedata.assistant.PaymentTypeInfo();pt.setId(com.kingdee.bos.util.BOSUuid.read(com.kingdee.eas.scm.sd.sale.util.SaleConstant.PAYMENTTYPEID_CREDITSALE); creditCondition . putCondition ( customerInfo ,info.getCompany(), pt, com . kingdee . eas . scm . credit . CreditFormulaSceneEnum . ARBILL_VALUE,billNumeric) ; billNumeric.put(com.kingdee.eas.scm.credit.CreditCondition.BILL_NUMERIC_AMOUNT,com.kingdee.eas.fi.ar.app.util.ArServerUtils.readSubmitedReceivableBillCreditAmount(_bosContext ,creditCondition); creditCondition.setBillNumeric(billNumeric);creditCondition.setBillNumber(info.getNumber();creditCondition.setBillDate(info.getBizDate(); creditCtrlResult = com . kingdee . eas . scm . credit . CreditControlFacadeFactory . getLocalInstance ( _bosContext ).verifyCredit ( creditConditi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论