Files
CSI-Z420-Tablet-Multi-Funct…/Views/HistoryWindow.xaml
GukSang.Jin 865f1c087a 更新2026
2026-05-18 16:53:29 +08:00

259 lines
16 KiB
XML

<Window x:Class="TabletTester2025.HistoryWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="clr-namespace:TabletTester2025.Helpers"
Title="历史检测记录" Width="1024" MinHeight="768"
WindowState="Maximized" WindowStartupLocation="CenterScreen"
Background="#F5F7FA">
<Window.Resources>
<!-- 阴影效果 -->
<DropShadowEffect x:Key="Shadow" BlurRadius="15" ShadowDepth="0" Opacity="0.1" Color="#1E293B"/>
<!-- 表格通用样式 -->
<Style TargetType="DataGrid">
<Setter Property="BorderBrush" Value="#E2E8F0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="RowBackground" Value="White"/>
<Setter Property="AlternatingRowBackground" Value="#F8FAFC"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
<Setter Property="CanUserResizeColumns" Value="True"/>
<Setter Property="CanUserSortColumns" Value="True"/>
<Setter Property="GridLinesVisibility" Value="Horizontal"/>
<Setter Property="RowHeight" Value="32"/>
<Setter Property="SelectionMode" Value="Single"/>
<Setter Property="SelectionUnit" Value="FullRow"/>
</Style>
<!-- 表头样式 -->
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#EFF3F6"/>
<Setter Property="Foreground" Value="#1E293B"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Height" Value="36"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="BorderBrush" Value="#E2E8F0"/>
<Setter Property="BorderThickness" Value="0,0,1,1"/>
</Style>
<!-- 按钮样式 -->
<Style TargetType="Button" x:Key="ActionButton">
<Setter Property="MinWidth" Value="80"/>
<Setter Property="Height" Value="34"/>
<Setter Property="Margin" Value="6,0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="#FFFFFF"/>
<Setter Property="Foreground" Value="#1E40AF"/>
<Setter Property="BorderBrush" Value="#CBD5E1"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="6"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1"
Padding="12,0">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#F1F5F9"/>
<Setter Property="BorderBrush" Value="#94A3B8"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#E2E8F0"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" x:Key="ExportButton" BasedOn="{StaticResource ActionButton}">
<Setter Property="Background" Value="#0F172A"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="#0F172A"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="6"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1"
Padding="12,0">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1E293B"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- TabControl 样式 -->
<Style TargetType="TabControl">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style TargetType="TabItem">
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Padding" Value="16,8"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#475569"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" Background="{TemplateBinding Background}"
BorderThickness="0,0,0,2" BorderBrush="Transparent"
Padding="{TemplateBinding Padding}">
<ContentPresenter ContentSource="Header"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="#3B82F6"/>
<Setter Property="Foreground" Value="#1E40AF"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="#93C5FD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 转换器 -->
</Window.Resources>
<Border Margin="20" Background="White" CornerRadius="16" Padding="0"
BorderBrush="#E2E8F0" BorderThickness="1" Effect="{StaticResource Shadow}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 标题栏 -->
<Border Grid.Row="0" Background="#F8FAFC" CornerRadius="16,16,0,0" Padding="20,16">
<TextBlock Text="📋 历史检测记录" FontSize="20" FontWeight="Bold"
Foreground="#0F172A" HorizontalAlignment="Center"/>
</Border>
<!-- 查询栏 -->
<Border Grid.Row="1" Background="White" Padding="16,12" Margin="0,0,0,8">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
</StackPanel>
</Border>
<!-- 四个标签页 -->
<TabControl Grid.Row="2" Margin="16,0,16,16">
<!-- 硬度 -->
<TabItem Header="硬度测试记录">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="📎 导出硬度报表" Style="{StaticResource ExportButton}"
Width="140" HorizontalAlignment="Right" Margin="0,0,0,12" Click="ExportHardness_Click"/>
<DataGrid x:Name="HardnessGrid" Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="检测时间" Binding="{Binding TestTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Width="160"/>
<DataGridTextColumn Header="样品名称" Binding="{Binding SampleName}" Width="120"/>
<DataGridTextColumn Header="平均值(N)" Binding="{Binding HardnessAvg, StringFormat=F1}" Width="90"/>
<DataGridTextColumn Header="RSD(%)" Binding="{Binding HardnessRSD, StringFormat=F1}" Width="80"/>
<DataGridTextColumn Header="最大值(N)" Binding="{Binding HardnessMax, StringFormat=F1}" Width="90"/>
<DataGridTextColumn Header="最小值(N)" Binding="{Binding HardnessMin, StringFormat=F1}" Width="90"/>
<DataGridTextColumn Header="测试次数" Binding="{Binding HardnessTestCount}" Width="70"/>
<DataGridTextColumn Header="内控下限(N)" Binding="{Binding HardnessInternalMin, StringFormat=F1}" Width="100"/>
<DataGridTextColumn Header="内控上限(N)" Binding="{Binding HardnessInternalMax, StringFormat=F1}" Width="100"/>
<DataGridTextColumn Header="判定" Binding="{Binding HardnessPassText}" Width="70"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<!-- 脆碎度 -->
<TabItem Header="脆碎度测试记录">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="📎 导出脆碎度报表" Style="{StaticResource ExportButton}"
Width="150" HorizontalAlignment="Right" Margin="0,0,0,12" Click="ExportFriability_Click"/>
<DataGrid x:Name="FriabilityGrid" Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="检测时间" Binding="{Binding TestTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Width="160"/>
<DataGridTextColumn Header="样品名称" Binding="{Binding SampleName}" Width="120"/>
<DataGridTextColumn Header="失重率(%)" Binding="{Binding FriabilityLoss, StringFormat=F2}" Width="100"/>
<DataGridTextColumn Header="设定转速(r/min)" Binding="{Binding FriabilityTargetRpm, StringFormat=F1}" Width="120"/>
<DataGridTextColumn Header="试验转数" Binding="{Binding FriabilityTargetRounds}" Width="80"/>
<DataGridTextColumn Header="前重(g)" Binding="{Binding WeightBefore, StringFormat=F3}" Width="90"/>
<DataGridTextColumn Header="后重(g)" Binding="{Binding WeightAfter, StringFormat=F3}" Width="90"/>
<DataGridTextColumn Header="判定" Binding="{Binding FriabilityPassText}" Width="70"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<!-- 崩解 -->
<TabItem Header="崩解时限记录">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="📎 导出崩解报表" Style="{StaticResource ExportButton}"
Width="150" HorizontalAlignment="Right" Margin="0,0,0,12" Click="ExportDisintegration_Click"/>
<DataGrid x:Name="DisintegrationGrid" Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="检测时间" Binding="{Binding TestTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Width="160"/>
<DataGridTextColumn Header="样品名称" Binding="{Binding SampleName}" Width="120"/>
<DataGridTextColumn Header="剂型规则" Binding="{Binding DisintegrationDosageForm}" Width="100"/>
<DataGridTextColumn Header="时限(秒)" Binding="{Binding DisintegrationLimitSeconds}" Width="80"/>
<DataGridTextColumn Header="崩解时间(秒)" Binding="{Binding DisintegrationTimeSec}" Width="100"/>
<DataGridTextColumn Header="剩余未崩解管" Binding="{Binding RemainingTubesAtEnd}" Width="110"/>
<DataGridTextColumn Header="水浴温度(℃)" Binding="{Binding DisintegrationTemp, StringFormat=F1}" Width="110"/>
<DataGridTextColumn Header="判定" Binding="{Binding DisintegrationPassText}" Width="70"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<!-- 溶出 -->
<TabItem Header="溶出度记录">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="📎 导出溶出报表" Style="{StaticResource ExportButton}"
Width="150" HorizontalAlignment="Right" Margin="0,0,0,12" Click="ExportDissolution_Click"/>
<DataGrid x:Name="DissolutionGrid" Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="检测时间" Binding="{Binding TestTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Width="160"/>
<DataGridTextColumn Header="样品名称" Binding="{Binding SampleName}" Width="120"/>
<DataGridTextColumn Header="通道" Binding="{Binding DissolutionChannel}" Width="80"/>
<DataGridTextColumn Header="30min溶出度(%)" Binding="{Binding DissolutionRate30Min, StringFormat=F1}" Width="130"/>
<DataGridTextColumn Header="R²" Binding="{Binding DissolutionRSquared, StringFormat=F4}" Width="80"/>
<DataGridTextColumn Header="取样明细" Binding="{Binding DissolutionSampleSummary}" Width="*"/>
<DataGridTextColumn Header="判定" Binding="{Binding DissolutionPassText}" Width="70"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Border>
</Window>