Files
NonWovenFabric/WindowsFormsApp6/实现总结.md
GukSang.Jin f00d3dd4dd '初始化'
2025-12-31 09:43:35 +08:00

168 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 液体吸收测试报告表格实现总结
## 已完成的功能
### 1. 表格结构设计
- **列结构**1个序号列 + 5个试样每个试样3列= 16列
- 序号列:显示行名称
- 每个试样包含:
- 系统读数(黄色背景,只读)
- 手动输入(白色背景,可编辑)
- 系统计算(黄色背景,只读)
- **行结构**6行数据
1. 吸水时间s- 从寄存器读取
2. 吸芯高度mm- 手动输入
3. 芯吸速率mm/min- 自动计算
4. 平均芯吸速率mm/min- 自动计算
5. 标准偏差 - 自动计算
6. 互检/审核 - 预留填充
### 2. 数据处理功能
#### 数据读取
- **吸水时间s**:通过 `ReadRegisterData()` 方法从寄存器读取
- 定时器每秒自动更新一次数据
- 支持5个试样同时读取
#### 手动输入
- **吸芯高度mm**:用户可在"手动输入"列直接编辑
- 编辑后自动触发重新计算
#### 自动计算
```csharp
// 芯吸速率计算公式
= mm / (s / 60)
// 平均芯吸速率
= Average()
// 标准偏差
= StdDev()
```
### 3. 界面功能
#### 按钮功能
- **连接设备**:启动/停止从寄存器读取数据
- **模拟数据**:生成测试数据用于演示
- **导出**导出数据到Excel文件
- **打印**:预留功能
- **返回**:关闭窗口
#### 样式设置
- 黄色背景:系统自动填充的数据(只读)
- 白色背景:可手动输入的数据(可编辑)
- 居中对齐:所有单元格内容
- 数值格式保留2位小数
### 4. Excel导出功能
#### 表头结构
- 第一行试样1-5每个试样合并3列
- 第二行:系统读数、手动输入、系统计算
- 序号列:合并两行
#### 样式保持
- 黄色背景:系统读数和系统计算列
- 白色背景:手动输入列
- 边框:所有单元格
- 居中对齐:所有内容
### 5. 数据验证
#### 计算逻辑
- 优先使用系统读数(吸水时间)
- 优先使用手动输入(吸芯高度)
- 自动过滤无效数据值为0的数据
- 实时更新计算结果
## 代码结构
### 主要方法
```csharp
// 初始化
InitializeDataTable() // 初始化数据表结构
InitializeDataGridView() // 初始化表格列
InitializeTimer() // 初始化定时器
InitializeEventHandlers() // 初始化事件处理
// 数据处理
ReadRegisterData() // 从寄存器读取数据
GenerateMockData() // 生成模拟数据
CalculateAllRows() // 计算所有行数据
CalculateWickingRate() // 计算芯吸速率
CalculateAverageWickingRate() // 计算平均芯吸速率
CalculateStandardDeviation() // 计算标准偏差
// 界面更新
UpdateDisplay() // 更新界面显示
RecalculateRow() // 重新计算指定行
// 导出功能
ExportToExcel() // 导出到Excel
GenerateReport() // 生成报表
```
### 事件处理
```csharp
DataTimer_Tick() // 定时器事件
DataGridView1_CellValueChanged() // 单元格值改变事件
DataGridView1_CellFormatting() // 单元格格式化事件
Button1_Click() // 连接设备按钮
Button5_Click() // 模拟数据按钮
Button3_Click() // 导出按钮
```
## 使用流程
1. **启动程序**
- 自动初始化表格结构
- 显示6行数据行
2. **连接设备**
- 点击"连接设备"按钮
- 开始从寄存器读取吸水时间数据
- 数据显示在"系统读数"列(黄色背景)
3. **输入数据**
- 在"吸芯高度"行的"手动输入"列输入测量值
- 系统自动计算芯吸速率
4. **查看结果**
- 芯吸速率自动显示在"系统计算"列
- 平均芯吸速率和标准偏差自动计算
5. **导出数据**
- 点击"导出"按钮
- 选择保存位置
- 生成Excel文件
## 测试功能
### 模拟数据生成
- 点击"模拟数据"按钮
- 自动生成:
- 吸水时间30-34秒之间的随机值
- 吸芯高度50-70mm之间的随机值
- 自动计算其他数据
## 注意事项
1. **数据精度**所有数值保留2位小数
2. **计算顺序**:先计算芯吸速率,再计算平均值和标准偏差
3. **数据验证**自动过滤无效数据值为0
4. **实时更新**:修改手动输入列后立即重新计算
5. **Excel格式**导出的Excel文件保持与界面相同的格式
## 扩展功能建议
1. **数据保存**:添加数据库存储功能
2. **历史记录**:查看历史测试记录
3. **打印功能**:完善打印报表功能
4. **数据校验**:添加数据范围校验
5. **多语言支持**:支持中英文切换
6. **图表显示**:添加数据可视化图表