用友 uap nc65开发编码树改为pk树方法

来源:互联网 发布:java医院管理系统 编辑:程序博客网 时间:2024/05/17 12:22
用友 uap   nc65开发编码树改为pk树方法
1.目标:现有节点树使用编码来排序,将其改为pk树排序。编码树和pk树的区别在我的博客中已经有讲解了。
2.第一步去掉TreeCreateStrategy 去掉 hierarchicalData。 或者修改 hierarchicalData指定成主键树

3.根据对象转换工厂,确保指定的主键和上下级主键都正确
  如果是 md模式。如下图,则需要保证元数据上,制定的接口映射,完全正确
  
<!-- 对象转换器工厂,由此获取操作对象的特征信息 --><bean id="BOAdapterFactory" class="nc.vo.bd.meta.GeneralBDObjectAdapterFactory"><property name="mode" value="MD"/></bean>



如果是按照VO的方式,则可以
<!-- 对象转换器工厂,由此获取操作对象的特征信息 -->
<bean id="objectadapterfactory" class="nc.vo.bd.meta.UAPBDObjectAdapterFactory"><property name="mode" value="VO" /><property name="idFieldName" value="pk_head" /><property name="codeFieldName" value="code" /><property name="nameFieldName" value="name" /><property name="pidFieldName" value="pk_father" /><property name="orgFieldName" value="pk_org" /><property name="groupFieldName" value="pk_group" /><property name="multiLangAttribute"><list><value>name</value></list></property></bean>
4.修改元数据 pk_father字段,以便维护,参照自身元数据,以可以手工调整修改父目录

5. 修改addAction。 在新增的时候,给pk_father 赋值,为当前选择的树项的主键
<!-- Action部分 *********************************************************** --><!--======= 动作:[newActions] [新增] =========== --><bean id="addAction" class="nc.ui.fdc_pr.h3030405.ace.action.MyAddAction"><property name="model"><ref bean="hModel" /></property><property name="exceptionHandler"><ref bean="exceptionHandler" /></property><property name="billform" ref="billForm"></property></bean>

package nc.ui.fdc_pr.h3030405.ace.action;import java.awt.event.ActionEvent;import nc.ui.pubapp.uif2app.actions.AddAction;import nc.ui.pubapp.uif2app.model.HierachicalDataAppModel;import nc.ui.pubapp.uif2app.view.BillForm;import nc.vo.bd.meta.IBDObject;public class MyAddAction extends AddAction {private BillForm billfrom;/** *  */private static final long serialVersionUID = -2583703804050441641L;@Overridepublic void doAction(ActionEvent e) throws Exception {// TODO 自动生成的方法存根super.doAction(e);HierachicalDataAppModel mode = (HierachicalDataAppModel) getModel();if (mode.getSelectedData() != null) {IBDObject obj = mode.getBusinessObjectAdapterFactory().createBDObject(mode.getSelectedData());getBillfrom().getBillCardPanel().setHeadItem("pk_father",obj.getId());}}public BillForm getBillfrom() {return billfrom;}public void setBillfrom(BillForm billfrom) {this.billfrom = billfrom;}}


0 0
原创粉丝点击