169 lines
7.4 KiB
C#
169 lines
7.4 KiB
C#
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);
|
||
|
||
}
|
||
}
|
||
}
|