明细表方案设计"/>
通用明细表方案设计
该文档分5部分
- 功能说明
- 设计文档
- 实现思路
- 关键步骤
- 任务WBS
功能说明
(1)实现明细表模板定义功能
(2)基于明细表模板定义,实现基础数据及统计数据获取
(3)基于明细表模板定义,填充表数据及UI展示数据。
(4)资源对话框管理明细表-删除及显示
设计文档
明细表迁移
场布算量明细表详细设计-2020.0826
实现思路
1.定义一个明细表模版类IBmDetailListTemplate
(1)主要是建立保存各类数据的映射关系。
(2)定义明细表数据显示模板,即每个明细单元显示什么数据
2.定义一个明细表数据过滤类IBmDetailListDataFilter
(1)实现哪些数据需要进行统计显示在明细表中
3.定义一个表单元数据填充器
4.定义个明细表类-BmDetailList
(1)解析明细表模板,调用不同表单元填充器,获取表单元数据将明细数据填充到数据表中。
(2)展现明细统计结果
5.静态结构图
6.产品端使用方法
(1)定义自己的明细表模版,包括如下数据:
- 表头数据定义
- 行数据字段定义
- 统计对象CategoryID列表-哪些对象需要统计
- 统计对象参数ID列表-需要统计对象的哪些参数
- 分组参数ID列表-需要按哪些参数分组
- 统计合并参数ID列表-哪些参数需要合并统计
(2)创建明细表,然后给明细表设置指定的模板
(3)然后更新明细表
关键步骤
1.明细表模板的设计-BmDetailListTemplate
主要是建立保存各元类数据的映射关系。
(1) 模板类单元格数据有四类:
- 统计类数据
- 静态固定数据-例如表头
- 行重复数据
- 内置数据-例如序列号
(2)数据源参数定义
- 统计对象CategoryID列表-哪些对象需要统计
- 统计对象参数ID列表-需要统计对象的哪些参数
- 分组参数ID列表-需要按哪些参数分组
- 统计合并参数ID列表-哪些参数需要合并统计
(3)元数据结构-CellMetaDataInfo
- 单元格行位置- (startCellColIndex,endCellColIndex,StartRowIndex,EndRowIndex);
- 对应统计对象参数ID
- 单元格内数据类型
- 对齐样式
- 字体样式
- 字体大小
- 边框线样式
2.明细表数据过滤类设计
(1)实现明细统计过滤逻辑,生成明细表的数据源。
数据过滤器处理逻辑:
a. 根据模板定义的类型ID及参数ID,获取基础的原始表数据,并存入数据基础表中。
b.利用sqlite的查询功能处理表达式逻辑计算功能,获取包含推导数据和原始数据,并存入衍生数据表中。
c.根据模板填充表单元定义,生成统计SQL语句,利用sqlite的统计功能,生成统计数据和填充到表中的数据。
(2)提供明细表数据源的访问接口
- 提供接口访问统计数据-根据统计对象参数ID获取值
- 提供提供分组行单元数据
- 提供分组个数接口
- 提供静态固定数据访问接口,例如表头数据等
每个明细表数据过滤器有唯一的名称,通过名称获取对应的数据过滤器。
3.明细表数据填充类设计
(1)设计表单元填充接口类-IBmDetailListCellDataFiller,派生四个四类:
- 行单元填充类-BmDetailListRowCellDataFiller
- 表头数据单元填充类-BmDetaiListHeaderDataFiller
- 统计数据单元填充类-BmDetailListStatisticsDataFiller
(2) 表数据填充接口-BmDetailListDataFiller
负责解析模板数据,调用不同的数据单元填充类填充明细表单元。
由具体的实现类完成。
4.明细表类设计
(1)可以复用GAP中的代码
(2)新增如下变量
DATA(ElementID,m_detailListTemplateID)
DATA(bool,NeedUpdateData)-表明数据是否过时,需要更新
(3)调用明细表数据填充类,获取单元填充数据
5.资源管理器-明细表项
(1)使用资源管理器自定义上下文菜单处理接口.
IBmModelViewDlgContextMenuEventHandler
(2)使用资源管理器自定义鼠标双击操处理接口
IBmModelViewDlgDoubleClickEventHandler
(3)使用资源管理器自定义刷新处理接口
IBmModelViewDlgRefreshEventHandler
插件加载时,注册事件处理器。卸载时,注销事件处理器。
明细表任务WBS
任务 | 子任务 | 工时 |
明细表模板类 | 实现明细表模板类定义 | 0.5 |
实现明细表单元结构设计 | 0.5 | |
完成明细表模板数据合法性检查 | 0.5 | |
完成明细表模板表单元映射关系及表单元访问接口 | 1.5 | |
明细表数据过滤 | 完成过滤器接口设计 | 0.5 |
完成过滤器数据接口实现 | 0.5 | |
完成过滤器管理实现 | 0.5 | |
明细表数据填充器 | 完成表数据填充器类及单元数据填充器设计 | 0.5 |
完成表头、表名及固定数据数据填充器实现 | 0.5 | |
完成行数据填充器实现 | 1 | |
完成统计数据填充器实现 | 1 | |
明细表类 | 完成明细表数据添加创建API | 1 |
完善迁移代码功能 | 1 | |
明细表数据更新 | 1 | |
明细表UI | 完成在资源管理管理明细表显示 | 0.5 |
完成在资源管理管理菜单处理 | 1 | |
完成对话框中显示明细表数据 | 1 | |
完成在资源管理管理双击操作 | 1 | |
其他 | 迁移代码完善及问题修复 | 3 |
测试UI | 0.5 | |
空指针检查 | 0.5 | |
代码评审 | 2 | |
总工时 | 20 | |
预计 | 24 |
更多推荐
通用明细表方案设计
发布评论