9.2 KiB
数据展示与分析
**本文档引用的文件** - [appdatatdlistview.cpp](file://cpp/Views/appdatatdlistview.cpp) - [appdatatdgrlistview.cpp](file://cpp/Views/appdatatdgrlistview.cpp) - [appdatatdlistview.h](file://h/appdatatdlistview.h) - [appdatatdgrlistview.h](file://h/appdatatdgrlistview.h) - [appdataipsp2dtdview.cpp](file://cpp/Views/appdataipsp2dtdview.cpp) - [appdatarsp2dtdview.cpp](file://cpp/Views/appdatarsp2dtdview.cpp) - [appdatarspcetdview.cpp](file://cpp/Views/appdatarspcetdview.cpp) - [DataMngStruct.h](file://h/DataMngStruct.h)目录
项目结构
Geomative Studio项目是一个地质勘探数据处理软件,其核心功能包括测试数据的展示与分析。项目结构清晰地分为多个模块,其中与数据展示直接相关的文件主要位于cpp/Views和h目录下。关键的测试数据展示组件包括列表视图(appdatatdlistview)和图形化视图(appdatatdgrlistview),这些组件负责渲染测试数据、处理用户交互以及实现数据可视化。
graph TB
subgraph "视图层"
A[appdatatdlistview] --> |继承| B[CListView]
C[appdatatdgrlistview] --> |继承| B
D[appdataipsp2dtdview] --> |继承| E[CView]
F[appdatarsp2dtdview] --> |继承| E
G[appdatarspcetdview] --> |继承| E
end
subgraph "数据管理"
H[DataMngStruct]
end
A --> H
C --> H
D --> A
D --> C
F --> A
F --> C
G --> A
C --> G
图表来源
- appdatatdlistview.h
- appdatatdgrlistview.h
- appdataipsp2dtdview.cpp
- appdatarsp2dtdview.cpp
- appdatarspcetdview.cpp
- DataMngStruct.h
章节来源
核心组件
测试数据展示功能的核心组件包括CAppDataTdListView和CAppDataTdGrListView,分别负责以列表和图形化方式展示测试数据。CAppDataTdListView提供了数据的表格化展示,支持列排序、批量导出和删除等操作。CAppDataTdGrListView则通过自定义绘制实现了数据的颜色编码,能够根据测量状态(如短路、开路、大电阻等)以不同颜色显示数据项,便于用户快速识别异常情况。
章节来源
架构概述
系统的数据展示架构采用MVC模式,视图层由多个继承自MFC框架的视图类组成。CAppDataTdListView和CAppDataTdGrListView作为具体的视图实现,通过消息映射机制响应用户交互事件。不同测量模式(如2D、3D、CE)的数据展示通过专门的视图类(如CAppDataIpsp2DTdView、CAppDataRsp2DTdView、CAppDataRspCETdView)来实现,这些视图类通过分割窗口将详细信息、内容列表和图形化视图组织在一起,形成统一的用户界面。
classDiagram
class CAppDataTdListView {
+OnInitialUpdate()
+OnColumnclick()
+OnDblclk()
+OnBatchexport()
+OnBatchDelData()
}
class CAppDataTdGrListView {
+OnInitialUpdate()
+OnColumnclick()
+OnCustomDrawList()
}
class CAppDataIpsp2DTdView {
+Create()
+OnSize()
}
class CAppDataRsp2DTdView {
+Create()
+OnSize()
}
class CAppDataRspCETdView {
+Create()
+OnSize()
}
CAppDataTdListView <|-- CAppDataIpsp2DTdView
CAppDataTdListView <|-- CAppDataRsp2DTdView
CAppDataTdListView <|-- CAppDataRspCETdView
CAppDataTdGrListView <|-- CAppDataIpsp2DTdView
CAppDataTdGrListView <|-- CAppDataRsp2DTdView
CAppDataTdGrListView <|-- CAppDataRspCETdView
图表来源
- appdatatdlistview.cpp
- appdatatdgrlistview.cpp
- appdataipsp2dtdview.cpp
- appdatarsp2dtdview.cpp
- appdatarspcetdview.cpp
详细组件分析
列表视图分析
CAppDataTdListView组件实现了测试数据的列表化展示,通过OnInitialUpdate方法初始化列标题,支持用户通过点击列标题进行排序。该组件还实现了批量导出和删除功能,通过进度条和状态提示为用户提供操作反馈。
flowchart TD
Start([初始化视图]) --> InsertColumns["插入列标题"]
InsertColumns --> SetExtendedStyle["设置扩展样式"]
SetExtendedStyle --> EnableSorting["启用列排序"]
EnableSorting --> EnableSelection["启用选择功能"]
EnableSelection --> End([视图准备就绪])
图表来源
章节来源
图形化视图分析
CAppDataTdGrListView组件通过OnCustomDrawList方法实现了数据项的自定义绘制,根据测量状态应用不同的文本颜色。短路和开路状态显示为红色,大电阻状态显示为蓝色,正常状态显示为黑色,这种颜色编码策略有助于用户快速识别异常测量值。
flowchart TD
Start([自定义绘制]) --> CheckStage["检查绘制阶段"]
CheckStage --> PrePaint{"预绘制阶段?"}
PrePaint --> |是| NotifyItemDraw["通知项目绘制"]
PrePaint --> |否| ItemPrePaint{"项目预绘制?"}
ItemPrePaint --> |是| NotifySubItemDraw["通知子项目绘制"]
ItemPrePaint --> |否| SubItemDraw{"子项目绘制?"}
SubItemDraw --> |是| GetStatus["获取状态文本"]
GetStatus --> CheckStatus{"状态为短路/开路?"}
CheckStatus --> |是| SetRed["设置红色文本"]
CheckStatus --> |否| CheckLargeRes{"状态为大电阻?"}
CheckLargeRes --> |是| SetBlue["设置蓝色文本"]
CheckLargeRes --> |否| SetBlack["设置黑色文本"]
SetRed --> End
SetBlue --> End
SetBlack --> End
图表来源
章节来源
测量模式视图分析
不同测量模式的视图类(如CAppDataIpsp2DTdView、CAppDataRsp2DTdView、CAppDataRspCETdView)通过创建分割窗口来组织界面布局。每个视图包含三个主要部分:详细信息面板、内容列表和图形化视图,这种一致的布局设计为用户提供了统一的操作体验。
sequenceDiagram
participant View as CAppDataIpsp2DTdView
participant Splitter1 as m_firstSplitter
participant Splitter2 as m_secondSplitter
participant Detail as CAppDataTdDetailListView
participant Content as CAppDataIpsp2DTdConListView
participant Graph as CAppDataTdGrListView
View->>View : Create()
View->>Splitter1 : CreateStatic(1,2)
Splitter1->>Splitter1 : CreateView(详细信息)
Splitter1->>Splitter2 : CreateStatic(2,1)
Splitter2->>Splitter2 : CreateView(内容列表)
Splitter2->>Splitter2 : CreateView(图形化视图)
Splitter2->>Splitter2 : RecalcLayout()
Splitter1->>Splitter1 : RecalcLayout()
图表来源
章节来源
依赖分析
测试数据展示组件依赖于MFC框架的CListView和CView基类,通过继承和重写虚函数来实现特定功能。这些组件还依赖于DataMngStruct类来获取和管理测试数据,形成了清晰的依赖关系。不同测量模式的视图类共享相同的列表和图形化视图组件,体现了代码的复用性。
graph TD
A[CAppDataTdListView] --> B[CListView]
C[CAppDataTdGrListView] --> B
D[CAppDataIpsp2DTdView] --> E[CView]
F[CAppDataRsp2DTdView] --> E
G[CAppDataRspCETdView] --> E
A --> H[DataMngStruct]
C --> H
D --> A
D --> C
F --> A
F --> C
G --> A
G --> C
图表来源
- appdatatdlistview.h
- appdatatdgrlistview.h
- appdataipsp2dtdview.cpp
- appdatarsp2dtdview.cpp
- appdatarspcetdview.cpp
- DataMngStruct.h
章节来源