Files
geomative/GeomativeStudio/.qoder/repowiki/zh/content/用户界面指南/数据管理界面/数据管理界面.md
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

9.8 KiB
Raw Blame History

数据管理界面

**本文档引用的文件** - [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)

目录

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构概述
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

引言

数据管理界面是Geomative Studio软件的核心功能模块,负责测量数据的浏览、实时监控、数据导出与导入等关键任务。该界面通过datamngframe框架集成多种数据视图,如appdatatdlistviewappdatatdgrlistview,实现数据列表、图形化展示与详细信息面板的联动。用户可以通过该界面执行数据查询、筛选、导出(支持Excel、CSV、TXT、URF格式)和诊断报告生成等操作。开发者可以扩展数据导出格式、集成新的数据可视化组件或优化大数据量下的界面响应性能。

项目结构

数据管理界面的代码主要分布在cpp/Viewsh目录下,核心文件包括datamngframe.cppappdatatdlistview.cppappdatatdgrlistview.cppDataOperator.cpp。这些文件共同构成了数据管理的框架和视图组件。

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

Section sources

核心组件

数据管理界面的核心组件包括CDataMngFrameCAppDataTdListViewCAppDataTdGrListViewCDataOperatorCDataMngFrame作为主框架,管理界面的布局和视图切换。CAppDataTdListViewCAppDataTdGrListView分别负责数据列表和图形化数据的展示。CDataOperator作为数据操作器,处理数据的加载、导出和删除等操作。

Section sources

架构概述

数据管理界面采用MVCModel-View-Controller)架构,CDataOperator作为模型层,负责数据的存取和业务逻辑。CDataMngFrame作为控制器,管理视图的创建和切换。CAppDataTdListViewCAppDataTdGrListView作为视图层,负责数据的展示。

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

详细组件分析

数据管理框架分析

CDataMngFrame是数据管理界面的主框架,继承自CMDIChildWnd,负责管理界面的布局和视图切换。它通过CSplitterWnd将界面分为导航视图和应用视图两部分。

数据管理框架类图

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

数据列表视图分析

CAppDataTdListView负责展示测量数据的列表,支持列排序、双击跳转和批量导出/删除操作。

数据列表视图类图

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

图形化数据视图分析

CAppDataTdGrListView负责展示电极的图形化数据,支持自定义绘制,根据电极状态显示不同颜色。

图形化数据视图类图

classDiagram
class CAppDataTdGrListView {
+CMDIChildWnd* m_pMngFrm
+void OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
+void OnCustomDrawList(NMHDR* pNMHDR, LRESULT* pResult)
}
CAppDataTdGrListView --> CDataMngFrame : "belongs to"

Diagram sources

数据操作器分析

CDataOperator是数据管理的核心,负责与数据库交互,加载和导出数据。

数据操作器类图

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

Section sources

依赖分析

数据管理界面依赖于CDataOperator进行数据操作,CDataOperator又依赖于数据库连接和状态处理器。

graph TD
CDataMngFrame --> CDataOperator
CDataOperator --> _ConnectionPtr
CDataOperator --> CStateProcessor
CDataOperator --> CHandleProcessor
CAppDataTdListView --> CDataOperator
CAppDataTdGrListView --> CDataOperator

Diagram sources

性能考虑

在处理大数据量时,应优化数据加载和渲染性能。建议使用分页加载和虚拟列表技术,避免一次性加载所有数据。

故障排除指南

  • 数据无法加载:检查数据库连接是否正常,确认CDataOperatorm_pConnection是否有效。
  • 导出失败:检查文件路径和权限,确保Excel组件正确安装。
  • 界面卡顿:减少一次性加载的数据量,使用分页或虚拟列表。

Section sources

结论

数据管理界面通过datamngframe框架和DataOperator组件,实现了测量数据的高效管理和可视化。开发者可以通过扩展CDataOperator来支持新的数据格式和导出功能,优化大数据量下的性能表现。