资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
NC行业平台单据开发中的几点体会本技术资料版权属用友公司所有开发过程中的几点体会 单表界面 1、父类:nc.ui.trade.card.BillCardUI 2、分类:单表头(仅有主表)单表体(仅有子表) 3、对于单表体,如果需要在加载界面的同时加 载所有表体数据,则需在初始化时查询所有 数本技术资料版权属用友公司所有据并设置缓冲,以下为示例代码: private void initializeData() try /查询所有数据 String strWhere = “ isnull(dr,0)=0 “; SuperVO vos = getBusiDelegator().queryByCondition(MphSingledocVO.class,strWhe re); HYBillVO billVO = new HYBillVO(); /加载数据到单据 billVO.setChildrenVO(vos);本技术资料版权属用友公司所有/加载数据到缓冲 if (getBufferData().isVOBufferEmpty() getBufferData().addVOToBuffer(billVO);/加载 else getBufferData().setCurrentVO(billVO);/更新/设置当前行 getBufferData().setCurrentRow(0); catch (Exception e) e.printStackTrace(); 本技术资料版权属用友公司所有2、如果不需要在加载界面时加载所有表体数据 ,则在初始化时应将缓冲设为空,如 private void initializeData() HYBillVO billVO = new HYBillVO(); /单据子表VO设为空 billVO.setChildrenVO(null); /加载数据到缓冲 getBufferData().addVOToBuffer(billVO);/加载 /设置当前行 getBufferData().setCurrentRow(0); 本技术资料版权属用友公司所有3、如果有前台校验类,表bd_billtype中对应单据 类型的def3中必须写入校验类的完整路径名, 如nc.ui.mph.indirectcost.IndirectCostCHK; 4、对于单表体,保存单据后会回现所有表体数 据,如果不希望在保存后回现所有表体数据, 则需要在用户对象(getUserObject()中返回的 类)中实现开关接口IRetCurrentDataAfterSave ; 5、如果希望表体某列(小数类型)在界面加载 之后显示初始值0.00,则需要在初始化界面时 调用如下方法:本技术资料版权属用友公司所有getBillCardPanel().getBodyPanel().getRendererV O(). setShowZeroLikeNull(false) 该方法将关闭平台将0自动设置为空串的开关; 6、如需要动态加载不同的单据模板,则需要在 UI中覆盖方法getNodeKey(),将行业业务类 别作为NodeKey返回; 7、将某个按钮设为只有集团可用的方法(以编 辑按钮为例):本技术资料版权属用友公司所有EditBtnVO editBtnVO = new EditBtnVO(); ButtonVO btnVoEdit = editBtnVO.getButtonVO(); btnVoEdit.setBtnAttribute(btnVoEdit.ATTR_JT _Private); addPrivateButton(btnVoEdit);本技术资料版权属用友公司所有 单据管理界面 1、单据的审核、冲销等业务的特殊处理可在对 应类的方法specialxx(AggregatedValueObject vo, HYSuperDMO dmo)中实现; 2、如果单据表体包含动态列,则需要注意以下 两点:a、在保存单据VO前应先调用行业平台提供 的动态列工具 nc.ui.trade.crosstable.CrossTableTool的方法 getAllBodyVO()获得表体VO数组,并将本技术资料版权属用友公司所有获得的表体VO数组设置到当前的单据VO中;b、必须在UI类中覆盖方法 setCardUIData(AggregatedValueObject vo),在 该方法中调用动态列工具 nc.ui.trade.crosstable.CrossTableTool的方法 setBodyVO(SuperVO , boolean)来设置表体 数据。 3、单据界面实现多页面管理(如调用凭证)的 方法:本技术资料版权属用友公司所有a、在UI端创建多页面管理类(该类继承 nc.ui.trade.multiappinterface.MultiAppM anager);b、在多页面管理类中实现方法 getFirstClassName()返回界面UI类;c、在“功能注册”中应该注册多页面管理类 ,参数classname注册为界面UI类。本技术资料版权属用友公司所有 树管理界面 1、父类: nc.ui.trade.treemanage.MultiChildBillTreeMana geUI; 2、树管理界面的布局为左树右单据(卡片和列 表); 3、构造树的方法:本技术资料版权属用友公司所有实现接口IVOTreeDataByCode(按编码构造) 或IVOTreeDataByID(按ID构造)创建 TreeData类,在TreeData类的getTreeVO()中返 回构造树的VO数组,并在UI类中重载 createTreeData()返回TreeData类实例; 4、要在树节点中同时显示编码和名称,只要在 TreeData类的方法getShowFieldName()中返回 “编码字段名+名称字段名”即可;本技术资料版权属用友公司所有5、如要更改树中根节点的显示名称,可在UI类 中重载afterInit(),在该方法中调用 modifyRootNodeShowName(“存货分类”); 6、在UI中,选中节点后的事件处理可在 afterTreeSelected(VOTreeNode node)中实现;本技术资料版权属用友公司所有7、如果单据为多子表,则主子表VO必须实现 接口IExAggVO,并继承 nc.ui.trade.bsdelegate.BusinessDelegator创建前 台界面业务委托类,在该类中重载 loadChildDataAry(String tableCodes, String key)来加载各页签数据;WWW . UFSOFT . COM
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号