Files
CSI-Z420-Tablet-Multi-Funct…/Views/HistoryWindow.xaml.cs
GukSang.Jin df5c7566fb 更新
2026-05-20 14:27:16 +08:00

169 lines
7.4 KiB
C#
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.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using TabletTester2025.Models;
using TabletTester2025.Services;
namespace TabletTester2025
{
public partial class HistoryWindow : Window
{
private readonly DatabaseService _dbService;
private List<TestBatch> _allData;
public HistoryWindow(DatabaseService dbService)
{
InitializeComponent();
_dbService = dbService ?? throw new ArgumentNullException(nameof(dbService));
LoadData();
}
private void LoadData()
{
_allData = _dbService.GetBatches(null, 10000);
ApplyFilter();
}
private void ApplyFilter()
{
var filtered = _allData.AsEnumerable();
// 为每个标签页绑定对应测试类型的数据
HardnessGrid.ItemsSource = filtered.Where(b => b.TestType == "硬度").OrderByDescending(b => b.TestTime).ToList();
FriabilityGrid.ItemsSource = filtered.Where(b => b.TestType == "脆碎度").OrderByDescending(b => b.TestTime).ToList();
DisintegrationGrid.ItemsSource = filtered.Where(b => b.TestType == "崩解").OrderByDescending(b => b.TestTime).ToList();
DissolutionGrid.ItemsSource = filtered.Where(b => b.TestType == "溶出").OrderByDescending(b => b.TestTime).ToList();
}
private void RefreshButton_Click(object sender, RoutedEventArgs e)
{
LoadData();
}
private void DeleteHardness_Click(object sender, RoutedEventArgs e)
{
if (HardnessGrid.SelectedItem is not TestBatch batch)
{
MessageBox.Show("请先选择一条记录", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var result = MessageBox.Show($"确定要删除该记录吗?\n检测时间{batch.TestTime:yyyy-MM-dd HH:mm:ss}",
"确认删除", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes)
return;
_dbService.DeleteBatch(batch.Id);
LoadData();
}
private void DeleteFriability_Click(object sender, RoutedEventArgs e)
{
if (FriabilityGrid.SelectedItem is not TestBatch batch)
{
MessageBox.Show("请先选择一条记录", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var result = MessageBox.Show($"确定要删除该记录吗?\n检测时间{batch.TestTime:yyyy-MM-dd HH:mm:ss}",
"确认删除", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes)
return;
_dbService.DeleteBatch(batch.Id);
LoadData();
}
private void DeleteDisintegration_Click(object sender, RoutedEventArgs e)
{
if (DisintegrationGrid.SelectedItem is not TestBatch batch)
{
MessageBox.Show("请先选择一条记录", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var result = MessageBox.Show($"确定要删除该记录吗?\n检测时间{batch.TestTime:yyyy-MM-dd HH:mm:ss}",
"确认删除", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes)
return;
_dbService.DeleteBatch(batch.Id);
LoadData();
}
private void DeleteDissolution_Click(object sender, RoutedEventArgs e)
{
if (DissolutionGrid.SelectedItem is not TestBatch batch)
{
MessageBox.Show("请先选择一条记录", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var result = MessageBox.Show($"确定要删除该记录吗?\n检测时间{batch.TestTime:yyyy-MM-dd HH:mm:ss}",
"确认删除", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes)
return;
_dbService.DeleteBatch(batch.Id);
LoadData();
}
private void ExportHardness_Click(object sender, RoutedEventArgs e)
{
var data = HardnessGrid.ItemsSource as IEnumerable<TestBatch>;
if (data == null || !data.Any())
{
MessageBox.Show("没有硬度数据可导出", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var excelService = new ExcelExportService();
string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
$"硬度报表_{DateTime.Now:yyyyMMddHHmmss}.xlsx");
excelService.ExportHardnessToExcel(data, path);
MessageBox.Show($"导出成功: {path}", "完成", MessageBoxButton.OK, MessageBoxImage.Information);
}
private void ExportFriability_Click(object sender, RoutedEventArgs e)
{
var data = FriabilityGrid.ItemsSource as IEnumerable<TestBatch>;
if (data == null || !data.Any())
{
MessageBox.Show("没有脆碎度数据可导出", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var excelService = new ExcelExportService();
string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
$"脆碎度报表_{DateTime.Now:yyyyMMddHHmmss}.xlsx");
excelService.ExportFriabilityToExcel(data, path);
MessageBox.Show($"导出成功: {path}", "完成", MessageBoxButton.OK, MessageBoxImage.Information);
}
private void ExportDisintegration_Click(object sender, RoutedEventArgs e)
{
var data = DisintegrationGrid.ItemsSource as IEnumerable<TestBatch>;
if (data == null || !data.Any())
{
MessageBox.Show("没有崩解数据可导出", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var excelService = new ExcelExportService();
string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
$"崩解报表_{DateTime.Now:yyyyMMddHHmmss}.xlsx");
excelService.ExportDisintegrationToExcel(data, path);
MessageBox.Show($"导出成功: {path}", "完成", MessageBoxButton.OK, MessageBoxImage.Information);
}
private void ExportDissolution_Click(object sender, RoutedEventArgs e)
{
var data = DissolutionGrid.ItemsSource as IEnumerable<TestBatch>;
if (data == null || !data.Any())
{
MessageBox.Show("没有溶出数据可导出", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
var excelService = new ExcelExportService();
string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
$"溶出报表_{DateTime.Now:yyyyMMddHHmmss}.xlsx");
excelService.ExportDissolutionToExcel(data, path);
MessageBox.Show($"导出成功: {path}", "完成", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
}