- eliminata riga selezionata su lista programmi
- aggiunti messaggi e tooltip - aggiunte verifiche su comandi - aggiunto backup json per stato e momento di inizio e fine
This commit is contained in:
@@ -17,103 +17,31 @@
|
||||
Background="{StaticResource Omag_DarkGray}">
|
||||
<StackPanel Orientation="Horizontal"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}">
|
||||
<Button ToolTip="Mette in coda di produzione tutte le porte"
|
||||
<Button ToolTip="{Binding ProduceAll_Tooltip}"
|
||||
Command="{Binding ProduceAll_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Table_Button}">
|
||||
<Image Source="../Resources/DoorListPage/ProduceAll.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>
|
||||
<Button ToolTip="Riporta tutte le porte pronte per essere lavorate allo stato Verificate state"
|
||||
<Button ToolTip="{Binding ResetProductionQueue_Tooltip}"
|
||||
Command="{Binding ResetProductionQueue_Command}"
|
||||
Style="{StaticResource Table_Button}">
|
||||
<Image Source="../Resources/DoorListPage/ResetProduction.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>
|
||||
<Button ToolTip="Cancella tutte le porte presenti in lista"
|
||||
<Button ToolTip="{Binding DeleteAll_Tooltip}"
|
||||
Command="{Binding DeleteAll_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Table_Button}">
|
||||
<Image Source="../Resources/DoorListPage/DeleteAll.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>
|
||||
<!--<Button ToolTip="Mette in coda di produzione la porta selezionata"
|
||||
Command="{Binding Produce_Command}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/Produce.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Sposta su"
|
||||
Command="{Binding MoveUp_Command}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/MoveUp.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>
|
||||
<Button ToolTip="Sposta giù"
|
||||
Command="{Binding MoveDown_Command}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/MoveDown.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Mark the selected door as not to be produced"
|
||||
Command="{Binding NotProduceDoor_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/NotProduce.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Aggiunge una porta alla lista"
|
||||
Command="{Binding AddDoor_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/Add.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Copia la porta selezionata"
|
||||
Command="{Binding CopyDoor_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/Copy.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Copia Multipla della porta selezionata"
|
||||
Command="{Binding MultipleCopyDoor_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/MultipleCopy.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Cancella porta selezionata"
|
||||
Command="{Binding Delete_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/Delete.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<Button ToolTip="Verifica tutte le porte in stato Non Verificata"
|
||||
Command="{Binding Verify_Command}"
|
||||
IsEnabled="{Binding bExecButton_IsEnabled}"
|
||||
Style="{StaticResource Button.DoorList}">
|
||||
<Image Source="../Resources/DoorListPage/Verify.png"
|
||||
Style="{StaticResource Button.Image.DoorList}"/>
|
||||
</Button>-->
|
||||
<!--<TextBlock Text="{Binding sExecPercentage}"
|
||||
VerticalAlignment="Center"
|
||||
Margin="10,0,5,0"
|
||||
Visibility="{Binding ExecPercentage_Visibility, Mode=OneWay}"/>
|
||||
<ProgressBar Minimum="0"
|
||||
Maximum="100"
|
||||
Value="{Binding dExecPercentage, Mode=OneWay}"
|
||||
Height="15"
|
||||
Width="100"
|
||||
Margin="5,0,0,0"
|
||||
Visibility="{Binding ExecPercentage_Visibility}"/>-->
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<FrameworkElement x:Name="dummyElement" Visibility="Collapsed"/>
|
||||
<DataGrid Grid.Row="2"
|
||||
ItemsSource="{Binding DoorList}"
|
||||
SelectedItem="{Binding SelDoor}"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserDeleteRows="False"
|
||||
CanUserResizeRows="False"
|
||||
@@ -143,18 +71,28 @@
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="ID"
|
||||
Binding="{Binding nId}"
|
||||
<DataGridTextColumn Binding="{Binding nId}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="File Name"
|
||||
Binding="{Binding sFileNameWithoutExtension}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Id_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding sFileNameWithoutExtension}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.FileName_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTemplateColumn Width="Auto">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
@@ -166,42 +104,73 @@
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridTextColumn Header="# Table"
|
||||
Binding="{Binding nTable}"
|
||||
<DataGridTextColumn Binding="{Binding nTable}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="File Dimension"
|
||||
Binding="{Binding sFileDimension}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.Table_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding sFileDimension}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="State"
|
||||
Binding="{Binding nState}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.FileDimension_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding sState}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="Machining Start"
|
||||
Binding="{Binding sMachiningStart}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.State_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding sMachiningStart}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="Machining End"
|
||||
Binding="{Binding sMachiningEnd}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.MachiningStart_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding sMachiningEnd}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
<DataGridTextColumn Header="Machining Time"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.MachiningEnd_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="{Binding sMachiningTime_Msg}"
|
||||
Binding="{Binding sMachiningTime}"
|
||||
Width="Auto"
|
||||
IsReadOnly="True"
|
||||
ElementStyle="{StaticResource TextBlock.DataGridTextColumn.DoorList}"
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}"/>
|
||||
EditingElementStyle="{StaticResource TextBox.DataGridTextColumn.DoorList}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.MachiningTime_Msg, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTemplateColumn Width="Auto">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
@@ -262,11 +231,33 @@
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGrid.InputBindings>-->
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow" BasedOn="{StaticResource RowDataGrid_CustomHighLight}">
|
||||
<Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource RowDataGrid_CustomHighLight}">
|
||||
<Setter Property="Background" Value="{Binding Background}"/>
|
||||
<Setter Property="Foreground" Value="{Binding Foreground}"/>
|
||||
<Setter Property="BorderBrush" Value="{Binding nState, Converter={StaticResource StateToSelColorConverter}}"/>
|
||||
<Setter Property="BorderBrush" Value="Green"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="{Binding Background}"/>
|
||||
<Setter Property="Foreground" Value="{Binding Foreground}"/>
|
||||
<Setter Property="BorderBrush" Value="Green"/>
|
||||
<Setter Property="BorderThickness" Value="2,0,2,0"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="Background" Value="{Binding Background}"/>
|
||||
<Setter Property="Foreground" Value="{Binding Foreground}"/>
|
||||
<Setter Property="BorderBrush" Value="{Binding Background}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="{Binding Background}"/>
|
||||
<Setter Property="Foreground" Value="{Binding Foreground}"/>
|
||||
<Setter Property="BorderBrush" Value="{Binding Background}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
|
||||
@@ -38,15 +38,6 @@ Public Class DoorListPageVM
|
||||
Return m_DoorList
|
||||
End Get
|
||||
End Property
|
||||
Private m_SelDoor As Door
|
||||
Public Property SelDoor As Door
|
||||
Get
|
||||
Return m_SelDoor
|
||||
End Get
|
||||
Set(value As Door)
|
||||
m_SelDoor = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_DDTList As New ObservableCollection(Of String)
|
||||
Public ReadOnly Property DDTList As ObservableCollection(Of String)
|
||||
@@ -107,6 +98,78 @@ Public Class DoorListPageVM
|
||||
Private m_nTotCreatingDdf As Integer
|
||||
Private m_nCurrCreatingDdf As Integer
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property Id_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12001)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property FileName_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12002)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Table_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12003)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property FileDimension_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12004)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property State_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12005)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MachiningStart_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12006)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MachiningEnd_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12007)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MachiningTime_Msg As String
|
||||
Get
|
||||
Return EgtMsg(12008)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "Tooltip"
|
||||
|
||||
Public ReadOnly Property ProduceAll_Tooltip As String
|
||||
Get
|
||||
Return EgtMsg(12021)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property ResetProductionQueue_Tooltip As String
|
||||
Get
|
||||
Return EgtMsg(12022)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property DeleteAll_Tooltip As String
|
||||
Get
|
||||
Return EgtMsg(12023)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Tooltip
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdProduce As ICommand
|
||||
Private m_cmdProduceAll As ICommand
|
||||
@@ -129,6 +192,7 @@ Public Class DoorListPageVM
|
||||
GetPluginPrivateProfileString(S_GENERAL, "BackupDir", "", sBackupDirPath)
|
||||
Dim sBackupFilePath As String = sBackupDirPath & "\Backup.json"
|
||||
Read(sBackupFilePath)
|
||||
ResetProductionQueue()
|
||||
m_BackupTimer.Interval = New TimeSpan(0, 0, 1)
|
||||
AddHandler m_BackupTimer.Tick, AddressOf BackupTimer_Tick
|
||||
m_WriteCSVTimer.Interval = New TimeSpan(0, 1, 0)
|
||||
@@ -415,7 +479,7 @@ Public Class DoorListPageVM
|
||||
If IsNothing(CurrDoor) Then Return
|
||||
Dim nOldIndex As Integer = m_DoorList.IndexOf(CurrDoor)
|
||||
If nOldIndex = 0 Then Return
|
||||
If m_DoorList(nOldIndex - 1).nState >= Door.PartProgramStates.READY_FOR_PRODUCTION Then Return
|
||||
If (m_DoorList(nOldIndex - 1).nState >= Door.PartProgramStates.READY_FOR_PRODUCTION AndAlso m_DoorList(nOldIndex - 1).nState <> Door.PartProgramStates.NOTPRODUCE) Then Return
|
||||
m_DoorList.Move(nOldIndex, nOldIndex - 1)
|
||||
WriteBackup()
|
||||
End Sub
|
||||
@@ -434,7 +498,7 @@ Public Class DoorListPageVM
|
||||
End Property
|
||||
|
||||
Public Sub MoveDown(CurrDoor As Door)
|
||||
If IsNothing(CurrDoor) OrElse CurrDoor.nState >= Door.PartProgramStates.READY_FOR_PRODUCTION Then Return
|
||||
If IsNothing(CurrDoor) OrElse (CurrDoor.nState >= Door.PartProgramStates.READY_FOR_PRODUCTION AndAlso CurrDoor.nState <> Door.PartProgramStates.NOTPRODUCE) Then Return
|
||||
Dim nOldIndex As Integer = m_DoorList.IndexOf(CurrDoor)
|
||||
If nOldIndex = m_DoorList.Count - 1 Then Return
|
||||
m_DoorList.Move(nOldIndex, nOldIndex + 1)
|
||||
@@ -455,7 +519,7 @@ Public Class DoorListPageVM
|
||||
End Property
|
||||
|
||||
Public Sub Delete(CurrDoor As Door)
|
||||
If m_DoorList.Count = 0 OrElse IsNothing(CurrDoor) Then Return
|
||||
If m_DoorList.Count = 0 OrElse IsNothing(CurrDoor) OrElse CurrDoor.nState = PartProgramStates.READY_FOR_PRODUCTION OrElse CurrDoor.nState = PartProgramStates.SENT_TO_NC OrElse CurrDoor.nState = PartProgramStates.MACHINE_START Then Return
|
||||
Dim bReset As Boolean = True
|
||||
'If Not LuaGetGlobVar("bReset", bReset) OrElse Not bReset Then
|
||||
' If (SelDoor.nState >= Door.PartProgramStates.READY_FOR_PRODUCTION AndAlso SelDoor.nState < Door.PartProgramStates.MACHINE_1_END) Then Return
|
||||
@@ -469,7 +533,7 @@ Public Class DoorListPageVM
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
m_DoorList.Remove(SelDoor)
|
||||
m_DoorList.Remove(CurrDoor)
|
||||
WriteBackup()
|
||||
End If
|
||||
End Sub
|
||||
@@ -490,21 +554,6 @@ Public Class DoorListPageVM
|
||||
Public Sub DeleteAll()
|
||||
If m_DoorList.Count = 0 Then Return
|
||||
Dim bReset As Boolean = True
|
||||
'If Not LuaGetGlobVar("bReset", bReset) OrElse Not bReset Then
|
||||
' MessageBox.Show("Impossibile cancellare tutte le porte!" & Environment.NewLine & "La macchina deve essere in stato Reset per poter cancellare tutte le porte!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning)
|
||||
' Return
|
||||
'End If
|
||||
'' verifico che tutte le porte siano in stato prodotto o da non produrre
|
||||
'Dim bAllProduced As Boolean = True
|
||||
'For Each CsvDoor In m_DoorList
|
||||
' If CsvDoor.nState <> PartProgramStates.MACHINE_1_END AndAlso CsvDoor.nState <> PartProgramStates.PRODUCED AndAlso CsvDoor.nState <> PartProgramStates.NOTPRODUCE AndAlso CsvDoor.nState <> PartProgramStates.VERIFICATION_FAILED AndAlso CsvDoor.nState <> PartProgramStates.VERIFIED Then
|
||||
' bAllProduced = False
|
||||
' End If
|
||||
'Next
|
||||
'If Not bAllProduced Then
|
||||
' MessageBox.Show("Impossibile cancellare tutte le porte!" & Environment.NewLine & "Per cancellare tutte le porte, devono essere tutte non in lavorazione!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning)
|
||||
' Return
|
||||
'End If
|
||||
If MessageBox.Show("Sei sicuro di voler cancellare tutte le porte?", "Info", MessageBoxButton.YesNo, MessageBoxImage.Information) = MessageBoxResult.Yes Then
|
||||
For PartProgramIndex = m_DoorList.Count - 1 To 0 Step -1
|
||||
' cancello file
|
||||
@@ -518,15 +567,6 @@ Public Class DoorListPageVM
|
||||
m_DoorList.RemoveAt(PartProgramIndex)
|
||||
Next
|
||||
WriteBackup()
|
||||
'' cancello backup lua per ripartire pulito
|
||||
'Try
|
||||
' Dim sBackupDirPath As String = ""
|
||||
' GetPluginPrivateProfileString(S_GENERAL, K_BACKUPDIR, "", sBackupDirPath)
|
||||
' Dim sLuaBackupFilePath As String = sBackupDirPath & "\LuaBackup.json"
|
||||
' File.Delete(sLuaBackupFilePath)
|
||||
'Catch ex As Exception
|
||||
' Map.refSupervisorFunction.PlgOutLog("Fallita cancellazione del file LuaBackup!")
|
||||
'End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -549,9 +589,10 @@ Public Class DoorListPageVM
|
||||
End Sub
|
||||
|
||||
Public Sub ProduceDoor(DoorToProduce As Door, Optional bWriteBackup As Boolean = True)
|
||||
If DoorToProduce.nState <> PartProgramStates.NULL Then Return
|
||||
If IsNothing(DoorToProduce) Then Return
|
||||
' la sposto dopo l'ultima da produrre
|
||||
Dim nNewIndex As Integer = m_DoorList.IndexOf(m_DoorList.FirstOrDefault(Function(x) x.nState < Door.PartProgramStates.READY_FOR_PRODUCTION))
|
||||
Dim nNewIndex As Integer = m_DoorList.IndexOf(m_DoorList.FirstOrDefault(Function(x) x.nState < Door.PartProgramStates.READY_FOR_PRODUCTION OrElse x.nState = Door.PartProgramStates.NOTPRODUCE))
|
||||
Dim nOldIndex As Integer = m_DoorList.IndexOf(DoorToProduce)
|
||||
m_DoorList.Move(nOldIndex, nNewIndex)
|
||||
DoorToProduce.SetState(Door.PartProgramStates.READY_FOR_PRODUCTION, bWriteBackup)
|
||||
@@ -574,7 +615,7 @@ Public Class DoorListPageVM
|
||||
If m_DoorList.Count = 0 Then Return
|
||||
For nDoorIndex = 0 To m_DoorList.Count - 1
|
||||
Dim CurrDoor As Door = m_DoorList(nDoorIndex)
|
||||
If CurrDoor.nState <> Door.PartProgramStates.MACHINE_START AndAlso CurrDoor.nState <> Door.PartProgramStates.PRODUCED Then
|
||||
If CurrDoor.nState <> Door.PartProgramStates.READY_FOR_PRODUCTION AndAlso CurrDoor.nState <> Door.PartProgramStates.SENT_TO_NC AndAlso CurrDoor.nState <> Door.PartProgramStates.MACHINE_START AndAlso CurrDoor.nState <> Door.PartProgramStates.PRODUCED Then
|
||||
ProduceDoor(CurrDoor, False)
|
||||
End If
|
||||
Next
|
||||
@@ -681,11 +722,32 @@ Public Class Door
|
||||
Return m_nState
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property sState As String
|
||||
Get
|
||||
Select Case m_nState
|
||||
Case PartProgramStates.NULL
|
||||
Return EgtMsg(12031)
|
||||
Case PartProgramStates.READY_FOR_PRODUCTION
|
||||
Return EgtMsg(12032)
|
||||
Case PartProgramStates.SENT_TO_NC
|
||||
Return EgtMsg(12033)
|
||||
Case PartProgramStates.MACHINE_START
|
||||
Return EgtMsg(12034)
|
||||
Case PartProgramStates.PRODUCED
|
||||
Return EgtMsg(12035)
|
||||
Case PartProgramStates.NOTPRODUCE
|
||||
Return EgtMsg(12036)
|
||||
Case Else
|
||||
Return EgtMsg(12037)
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetState(value As PartProgramStates, Optional bWriteBackup As Boolean = True, Optional bUpdate As Boolean = True)
|
||||
m_nState = value
|
||||
If bWriteBackup Then Map.refDoorListPageVM.WriteBackup()
|
||||
If bUpdate Then
|
||||
NotifyPropertyChanged(NameOf(nState))
|
||||
NotifyPropertyChanged(NameOf(sState))
|
||||
NotifyPropertyChanged(NameOf(Background))
|
||||
End If
|
||||
End Sub
|
||||
@@ -732,7 +794,8 @@ Public Class Door
|
||||
Public ReadOnly Property sMachiningTime As String
|
||||
Get
|
||||
If m_dtMachiningStart = DateTime.MinValue OrElse m_dtMachiningEnd = DateTime.MinValue Then Return String.Format("{0:c}", TimeSpan.Zero)
|
||||
Return String.Format("{0:c}", (m_dtMachiningEnd - m_dtMachiningStart))
|
||||
Dim Time As TimeSpan = m_dtMachiningEnd - m_dtMachiningStart
|
||||
Return String.Format("{0}:{1:00}:{2:00}", (Time.Days * 24 + Time.Hours), Time.Minutes, Time.Seconds + 1)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -759,28 +822,12 @@ Public Class Door
|
||||
|
||||
Public ReadOnly Property Foreground As SolidColorBrush
|
||||
Get
|
||||
Select Case m_nState
|
||||
Case PartProgramStates.NULL
|
||||
Return Brushes.White
|
||||
Case PartProgramStates.NOTPRODUCE
|
||||
Return Dictionary.Effector_Yellow_Status
|
||||
Case PartProgramStates.MACHINE_START
|
||||
Return Dictionary.Effector_Blue_Status
|
||||
Case PartProgramStates.PRODUCED
|
||||
Return Dictionary.Effector_Gray_Status
|
||||
Case Else
|
||||
Return Brushes.White
|
||||
End Select
|
||||
Return Brushes.White
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdMoveUp As ICommand
|
||||
Private m_cmdMoveDown As ICommand
|
||||
Private m_cmdNotProduce As ICommand
|
||||
Private m_cmdCopyDoor As ICommand
|
||||
'Private m_cmdMultipleCopyDoor As ICommand
|
||||
Private m_cmdDelete As ICommand
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
@@ -796,6 +843,9 @@ Public Class Door
|
||||
m_sFileName = JsonDoor.sFileName
|
||||
m_nTable = JsonDoor.nTable
|
||||
m_dFileDimension = JsonDoor.dFileDimension
|
||||
m_nState = JsonDoor.nState
|
||||
m_dtMachiningStart = JsonDoor.dtMachiningStart
|
||||
m_dtMachiningEnd = JsonDoor.dtMachiningEnd
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
@@ -816,7 +866,6 @@ Public Class Door
|
||||
File.Copy(sPartProgramDirPath & "\" & m_sFileName, sPartProgramDirPath & "\" & sFileName & "_" & nCopyIndex & sFileExtension)
|
||||
bFileCopy = True
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
If bFileCopy Then
|
||||
Return New Door(nId, sFileName & "_" & nCopyIndex & sFileExtension, m_nTable, m_dFileDimension)
|
||||
@@ -840,6 +889,7 @@ Public Class Door
|
||||
End Property
|
||||
|
||||
Public Sub NotProduce()
|
||||
If nState = Door.PartProgramStates.PRODUCED Then Return
|
||||
SetState(If(nState = Door.PartProgramStates.NULL, Door.PartProgramStates.NOTPRODUCE, Door.PartProgramStates.NULL))
|
||||
End Sub
|
||||
|
||||
@@ -880,24 +930,24 @@ Public Class StateToSelColorConverter
|
||||
|
||||
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
|
||||
If Not TypeOf value Is PartProgramStates Then Return Brushes.Aqua
|
||||
'Select Case value
|
||||
' Case PartProgramStates.LOADED_FROM_CSV
|
||||
' Return Dictionary.Effector_White_SelStatus
|
||||
' Case PartProgramStates.VERIFIED
|
||||
' Return Dictionary.Effector_Green_SelStatus
|
||||
' Case PartProgramStates.VERIFICATION_FAILED
|
||||
' Return Dictionary.Effector_Red_SelStatus
|
||||
' Case PartProgramStates.SKIPPED, PartProgramStates.NOTPRODUCE
|
||||
' Return Dictionary.Effector_Yellow_SelStatus
|
||||
' Case PartProgramStates.READY_FOR_PRODUCTION, PartProgramStates.ON_LOAD_STATION
|
||||
' Return Dictionary.Effector_LightBlue_SelStatus
|
||||
' Case PartProgramStates.MACHINE_1_START
|
||||
' Return Dictionary.Effector_Blue_SelStatus
|
||||
' Case PartProgramStates.MACHINE_1_END, PartProgramStates.PRODUCED
|
||||
' Return Dictionary.Effector_Gray_SelStatus
|
||||
' Case Else
|
||||
' Return Dictionary.Effector_White_SelStatus
|
||||
'End Select
|
||||
Select Case value
|
||||
'Case PartProgramStates.LOADED_FROM_CSV
|
||||
' Return Dictionary.Effector_White_SelStatus
|
||||
'Case PartProgramStates.VERIFIED
|
||||
' Return Dictionary.Effector_Green_SelStatus
|
||||
'Case PartProgramStates.VERIFICATION_FAILED
|
||||
' Return Dictionary.Effector_Red_SelStatus
|
||||
Case PartProgramStates.NOTPRODUCE
|
||||
Return Dictionary.Effector_Yellow_SelStatus
|
||||
Case PartProgramStates.READY_FOR_PRODUCTION
|
||||
Return Dictionary.Effector_LightBlue_SelStatus
|
||||
Case PartProgramStates.MACHINE_START
|
||||
Return Dictionary.Effector_Blue_SelStatus
|
||||
Case PartProgramStates.PRODUCED
|
||||
Return Dictionary.Effector_Gray_SelStatus
|
||||
Case Else
|
||||
Return Dictionary.Effector_White_SelStatus
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
|
||||
|
||||
@@ -75,11 +75,15 @@ Public Class JsonDoor
|
||||
#End Region ' Statistics
|
||||
|
||||
<JsonConstructor>
|
||||
Sub New(nId As Integer, sFileName As String, nTable As Integer, dFileDimension As Double)
|
||||
Sub New(nListIndex As Integer, nId As Integer, sFileName As String, nTable As Integer, dFileDimension As Double, nState As PartProgramStates, dtMachiningStart As DateTime, dtMachiningEnd As DateTime)
|
||||
m_nListIndex = nListIndex
|
||||
m_nId = nId
|
||||
m_sFileName = sFileName
|
||||
m_nTable = nTable
|
||||
m_dFileDimension = dFileDimension
|
||||
m_nState = nState
|
||||
m_dtMachiningStart = dtMachiningStart
|
||||
m_dtMachiningEnd = dtMachiningEnd
|
||||
End Sub
|
||||
|
||||
Sub New(nListIndex As Integer, Door As Door)
|
||||
@@ -88,6 +92,9 @@ Public Class JsonDoor
|
||||
m_sFileName = Door.sFileName
|
||||
m_nTable = Door.nTable
|
||||
m_dFileDimension = Door.dFileDimension
|
||||
m_nState = Door.nState
|
||||
m_dtMachiningStart = Door.dtMachiningStart
|
||||
m_dtMachiningEnd = Door.dtMachiningEnd
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user