数据结构

图0

图1
说明
- 图1是一张单据的典型结构,包括抬头数据和项目数据,抬头数据为单据的总览信息,图1中绿框包围的部分;项目数据是明细,包含了数量不等的产品信息,图中红框包围的部分,比如图1中包含两个产品;
- 一行项目数据又包含抬头数据和项目数据,比如图中黑框是抬头数据,灰框是项目数据;
- 所以一张单据包含两个嵌套的列表
- 单据数据类型为COrderData,单据的项目数据类型为CItemDataGroupItem,COrderData::groupItemCount()得到项目数量,COrderData::groupItemAt得到项目;
- 单据抬头数据,COrderData::header().stringValueOf(字段名)得到抬头数据的字段值
单据每行项目数据CItemDataGroupItem的访问方式
- CItemDataGroupItem.stringValueOf(字段名)得到抬头数据的字段值 ;
- CItemDataGroupItem.count()得到项目数据的数量;
- CItemDataGroupItem.itemAt()得到项目数据,项目数据类型是CItemData,图1中每一行颜色行就是一个CItemData对象,里面的尺码数据在CItemData.itemData中,这是一个Map,从尺码编码到数量的映射。
以上可以看出,一个单据包含两个嵌套的列表,外层列表是商品,内层列表是商品的颜色
界面

图1

图2

图3

图4
要点
- 1、当前输入的单据数据,放在全局变量的内存中,这样在多个Activity中编辑单据时可以直接访问内存中的单据。每一种单据类型当前编辑的单据内存中只有一份,数据类型为COrderData,包含台头数据和项目数据,每个项目的数据类型为CItemData,
-
2、一个款号,同一个颜色要允许输入多次,在服装工票系统中,进行裁床编菲的时候,很多时候,同一款的同一个颜色都要录入多次,也就是一个款的某个颜色可能多行数据。
为了实现该特性,可以通过COrderData的ItemOfKey函数实现。两次打开同一个商品输入数量时使用不同的CItemData,这样才能启动同一个商品的同一个颜色可以录入多次,所以关键字跟每次打开数量录入窗口相关,每次打开时关键字不同
- 3、一个款号,同一个颜色要允许输入多次,在服装工票系统中,进行裁床编菲的时候,很多时候,同一款的同一个颜色都要录入多次,也就是一个款的某个颜色可能多行数据。