单据录入界面与数据结构

数据结构

图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、一个款号,同一个颜色要允许输入多次,在服装工票系统中,进行裁床编菲的时候,很多时候,同一款的同一个颜色都要录入多次,也就是一个款的某个颜色可能多行数据。
  1. jni封装步骤

  2. src\main\cpp

  3. com.diante.socmobclient.activity

  4. com.diante.socmobclient.adapter

  5. com.diante.socmobclient.constant

  6. com.diante.socmobclient.control

  7. com.diante.socmobclient.dialog

  8. com.diante.socmobclient.fragment

  9. com.diante.socmobclient.global

  10. com.diante.socmobclient.jni

  11. com.diante.socmobclient.localbuf

  12. com.diante.socmobclient.pointer

  13. com.diante.socmobclient.print

  14. com.diante.socmobclient.set

  15. com.diante.socmobclient.util

  16. com.diante.socmobclient.view

  17. 线程

  18. 命名规范

  19. 适配方案

  20. 平板与手机结合

  21. 时间安排