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

用友 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;

	@Override
	public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值