9.8 KiB
数据管理界面
**本文档引用的文件** - [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)目录
引言
数据管理界面是Geomative Studio软件的核心功能模块,负责测量数据的浏览、实时监控、数据导出与导入等关键任务。该界面通过datamngframe框架集成多种数据视图,如appdatatdlistview和appdatatdgrlistview,实现数据列表、图形化展示与详细信息面板的联动。用户可以通过该界面执行数据查询、筛选、导出(支持Excel、CSV、TXT、URF格式)和诊断报告生成等操作。开发者可以扩展数据导出格式、集成新的数据可视化组件或优化大数据量下的界面响应性能。
项目结构
数据管理界面的代码主要分布在cpp/Views和h目录下,核心文件包括datamngframe.cpp、appdatatdlistview.cpp、appdatatdgrlistview.cpp和DataOperator.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
核心组件
数据管理界面的核心组件包括CDataMngFrame、CAppDataTdListView、CAppDataTdGrListView和CDataOperator。CDataMngFrame作为主框架,管理界面的布局和视图切换。CAppDataTdListView和CAppDataTdGrListView分别负责数据列表和图形化数据的展示。CDataOperator作为数据操作器,处理数据的加载、导出和删除等操作。
Section sources
架构概述
数据管理界面采用MVC(Model-View-Controller)架构,CDataOperator作为模型层,负责数据的存取和业务逻辑。CDataMngFrame作为控制器,管理视图的创建和切换。CAppDataTdListView和CAppDataTdGrListView作为视图层,负责数据的展示。
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
性能考虑
在处理大数据量时,应优化数据加载和渲染性能。建议使用分页加载和虚拟列表技术,避免一次性加载所有数据。
故障排除指南
- 数据无法加载:检查数据库连接是否正常,确认
CDataOperator的m_pConnection是否有效。 - 导出失败:检查文件路径和权限,确保Excel组件正确安装。
- 界面卡顿:减少一次性加载的数据量,使用分页或虚拟列表。
Section sources
结论
数据管理界面通过datamngframe框架和DataOperator组件,实现了测量数据的高效管理和可视化。开发者可以通过扩展CDataOperator来支持新的数据格式和导出功能,优化大数据量下的性能表现。