用友NC行业平台单据开发中的几点体会.ppt
文本预览下载声明
开发过程中的几点体会 单表界面 1、父类:nc.ui.trade.card.BillCardUI 2、分类: 单表头(仅有主表) 单表体(仅有子表) 3、对于单表体,如果需要在加载界面的同时加载所有表体数据,则需在初始化时查询所有数 2、如果不需要在加载界面时加载所有表体数据,则在初始化时应将缓冲设为空,如 private void initializeData() { HYBillVO billVO = new HYBillVO(); //单据子表VO设为空 billVO.setChildrenVO(null); //加载数据到缓冲 getBufferData().addVOToBuffer(billVO);//加载 //设置当前行 getBufferData().setCurrentRow(0); } getBillCardPanel().getBodyPanel().getRendererVO(). 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.MultiAppManager); b、在多页面管理类中实现方法getFirstClassName()返回界面UI类; c、在“功能注册”中应该注册多页面管理类,参数classname注册为界面UI类。 树管理界面 1、父类:nc.ui.trade.treemanage.MultiChildBillTreeManageUI; 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)来加载各页签数据; * 本技术资料版权属用友公司所有 NC行业平台单据开发中的几点体会 据并设置缓冲,以下为示例代码: private void initi
显示全部