- NC里增加新页签 一般是通过数据源扩展。
- 业务场景:模具档案,模具履历。 要将履历加到档案单据中以页签的形式展现。
- 思路:
跟踪资产档案中【设备卡片】->工单记录,故障记录

这里的工单记录 和 故障记录 就是添加的资产模块中的主子表单据。 - 设备卡片 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>
- 对应的页签内容处理类
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);
/* */ }
/* */ }
/* */ }
/* */ }