数据结构

 

 

一张单据包括台头数据和明细数据,如下图一张销售单的结构:

其中上下两部分红色边框里用户输入的数据为销售单的台头数据,蓝色边框里的数据为明细数据。

 

明细数据,也称为项目、行项目数据,数量是不定的,一般存储在动态数组里面,在一个特定的单据里,比如销售单、采购单,行项目的结构都是一样的,但是不同的单据,其项目结构可能有差异,为了避免定义太多的数据结构,用一个通用的键值对来存储每一个项目数据,类名为CItemData,也就是说,每一行数据都是一个CItemData的对象,这些对象存储在一个动态数组里。

并不是看到的所有数据都存储在CItemData对象中,一般只存储数据库表的主键信息,因为这些信息才需要提交到服务器,按照关系数据库的范式规则,一个表引用另一个表,只需要引用关键字,以下面这行数据举例:

商品信息只需要存储货号,颜色需要存储编码 01而不是存储 黑色。所以在该行项目数据对象的键值对里,数据可能是如下存储的

说明
modnr 10774210 modnr是商品数据库表格的货号字段
crnmr 01 crnmr是颜色数据库表格的颜色编码字段
netpr 225 价格
... ...  

 

项目数据的动态属性

服装行业比较特殊,一个颜色可能有多个码数,比如 S、M、L、XL等等,这些码数也是用户自定义的,不能假设最多有多少个,所以也是动态的,也就说,一个项目数据里,也会有动态属性数据,为此,在CItemData的属性中,增加了一个CNSParameters类型的属性itemData,也是一个键值对,如下图:

,在这一行的itemData中,存储的数据是这样的:

说明
01 3 01是S码的编码
02 3 02是M码的编码
03 3 03是L码的编码
04 3 04是XL码的编码