(1)实现明细表模板定义功能
(2)基于明细表模板定义,实现基础数据及统计数据获取
(3)基于明细表模板定义,填充表数据及UI展示数据。
(4)资源对话框管理明细表-删除及显示
明细表迁移
场布算量明细表详细设计-2020.0826
1.定义一个明细表模版类IBmDetailListTemplate
(1)主要是建立保存各类数据的映射关系。
(2)定义明细表数据显示模板,即每个明细单元显示什么数据
2.定义一个明细表数据过滤类IBmDetailListDataFilter
(1)实现哪些数据需要进行统计显示在明细表中
3.定义一个表单元数据填充器
4.定义个明细表类-BmDetailList
(1)解析明细表模板,调用不同表单元填充器,获取表单元数据将明细数据填充到数据表中。
(2)展现明细统计结果
5.静态结构图
6.产品端使用方法
(1)定义自己的明细表模版,包括如下数据:
(2)创建明细表,然后给明细表设置指定的模板
(3)然后更新明细表
1.明细表模板的设计-BmDetailListTemplate
主要是建立保存各元类数据的映射关系。
(1) 模板类单元格数据有四类:
(2)数据源参数定义
(3)元数据结构-CellMetaDataInfo
2.明细表数据过滤类设计
(1)实现明细统计过滤逻辑,生成明细表的数据源。
数据过滤器处理逻辑:
a. 根据模板定义的类型ID及参数ID,获取基础的原始表数据,并存入数据基础表中。
b.利用sqlite的查询功能处理表达式逻辑计算功能,获取包含推导数据和原始数据,并存入衍生数据表中。
c.根据模板填充表单元定义,生成统计SQL语句,利用sqlite的统计功能,生成统计数据和填充到表中的数据。
(2)提供明细表数据源的访问接口
每个明细表数据过滤器有唯一的名称,通过名称获取对应的数据过滤器。
3.明细表数据填充类设计
(1)设计表单元填充接口类-IBmDetailListCellDataFiller,派生四个四类:
(2) 表数据填充接口-BmDetailListDataFiller
负责解析模板数据,调用不同的数据单元填充类填充明细表单元。
由具体的实现类完成。
4.明细表类设计
(1)可以复用GAP中的代码
(2)新增如下变量
DATA(ElementID,m_detailListTemplateID)
DATA(bool,NeedUpdateData)-表明数据是否过时,需要更新
(3)调用明细表数据填充类,获取单元填充数据
5.资源管理器-明细表项
(1)使用资源管理器自定义上下文菜单处理接口.
IBmModelViewDlgContextMenuEventHandler
(2)使用资源管理器自定义鼠标双击操处理接口
IBmModelViewDlgDoubleClickEventHandler
(3)使用资源管理器自定义刷新处理接口
IBmModelViewDlgRefreshEventHandler
插件加载时,注册事件处理器。卸载时,注销事件处理器。
任务 | 子任务 | 工时 |
明细表模板类 | 实现明细表模板类定义 | 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 |