### NC65多子表开发及其合计功能实现
#### 多子表开发概述
NC65作为一款先进的企业管理软件,在其开发过程中支持多种定制化需求,其中包括多子表的开发。多子表的设计使得用户可以在同一张单据上管理多个不同类型的子表数据,大大提升了数据管理的灵活性与效率。
#### XML配置方法
为了实现多子表以及在表头、表体中增加合计的功能,开发者需要对XML进行相应的配置。以下为具体的配置示例:
1. **多子表配置**:
- 在`billForm`和`billListView`中通过`<property>`标签来设置是否显示合计行。
- 示例代码:
```xml
<property name="showTotalLine" value="true"/> <!-- 列表表头合计行显示 -->
<property name="showTotalLineTabcodes"> <!-- 列表表体合计行显示,需要指定页签编码 -->
<list>
<value>id_outtest_b</value>
<value>id_outtest_c</value>
</list>
</property>
```
- 上述配置表示在`billListView`中开启表头合计行显示,并且在表体中对页签编码为`id_outtest_b`和`id_outtest_c`的子表显示合计行。
2. **单子表配置**:
- 类似于多子表的配置方式,但只需为特定的子表配置合计行显示。
- 示例代码:
```xml
<property name="showTotalLine" value="true"/> <!-- 列表表头合计行显示 -->
<property name="showTotalLineTabcodes" value="id_outtest_bn_b"/> <!-- 表体合计,需要指定页签编码 -->
```
- 这里只开启了单个子表(页签编码为`id_outtest_bn_b`)的合计行显示。
#### NC产品的处理方式
在NC65的实际应用中,通常会涉及复杂的界面配置和后端逻辑实现。以卡片界面的`billForm`为例,具体实现步骤如下:
1. **定义BillForm**:
- 使用`<bean>`标签定义`billForm`组件,并指定初始化方法。
- 示例代码:
```xml
<bean id="billForm" class="nc.ui.ethx.ethx_outtest.ace.view.OuttestBillForm" init-method="initUI">
```
- 其中`OuttestBillForm`继承自`nc.ui.uif2.editor.BillForm`。
2. **处理合计行显示**:
- `OuttestBillForm`的父类`BillForm`中有一个名为`showTotalLineTabcodes`的属性,该属性类型为`List<String>`。
- 开发者可以通过设置该属性来控制哪些子表页签需要显示合计行。
- 示例代码:
```java
private List<String> showTotalLineTabcodes = null; // 在多个子表页签的情况下,通过此属性设置需要显示合计行的tabcode列表
```
#### 模板中字段的合计设置
除了上述XML配置之外,还需要在单据的模板中对需要求和的字段进行标记。这一步骤主要是在设计单据模板时完成的,通过勾选“合计”选项来指定哪些字段参与合计计算。
### 总结
NC65支持的多子表开发及其合计功能的实现涉及到前端界面的XML配置和后端逻辑处理。开发者需要根据实际需求灵活配置XML文件,并正确设置相关的属性值,以确保合计功能正常工作。此外,对于模板中需要求和的字段,也需要在设计阶段进行适当的标记。这些步骤共同确保了多子表及其合计功能的有效实施,从而提高了数据处理的准确性和效率。