a
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
# 数据管理界面
|
||||
|
||||
<cite>
|
||||
**本文档引用的文件**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [datamngframe.h](file://h/datamngframe.h)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdlistview.h](file://h/appdatatdlistview.h)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [appdatatdgrlistview.h](file://h/appdatatdgrlistview.h)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [DataOperator.h](file://h/DataOperator.h)
|
||||
- [navdataview.cpp](file://cpp/Views/navdataview.cpp)
|
||||
- [navdataview.h](file://h/navdataview.h)
|
||||
- [excel.cpp](file://cpp/Tools/excel.cpp)
|
||||
- [excel.h](file://h/excel.h)
|
||||
</cite>
|
||||
|
||||
## 目录
|
||||
1. [引言](#引言)
|
||||
2. [项目结构](#项目结构)
|
||||
3. [核心组件](#核心组件)
|
||||
4. [架构概述](#架构概述)
|
||||
5. [详细组件分析](#详细组件分析)
|
||||
6. [依赖分析](#依赖分析)
|
||||
7. [性能考虑](#性能考虑)
|
||||
8. [故障排除指南](#故障排除指南)
|
||||
9. [结论](#结论)
|
||||
|
||||
## 引言
|
||||
数据管理界面是Geomative Studio软件的核心功能模块,负责测量数据的浏览、实时监控、数据导出与导入等关键任务。该界面通过`datamngframe`框架集成多种数据视图,如`appdatatdlistview`和`appdatatdgrlistview`,实现数据列表、图形化展示与详细信息面板的联动。用户可以通过该界面执行数据查询、筛选、导出(支持Excel、CSV、TXT、URF格式)和诊断报告生成等操作。开发者可以扩展数据导出格式、集成新的数据可视化组件或优化大数据量下的界面响应性能。
|
||||
|
||||
## 项目结构
|
||||
数据管理界面的代码主要分布在`cpp/Views`和`h`目录下,核心文件包括`datamngframe.cpp`、`appdatatdlistview.cpp`、`appdatatdgrlistview.cpp`和`DataOperator.cpp`。这些文件共同构成了数据管理的框架和视图组件。
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph "数据管理界面"
|
||||
datamngframe[datamngframe.cpp]
|
||||
appdatatdlistview[appdatatdlistview.cpp]
|
||||
appdatatdgrlistview[appdatatdgrlistview.cpp]
|
||||
DataOperator[DataOperator.cpp]
|
||||
navdataview[navdataview.cpp]
|
||||
end
|
||||
datamngframe --> DataOperator
|
||||
appdatatdlistview --> DataOperator
|
||||
appdatatdgrlistview --> DataOperator
|
||||
navdataview --> DataOperator
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [navdataview.cpp](file://cpp/Views/navdataview.cpp)
|
||||
|
||||
**Section sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [navdataview.cpp](file://cpp/Views/navdataview.cpp)
|
||||
|
||||
## 核心组件
|
||||
数据管理界面的核心组件包括`CDataMngFrame`、`CAppDataTdListView`、`CAppDataTdGrListView`和`CDataOperator`。`CDataMngFrame`作为主框架,管理界面的布局和视图切换。`CAppDataTdListView`和`CAppDataTdGrListView`分别负责数据列表和图形化数据的展示。`CDataOperator`作为数据操作器,处理数据的加载、导出和删除等操作。
|
||||
|
||||
**Section sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
|
||||
## 架构概述
|
||||
数据管理界面采用MVC(Model-View-Controller)架构,`CDataOperator`作为模型层,负责数据的存取和业务逻辑。`CDataMngFrame`作为控制器,管理视图的创建和切换。`CAppDataTdListView`和`CAppDataTdGrListView`作为视图层,负责数据的展示。
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CDataMngFrame {
|
||||
+CView* m_pAppDataView
|
||||
+CView* m_pNavDataView
|
||||
+bool ShowAppView(DWORD dwHandle, UINT uState)
|
||||
+bool ShowContentListByPageView(DWORD dwHandle, UINT uState, UINT uPage)
|
||||
}
|
||||
class CDataOperator {
|
||||
+_ConnectionPtr m_pConnection
|
||||
+CStateProcessor m_stateProcessor
|
||||
+CHandleProcessor m_handleProcessor
|
||||
+bool InitialNavDataView(CNavDataView* pNavDataView)
|
||||
+void ShowRsp2DTdInfo(DWORD dwTdHandle, CView* pAppDataView)
|
||||
+void ShowRspCETdInfo(DWORD dwTdHandle, CView* pAppDataView)
|
||||
+UINT ExportRsp2DTdToExcel(CNavDataView* pNavDataView, CString f_szFileName)
|
||||
}
|
||||
class CAppDataTdListView {
|
||||
+CMDIChildWnd* m_pMngFrm
|
||||
+void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnBatchexport()
|
||||
+void OnBatchDelData()
|
||||
}
|
||||
class CAppDataTdGrListView {
|
||||
+CMDIChildWnd* m_pMngFrm
|
||||
+void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnCustomDrawList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
}
|
||||
class CNavDataView {
|
||||
+CTreeCtrl m_dataTree
|
||||
+void Schedule()
|
||||
+void LoadByPageShedule()
|
||||
+void OnRclickNavDataTree(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnSelchangedNavDataTree(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
}
|
||||
CDataMngFrame --> CDataOperator : "uses"
|
||||
CDataMngFrame --> CAppDataTdListView : "creates"
|
||||
CDataMngFrame --> CAppDataTdGrListView : "creates"
|
||||
CDataOperator --> CNavDataView : "manages"
|
||||
CAppDataTdListView --> CDataOperator : "delegates"
|
||||
CAppDataTdGrListView --> CDataOperator : "delegates"
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [navdataview.cpp](file://cpp/Views/navdataview.cpp)
|
||||
|
||||
## 详细组件分析
|
||||
|
||||
### 数据管理框架分析
|
||||
`CDataMngFrame`是数据管理界面的主框架,继承自`CMDIChildWnd`,负责管理界面的布局和视图切换。它通过`CSplitterWnd`将界面分为导航视图和应用视图两部分。
|
||||
|
||||
#### 数据管理框架类图
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CDataMngFrame {
|
||||
+CView* m_pAppDataView
|
||||
+CView* m_pNavDataView
|
||||
+CSplitterWnd m_splitter
|
||||
+CDataOperator* m_pDataOperator
|
||||
+bool ShowAppView(DWORD dwHandle, UINT uState)
|
||||
+bool ShowContentListByPageView(DWORD dwHandle, UINT uState, UINT uPage)
|
||||
}
|
||||
CDataMngFrame --> CDataOperator : "owns"
|
||||
CDataMngFrame --> CView : "contains"
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [datamngframe.h](file://h/datamngframe.h)
|
||||
|
||||
### 数据列表视图分析
|
||||
`CAppDataTdListView`负责展示测量数据的列表,支持列排序、双击跳转和批量导出/删除操作。
|
||||
|
||||
#### 数据列表视图类图
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CAppDataTdListView {
|
||||
+CMDIChildWnd* m_pMngFrm
|
||||
+void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnBatchexport()
|
||||
+void OnBatchDelData()
|
||||
}
|
||||
CAppDataTdListView --> CDataMngFrame : "belongs to"
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdlistview.h](file://h/appdatatdlistview.h)
|
||||
|
||||
### 图形化数据视图分析
|
||||
`CAppDataTdGrListView`负责展示电极的图形化数据,支持自定义绘制,根据电极状态显示不同颜色。
|
||||
|
||||
#### 图形化数据视图类图
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CAppDataTdGrListView {
|
||||
+CMDIChildWnd* m_pMngFrm
|
||||
+void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
+void OnCustomDrawList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
}
|
||||
CAppDataTdGrListView --> CDataMngFrame : "belongs to"
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
- [appdatatdgrlistview.h](file://h/appdatatdgrlistview.h)
|
||||
|
||||
### 数据操作器分析
|
||||
`CDataOperator`是数据管理的核心,负责与数据库交互,加载和导出数据。
|
||||
|
||||
#### 数据操作器类图
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CDataOperator {
|
||||
+_ConnectionPtr m_pConnection
|
||||
+CStateProcessor m_stateProcessor
|
||||
+CHandleProcessor m_handleProcessor
|
||||
+bool InitialNavDataView(CNavDataView* pNavDataView)
|
||||
+void ShowRsp2DTdInfo(DWORD dwTdHandle, CView* pAppDataView)
|
||||
+void ShowRspCETdInfo(DWORD dwTdHandle, CView* pAppDataView)
|
||||
+UINT ExportRsp2DTdToExcel(CNavDataView* pNavDataView, CString f_szFileName)
|
||||
}
|
||||
CDataOperator --> _ConnectionPtr : "uses"
|
||||
CDataOperator --> CStateProcessor : "uses"
|
||||
CDataOperator --> CHandleProcessor : "uses"
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [DataOperator.h](file://h/DataOperator.h)
|
||||
|
||||
**Section sources**
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [DataOperator.h](file://h/DataOperator.h)
|
||||
|
||||
## 依赖分析
|
||||
数据管理界面依赖于`CDataOperator`进行数据操作,`CDataOperator`又依赖于数据库连接和状态处理器。
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
CDataMngFrame --> CDataOperator
|
||||
CDataOperator --> _ConnectionPtr
|
||||
CDataOperator --> CStateProcessor
|
||||
CDataOperator --> CHandleProcessor
|
||||
CAppDataTdListView --> CDataOperator
|
||||
CAppDataTdGrListView --> CDataOperator
|
||||
```
|
||||
|
||||
**Diagram sources**
|
||||
- [datamngframe.cpp](file://cpp/Views/datamngframe.cpp)
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp)
|
||||
- [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp)
|
||||
|
||||
## 性能考虑
|
||||
在处理大数据量时,应优化数据加载和渲染性能。建议使用分页加载和虚拟列表技术,避免一次性加载所有数据。
|
||||
|
||||
## 故障排除指南
|
||||
- **数据无法加载**:检查数据库连接是否正常,确认`CDataOperator`的`m_pConnection`是否有效。
|
||||
- **导出失败**:检查文件路径和权限,确保Excel组件正确安装。
|
||||
- **界面卡顿**:减少一次性加载的数据量,使用分页或虚拟列表。
|
||||
|
||||
**Section sources**
|
||||
- [DataOperator.cpp](file://cpp/Operator/DataOperator.cpp)
|
||||
- [excel.cpp](file://cpp/Tools/excel.cpp)
|
||||
|
||||
## 结论
|
||||
数据管理界面通过`datamngframe`框架和`DataOperator`组件,实现了测量数据的高效管理和可视化。开发者可以通过扩展`CDataOperator`来支持新的数据格式和导出功能,优化大数据量下的性能表现。
|
||||
Reference in New Issue
Block a user