NC 将某表单设置为 子表页签

本文详细介绍了在NC系统中如何通过数据源扩展来增加新的页签,以模具档案和模具履历为例,展示了如何在资产模块的主子表单据中添加页签,并解析了相关XML配置和代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. NC里增加新页签 一般是通过数据源扩展。
  2. 业务场景:模具档案,模具履历。 要将履历加到档案单据中以页签的形式展现。
  3. 思路:
    跟踪资产档案中【设备卡片】->工单记录,故障记录
    在这里插入图片描述
    这里的工单记录 和 故障记录 就是添加的资产模块中的主子表单据。
  4. 设备卡片 xml:equip_config.xml
这里配置了 对应的页签
	<bean id="billForm" class="nc.ui.aim.equip.view.BillFormView" init-method="initUI">
		<property name="model" ref="model"/>
		<property name="templateContainer" ref="templateContainer"/>
		<property name="headActions" ref="headTabActions"/>
		<property name="bodyActionMap" ref="bodyActionsMap"/>
		<property name="modelDataManager" ref="modelDataManager"/>
		<property name="userdefitemPreparator" ref="billDataPreparator"/>
		<property name="closingListener" ref="ClosingListener"/>
		<property name="ceStrategys" ref="cardComponentExtStrategys"/>
		<property name="clcStrategys" ref="cardListenerConnectStrategys"/>
		<property name="componentValueManager">
			//这里设置了对应的页签内容
			<bean class="nc.ui.aim.equip.view.BillCardPanelValueStrategy">
				<property name="notMetaTabCodes" ref="notMetaTabCodes"/>
			</bean>
		</property>
		<property name="scaleProcessor" ref="billCardDigitProcessor"/>
		<property name="freeItemManager" ref="freeItemManager"/>
		<property name="initDataManager" ref="initialDataManger"/>
	</bean>

//页签内容
<bean id="notMetaTabCodes" class="java.util.ArrayList">
		<constructor-arg>
			<list>
				<value>alter_history</value>
				<value>deploy_history</value>
				<value>lease_history</value>
				<value>other_history</value>
				<value>workorder_history</value>
				<value>failure_history</value>
				<value>warranty_contract</value>
				<value>pointcheck_history</value>
				<value>permit_history</value>
			</list>
		</constructor-arg>
	</bean>
  1. 对应的页签内容处理类
    nc.ui.aim.equip.view.BillCardPanelValueStrategy
private void addNoMetaBodyValues(Object obj)
/*     */   {
/*  85 */     if (obj == null) {
/*  86 */       return;
/*     */     }
/*  88 */     BillCardPanel billCardPanel = getBillCardPanel();
/*     */     IExAggVO exAggVO;
/*  90 */     if (IExAggVO.class.isAssignableFrom(obj.getClass())) {
/*  91 */       exAggVO = (IExAggVO)obj;
/*     */       
/*  93 */       for (String tabCode : getNotMetaTabCodes()) {
					 //通过tabcode 获取对应的VO名称 获取对应的数据类
					 //nc.vo.aim.equip.EquipVO 作为 接口实现类
/*  94 */         CircularlyAccessibleValueObject[] vos = exAggVO.getTableVO(tabCode);
/*  95 */         BillModel tabBillModel = billCardPanel.getBillModel(tabCode);
/*     */         
/*  97 */         if (tabBillModel != null) {
/*  98 */           BillItem[] items = billCardPanel.getBillModel(tabCode).getBodyItems();
/*     */           
/* 100 */           EquipClientUtil.processTimeZoneBeforeSetValue(vos, items);
/*     */           
/* 102 */           billCardPanel.getBillData().setBodyValueVO(tabCode, vos);
/*     */         }
/*     */       }
/*     */     }
/*     */   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值