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 _allData; public HistoryWindow() { InitializeComponent(); var connectionString = "Data Source=TabletTests.db"; _dbService = new DatabaseService(connectionString); LoadData(); } private void LoadData() { _allData = _dbService.GetBatches(null, 10000); ApplyFilter(); } private void ApplyFilter() { int? station = null; if (StationFilter.SelectedIndex == 1) station = 1; else if (StationFilter.SelectedIndex == 2) station = 2; else if (StationFilter.SelectedIndex == 3) station = 3; var filtered = _allData.AsEnumerable(); if (station.HasValue) filtered = filtered.Where(b => b.StationId == station.Value); // 为每个标签页绑定对应测试类型的数据 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 ExportHardness_Click(object sender, RoutedEventArgs e) { var data = HardnessGrid.ItemsSource as IEnumerable; 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; 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; 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; 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); } } }