EPLAN_PROD_Plugin/Sinvo.EplanHpD.Plugin.WPFUI/MainWindow.xaml

459 lines
25 KiB
Plaintext
Raw Normal View History

2024-10-24 18:01:26 +08:00
<Window
x:Class="Sinvo.EplanHpD.Plugin.WPFUI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:util="clr-namespace:Sinvo.EplanHpD.Plugin.WPFUI.Utils"
xmlns:viewmodel="clr-namespace:Sinvo.EplanHpD.Plugin.WPFUI.ViewModel"
Title="线材资料检查"
Width="1600"
Height="800"
d:DataContext="{d:DesignInstance Type=viewmodel:MainViewModel}"
Loaded="Window_Loaded"
mc:Ignorable="d">
<Window.Resources>
<Style x:Key="DefaultDataGridRowStyle" TargetType="DataGridRow">
<Setter Property="Padding" Value="5" />
<Setter Property="MinHeight" Value="25" />
</Style>
<Style x:Key="DefaultDataGridCellStyle" TargetType="DataGridCell">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="MinHeight" Value="25" />
<Setter Property="FontSize" Value="13" />
<Setter Property="Padding" Value="2,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="White" />
<Setter Property="Height" Value="30" />
<Setter Property="FontSize" Value="13" />
<Setter Property="BorderThickness" Value="1,0,0,0" />
<Setter Property="BorderBrush" Value="#aa424242" />
<Setter Property="Padding" Value="2,0,0,0" />
</Style>
<Style TargetType="TabControl">
<Setter Property="VerticalContentAlignment" Value="Bottom" />
</Style>
<Style TargetType="TabItem">
<Setter Property="Background" Value="#33424242" />
<Setter Property="FontSize" Value="13" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border
Padding="5"
Background="{TemplateBinding Background}"
BorderBrush="#66424242"
BorderThickness="1,1,1,0"
CornerRadius="5,5,0,0">
<TextBlock
x:Name="txt"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="{TemplateBinding FontSize}"
Foreground="{TemplateBinding Foreground}"
Text="{TemplateBinding Header}"
TextTrimming="CharacterEllipsis"
ToolTip="{TemplateBinding Header}"
Visibility="Visible" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Background" Value="#33424242" />
</Trigger>
</Style.Triggers>
</Style>
<util:FlagEnumConverter x:Key="FlagEnumConverter" />
<DataTemplate x:Key="LoadingMask">
<Grid Background="#66424242">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<TextBlock
HorizontalAlignment="Center"
FontSize="16"
Text="加载中..." />
<ProgressBar
Width="200"
Height="10"
IsIndeterminate="True" />
2024-10-24 18:01:26 +08:00
</StackPanel>
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="105" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ContentPresenter
x:Name="LoadingMask"
Grid.Row="0"
Grid.RowSpan="2"
Panel.ZIndex="99"
Content="{Binding}"
ContentTemplate="{StaticResource LoadingMask}" />
<GroupBox Grid.Row="0" Header="操作">
<StackPanel Orientation="Horizontal">
<GroupBox MinWidth="200" Header="项目信息">
<StackPanel Orientation="Vertical">
<StackPanel
Margin="5"
VerticalAlignment="Center"
Orientation="Horizontal">
<TextBlock Text="项目号:" />
<TextBox MinWidth="100" Text="{Binding ProjectNo}" />
</StackPanel>
<StackPanel Margin="5,0,0,0" Orientation="Vertical">
<CheckBox Content="是否全部CE认证" IsChecked="{Binding IsRequireCe}" />
<CheckBox Content="是否使用变色套" IsChecked="{Binding IsUseDiscoloration}" />
</StackPanel>
</StackPanel>
</GroupBox>
<GroupBox MinWidth="200" Header="机构信息">
<StackPanel Orientation="Vertical">
<StackPanel
Margin="5"
VerticalAlignment="Center"
Orientation="Horizontal">
<TextBlock Width="60" Text="机构号:" />
<TextBox MinWidth="100" Text="{Binding MechanismNo}" />
</StackPanel>
<StackPanel
Margin="5"
VerticalAlignment="Center"
Orientation="Horizontal">
<TextBlock Width="60" Text="机构名称:" />
<TextBox MinWidth="100" Text="{Binding MechanismName}" />
</StackPanel>
</StackPanel>
</GroupBox>
<Button
Height="40"
Margin="10"
Padding="10"
Click="Button_Click"
Content="检查"
FontSize="14" />
<Button
x:Name="GenTemplateBtn"
Height="40"
Margin="10"
Padding="10"
Click="GenTemplateBtn_Click"
Content="生成导入模板数据"
FontSize="14" />
</StackPanel>
</GroupBox>
<TabControl x:Name="DataTabControl" Grid.Row="1">
<TabItem Header="报表数据">
<DataGrid
x:Name="OriginialDataGrid"
AutoGenerateColumns="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
2024-10-24 18:01:26 +08:00
IsReadOnly="True"
ItemsSource="{Binding Data, IsAsync=True}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
2024-10-24 18:01:26 +08:00
<DataGrid.Resources>
<Style BasedOn="{StaticResource DefaultDataGridRowStyle}" TargetType="DataGridRow" />
<Style BasedOn="{StaticResource DefaultDataGridCellStyle}" TargetType="DataGridCell" />
</DataGrid.Resources>
</DataGrid>
</TabItem>
<TabItem Header="型号生成" IsSelected="True">
<DataGrid
x:Name="ModelGenDataGrid"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
ClipboardCopyMode="IncludeHeader"
2024-10-26 14:40:46 +08:00
EnableColumnVirtualization="False"
EnableRowVirtualization="True"
ItemsSource="{Binding StuffedData, IsAsync=True}"
ScrollViewer.CanContentScroll="True"
2024-10-24 18:01:26 +08:00
SelectionUnit="FullRow"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
2024-10-24 18:01:26 +08:00
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Click="IgnoreSelectedError_Click" Header="忽略选中项的异常" />
<MenuItem Click="GoToSource_Click" Header="转至源" />
2024-10-26 14:40:46 +08:00
<MenuItem Click="UnIgnoreSelectedError_Click" Header="取消忽略选中项的异常" />
2024-10-24 18:01:26 +08:00
<MenuItem
Click="Copy_Click"
Header="复制导线名称"
Tag="WireName" />
<MenuItem Header="复制">
<MenuItem
Click="Copy_Click"
Header="复制料号与异常信息"
Tag="MNoAndErrMsg" />
<MenuItem
Click="Copy_Click"
Header="单独复制料号"
Tag="MNo" />
<MenuItem
Click="Copy_Click"
Header="单独复制异常信息"
Tag="ErrMsg" />
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Resources>
<Style BasedOn="{StaticResource DefaultDataGridRowStyle}" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsError}" Value="true">
<Setter Property="Background" Value="#dc4d41" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsError}" Value="false" />
<Condition Binding="{Binding IsChecked}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#18a05d" />
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
<Style BasedOn="{StaticResource DefaultDataGridCellStyle}" TargetType="DataGridCell" />
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding WireName}"
Header="导线名称"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding WireColor}"
Header="线色"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding WireModel}"
Header="线材型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding WireCode}"
Header="线材编码"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding FrontTerminalModel}"
Header="前端子型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding FrontTerminalMaterialCode}"
Header="前端子物料编码"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding FrontStripLength}"
Header="前端剥线长度"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding RearTerminalModel}"
Header="后端子型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding RearTerminalMaterialCode}"
Header="后端子物料编码"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding RearStripLength}"
Header="后端剥线长度"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding CrossSection}"
Header="截面积"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding WireLength}"
Header="线长"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding WireNumber}"
Header="线号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding Model}"
Header="型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding Quantity}"
Header="数量"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding NumberTubeSpec}"
Header="号码管型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding NumberTubeMaterialNo}"
Header="号码管料号"
IsReadOnly="True" />
2024-10-24 18:01:26 +08:00
<DataGridTextColumn
Binding="{Binding DiscolorationDesc}"
Header="变色套型号"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding Insulation.MaterialCode}"
Header="变色套料号"
IsReadOnly="True" />
<DataGridCheckBoxColumn Header="忽略异常">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Viewbox Height="20">
<CheckBox
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
VerticalAlignment="{TemplateBinding VerticalAlignment}"
IsChecked="{Binding IsIgnore, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Viewbox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
<DataGridTextColumn
Binding="{Binding CheckedMsg}"
Header="检查信息"
IsReadOnly="True" />
<DataGridTextColumn
Binding="{Binding ErrorCount}"
Header="异常数"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem Header="导入模板预览">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button
Grid.Row="0"
Height="30"
Margin="5"
Click="ExportDataBtn_Click"
Content="导出下单数据" />
<DataGrid
x:Name="ImportDataGrid"
Grid.Row="1"
AlternatingRowBackground="#f5f5f5"
AlternationCount="2"
AutoGenerateColumns="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
2024-10-24 18:01:26 +08:00
IsReadOnly="True"
ItemsSource="{Binding ExportData, IsAsync=True}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
2024-10-24 18:01:26 +08:00
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding SeqNo}" Header="清单序号" />
<DataGridTextColumn Binding="{Binding MechanismNo}" Header="机构代号" />
<DataGridTextColumn Binding="{Binding MechanismName}" Header="机构名称" />
<DataGridTextColumn Binding="{Binding DrawNo}" Header="图号" />
<DataGridTextColumn Binding="{Binding MaterialCode}" Header="物料编码" />
<DataGridTextColumn Binding="{Binding WireOrTubeSpec}" Header="气管规格" />
<DataGridTextColumn Binding="{Binding WireOrTubeMaterialNo}" Header="线材/气管物料编号" />
<DataGridTextColumn Binding="{Binding WireOrTubeLength}" Header="线材/气管长度" />
<DataGridTextColumn Binding="{Binding NumberTubeSpec}" Header="号码管规格" />
<DataGridTextColumn Binding="{Binding NumberTubeMaterialNo}" Header="号码管物料编码" />
<DataGridTextColumn Binding="{Binding NumberTubeContent}" Header="号码管内容" />
<DataGridTextColumn Binding="{Binding FrontTerminalModel}" Header="前端子型号" />
<DataGridTextColumn Binding="{Binding FrontTerminalMaterialNo}" Header="前端子物料编码" />
<DataGridTextColumn Binding="{Binding FrontTerminalStripLength}" Header="前端子剥线长度" />
<DataGridTextColumn Binding="{Binding RearTerminalModel}" Header="后端子型号" />
<DataGridTextColumn Binding="{Binding RearTerminalMaterialNo}" Header="后端子物料编码" />
<DataGridTextColumn Binding="{Binding RearTerminalStripLength}" Header="后端子剥线长度" />
<DataGridTextColumn Binding="{Binding InsulationModel}" Header="绝缘软套型号" />
<DataGridTextColumn Binding="{Binding InsulationMaterialNo}" Header="绝缘软套型号物料编码" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem
Height="28"
VerticalAlignment="Top"
Header="检查配置项">
<Grid>
<StackPanel>
<GroupBox Header="变色套检查标识">
<StackPanel>
<RadioButton
Content="L1/L2/L3/PE"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static util:WireFlagType.Dual}}" />
<RadioButton
Content="R/S/T/PE"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static util:WireFlagType.Single}}" />
<RadioButton
Content="L1/R/L2/S/L3/T/PE"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static util:WireFlagType.Mix}}" />
</StackPanel>
</GroupBox>
<GroupBox Header="检查规则说明">
<StackPanel>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<Rectangle
Width="40"
Height="20"
Fill="#dc4d41" />
<TextBlock VerticalAlignment="Center" Text="红色表示该项存在异常" />
</StackPanel>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<Rectangle
Width="40"
Height="20"
Fill="#18a05d" />
<TextBlock VerticalAlignment="Center" Text="绿色表示该项正常,检查通过" />
</StackPanel>
<StackPanel VerticalAlignment="Center" Orientation="Vertical">
<TextBlock VerticalAlignment="Center" Text="检查线时,会根据型号配对表中的数据进行检查,当端子使用未与配对表中的信息匹配时,将会提示错误,具体错误请查看每一项的异常信息。" />
<TextBlock VerticalAlignment="Center" Text="当线径为1.5或是1.5以下时变色套管绝缘软套应使用1.5平方,如未按此规则使用,将提示异常。" />
<TextBlock VerticalAlignment="Center" Text="当勾选全部CE认证时未使用CE认证的线或是端子将提示异常。" />
<TextBlock VerticalAlignment="Center" Text="当型号出现重复时将会自动增加5mm长度如果依旧出现重复将会再增加一次第二次增加长度后依旧重复则根据原有长度提示异常。增加长度如果未出现异常则会以增加后的长度进行生成(不会修改已有的数据,只会影响检查时的显示与导出报表)。" />
2024-11-02 11:56:50 +08:00
<TextBlock VerticalAlignment="Center" Text="当型号中出现:(冒号)时会自动去除冒号以及冒号后面的内容。例如“A000-CE / 定制:1” 将会被识别成 “A000-CE / 定制”" />
</StackPanel>
</StackPanel>
</GroupBox>
2024-10-24 18:01:26 +08:00
</StackPanel>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>