260 lines
16 KiB
XML
260 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="试验时间(min)" Binding="{Binding FriabilityTargetTimeMin, StringFormat=F1}" Width="110"/>
|
|
<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>
|