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

615 lines
34 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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:converter="clr-namespace:Sinvo.EplanHpD.Plugin.WPFUI.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:enum="clr-namespace:Sinvo.EplanHpD.Plugin.WPFUI.Enum"
xmlns:hc="https://handyorg.github.io/handycontrol"
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>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Sinvo.EplanHpD.Plugin.WPFUI;component/Themes/Theme.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style
x:Key="DataGridCheckBoxCellStyle"
BasedOn="{StaticResource {x:Type DataGridCell}}"
TargetType="DataGridCell">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
<converter:FlagEnumConverter x:Key="FlagEnumConverter" />
<converter:NameTypeConverter x:Key="NameTypeConverter" />
<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" />
</StackPanel>
</Grid>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="105" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer
Grid.Row="0"
Grid.RowSpan="2"
HorizontalAlignment="Right"
Panel.ZIndex="99"
VerticalScrollBarVisibility="Hidden">
<StackPanel
x:Name="GrowlParent"
Margin="0,10,10,10"
VerticalAlignment="Top"
Panel.ZIndex="99" />
</ScrollViewer>
<ContentPresenter
x:Name="LoadingMask"
Grid.Row="0"
Grid.RowSpan="2"
Panel.ZIndex="99"
Content="{Binding}"
ContentTemplate="{StaticResource LoadingMask}" />
<Grid Grid.Row="0">
<StackPanel Orientation="Horizontal">
<hc:Card
MinWidth="200"
Margin="8"
BorderThickness="0"
Effect="{DynamicResource EffectShadow2}"
FontSize="14">
<StackPanel
Margin="8"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="项目号:" />
<TextBox MinWidth="100" Text="{Binding ProjectNo}" />
</StackPanel>
<StackPanel Margin="5,0,0,0" Orientation="Vertical">
<CheckBox
Margin="2"
Content="是否全部CE认证"
FontSize="14"
IsChecked="{Binding IsRequireCe}" />
<CheckBox
Margin="2"
Content="是否使用变色套"
FontSize="14"
IsChecked="{Binding IsUseDiscoloration}"
IsEnabled="False"
ToolTip="默认将会检查变色套信息" />
</StackPanel>
</StackPanel>
</hc:Card>
<hc:Card
MinWidth="200"
Margin="8"
BorderThickness="0"
Effect="{DynamicResource EffectShadow2}"
FontSize="14">
<StackPanel
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock
Width="60"
VerticalAlignment="Center"
Text="机构号:" />
<TextBox MinWidth="100" Text="{Binding MechanismNo}" />
</StackPanel>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock
Width="60"
VerticalAlignment="Center"
Text="机构名称:" />
<TextBox MinWidth="100" Text="{Binding MechanismName}" />
</StackPanel>
</StackPanel>
</hc:Card>
<Button
Height="40"
Margin="10"
Padding="10"
Click="Button_Click"
Content="检查"
FontSize="14"
Style="{StaticResource ButtonPrimary}" />
<Button
x:Name="GenTemplateBtn"
Height="40"
Margin="10"
Padding="10"
Click="GenTemplateBtn_Click"
Content="生成导入模板数据"
FontSize="14"
Style="{StaticResource ButtonPrimary}" />
<StackPanel Orientation="Horizontal">
<hc:SearchBar
Width="200"
Height="30"
hc:InfoElement.Placeholder="W_00961"
hc:TitleElement.Title="线名称"
IsRealTime="True"
SearchStarted="SearchBar_SearchStarted" />
<ToggleButton
Width="130"
HorizontalContentAlignment="Left"
Content="只搜索异常项"
IsChecked="{Binding OnlyShowError}"
Style="{StaticResource ToggleButtonSwitch}" />
</StackPanel>
<Button
x:Name="RefreshReportDataBtn"
Height="40"
Margin="10"
Padding="10"
Click="RefreshReportDataBtn_Click"
Content="刷新报表数据"
FontSize="14"
Style="{StaticResource ButtonPrimary}" />
</StackPanel>
</Grid>
<TabControl x:Name="DataTabControl" Grid.Row="1">
<TabItem Header="报表数据">
<DataGrid
x:Name="OriginialDataGrid"
AutoGenerateColumns="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
IsReadOnly="True"
ItemsSource="{Binding Data, IsAsync=True}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<!--<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"
hc:DataGridAttach.EditingComboBoxColumnStyle="{StaticResource ComboBoxBaseStyle}"
hc:DataGridAttach.EditingTextColumnStyle="{StaticResource TextBoxBaseStyle}"
hc:ScrollViewerAttach.AutoHide="False"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
ClipboardCopyMode="IncludeHeader"
EnableColumnVirtualization="False"
EnableRowVirtualization="True"
ItemsSource="{Binding SearchedData, IsAsync=True}"
RowHeight="NaN"
ScrollViewer.CanContentScroll="True"
SelectionUnit="FullRow"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Click="IgnoreSelectedError_Click" Header="忽略选中项的异常" />
<MenuItem Click="GoToSource_Click">
<MenuItem.Header>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="转至源" />
<Border
Margin="10,0,0,0"
BorderBrush="Gray"
BorderThickness="0,0,0,1">
<StackPanel Orientation="Horizontal">
<CheckBox VerticalAlignment="Center" IsChecked="{Binding ToSourceAndMinSelf}" />
<TextBlock VerticalAlignment="Center" Text="最小化窗口" />
</StackPanel>
</Border>
</StackPanel>
</MenuItem.Header>
</MenuItem>
<MenuItem Click="ToSourceAndHideOthers_Click" Header="转到源并隐藏其他线" />
<MenuItem Click="ShowAllWire_Click" Header="显示所有线" />
<MenuItem Click="UnIgnoreSelectedError_Click" Header="取消忽略选中项的异常" />
<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.RowStyle>
<Style BasedOn="{StaticResource DataGridRowStyle}" TargetType="DataGridRow">
<Setter Property="MinHeight" Value="20" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsError}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#dc4d41" />
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
<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>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#aa326cf3" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Resources>
<Style BasedOn="{StaticResource DataGridCellStyle}" TargetType="DataGridCell">
<Setter Property="Height" Value="Auto" />
<Setter Property="MaxHeight" Value="9999" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</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" />
<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">
<Grid HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
<CheckBox
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
VerticalAlignment="{TemplateBinding VerticalAlignment}"
IsChecked="{Binding IsIgnore, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>-->
<DataGridCheckBoxColumn CellStyle="{StaticResource DataGridCheckBoxCellStyle}" Header="忽略异常">
<DataGridCheckBoxColumn.Binding>
<Binding Path="IsIgnore" />
</DataGridCheckBoxColumn.Binding>
</DataGridCheckBoxColumn>
<!--<DataGridTemplateColumn Header="异常信息">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Height="auto"
VerticalAlignment="Center"
Text="{Binding CheckedMsg}"
TextWrapping="Wrap" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>-->
<DataGridTextColumn Binding="{Binding CheckedMsg}" Header="异常信息" />
<DataGridTextColumn
Binding="{Binding ErrorCount}"
Header="异常数"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem Header="导入模板预览">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="70" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="300" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<hc:SimpleStackPanel
Grid.Column="1"
HorizontalAlignment="Center"
Orientation="Horizontal">
<Button
Width="300"
Height="40"
Margin="5"
Click="ExportDataBtn_Click"
Content="导出下单数据"
FontSize="16"
Style="{StaticResource ButtonPrimary}" />
</hc:SimpleStackPanel>
<StackPanel Grid.Column="2" VerticalAlignment="Center">
<StackPanel Margin="10,0,0,0">
<RadioButton
HorizontalAlignment="Left"
Content="使用项目编号作为文件名"
FontSize="14"
GroupName="ExportFileName"
IsChecked="{Binding NameType, Converter={StaticResource NameTypeConverter}, ConverterParameter={x:Static enum:ExportFileNameType.ProjectNo}}" />
<RadioButton
HorizontalAlignment="Left"
Content="使用机构号&机构名作为文件名"
FontSize="14"
GroupName="ExportFileName"
IsChecked="{Binding NameType, Converter={StaticResource NameTypeConverter}, ConverterParameter={x:Static enum:ExportFileNameType.Mechanism}}" />
<RadioButton
HorizontalAlignment="Left"
FontSize="14"
GroupName="ExportFileName"
IsChecked="{Binding NameType, Converter={StaticResource NameTypeConverter}, ConverterParameter={x:Static enum:ExportFileNameType.Custom}}">
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="自定义:" />
<hc:TextBox Width="200" Text="{Binding CustomFileName}" />
</StackPanel>
</RadioButton>
</StackPanel>
</StackPanel>
</Grid>
<DataGrid
x:Name="ImportDataGrid"
Grid.Row="1"
AutoGenerateColumns="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
IsReadOnly="True"
ItemsSource="{Binding ExportData, IsAsync=True}"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<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>
<hc:Card
Margin="8"
Effect="{DynamicResource EffectShadow2}"
FontSize="14">
<hc:Card.Header>
<TextBlock
Margin="10"
FontSize="16"
Text="变色套检查标识" />
</hc:Card.Header>
<StackPanel Margin="10" HorizontalAlignment="Left">
<RadioButton
HorizontalAlignment="Left"
Content="L1/L2/L3/PE"
FontSize="14"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static enum:WireFlagType.Dual}}" />
<RadioButton
HorizontalAlignment="Left"
Content="R/S/T/PE"
FontSize="14"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static enum:WireFlagType.Single}}" />
<RadioButton
HorizontalAlignment="Left"
Content="L1/R/L2/S/L3/T/PE"
FontSize="14"
GroupName="Insulation"
IsChecked="{Binding FlagType, Converter={StaticResource FlagEnumConverter}, ConverterParameter={x:Static enum:WireFlagType.Mix}}" />
</StackPanel>
</hc:Card>
<hc:Card Margin="8" FontSize="14">
<hc:Card.Header>
<TextBlock
Margin="10"
FontSize="16"
Text="检查规则说明" />
</hc:Card.Header>
<StackPanel Margin="10">
<StackPanel
Margin="2"
VerticalAlignment="Center"
Orientation="Horizontal">
<Rectangle
Width="40"
Height="20"
Fill="#dc4d41" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="红色表示该项存在异常" />
</StackPanel>
<StackPanel
Margin="2"
VerticalAlignment="Center"
Orientation="Horizontal">
<Rectangle
Width="40"
Height="20"
Fill="#18a05d" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="绿色表示该项正常,检查通过" />
</StackPanel>
<StackPanel
Margin="2"
VerticalAlignment="Center"
Orientation="Vertical">
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="检查线时,会根据型号配对表中的数据进行检查,当端子使用未与配对表中的信息匹配时,将会提示错误,具体错误请查看每一项的异常信息。" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="当线径为1.5或是1.5以下时变色套管绝缘软套应使用1.5平方,如未按此规则使用,将提示异常。" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="当勾选全部CE认证时未使用CE认证的线或是端子将提示异常。" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="当型号出现重复时将会自动增加5mm长度如果依旧出现重复将会再增加一次第二次增加长度后依旧重复则根据原有长度提示异常。增加长度如果未出现异常则会以增加后的长度进行生成(不会修改已有的数据,只会影响检查时的显示与导出报表)。" />
<TextBlock
Margin="2"
VerticalAlignment="Center"
Text="当型号中出现:(冒号)时会自动去除冒号以及冒号后面的内容。例如“A000-CE / 定制:1” 将会被识别成 “A000-CE / 定制”" />
</StackPanel>
</StackPanel>
</hc:Card>
</StackPanel>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>