Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 88b9226bcb |
@@ -127,8 +127,6 @@ Public Module ConstIni
|
||||
Public Const K_STARTDATE As String = "StartDate"
|
||||
Public Const K_ENDDATE As String = "EndDate"
|
||||
|
||||
Public Const S_OPENFILEDIALOG As String = "OpenFileDialog"
|
||||
|
||||
'Public Const S_NEST As String = "Nest"
|
||||
Public Const K_NESTEXEC As String = "NestExec"
|
||||
Public Const K_FLIPROT As String = "FlipRot"
|
||||
|
||||
@@ -438,9 +438,6 @@ Public Class EgtDataGridColumn
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Public Sub ResetToOrigIsReadOnly()
|
||||
IsReadOnly = m_OrigIsReadOnly
|
||||
End Sub
|
||||
|
||||
Friend OldCanUserReorder As Boolean?
|
||||
Private m_CanUserReorder As Boolean
|
||||
|
||||
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyVersion("2.5.5.4")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.4")>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.Core"
|
||||
Title="{Binding Title}"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="True"
|
||||
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
|
||||
IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False"
|
||||
MinHeight="500" MinWidth="500" Topmost="True"
|
||||
Height="500" Width="500" Topmost="True"
|
||||
DataContext="{Binding RelativeSource={RelativeSource Self}}">
|
||||
|
||||
<EgtWPFLib5:EgtCustomWindow.Resources>
|
||||
@@ -21,105 +21,42 @@
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<GroupBox Header="Filters"
|
||||
Margin="5">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox ItemsSource="{Binding BTLDateTypeList}"
|
||||
SelectedIndex="{Binding SelBTLDateType}"
|
||||
Width="105"
|
||||
Margin="5"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
||||
<ComboBox ItemsSource="{Binding DayTypeList}"
|
||||
SelectedIndex="{Binding SelDayType}"
|
||||
Width="105"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<StackPanel Orientation="Horizontal" Visibility="{Binding Date_Visibility}">
|
||||
<TextBlock Text="{Binding From_Msg}"
|
||||
Style="{StaticResource Filter_TextBlock}"/>
|
||||
<DatePicker SelectedDate="{Binding dtStartDate}"
|
||||
Style="{StaticResource Filter_DatePicker}"/>
|
||||
<TextBlock Text="{Binding To_Msg}"
|
||||
Style="{StaticResource Filter_TextBlock}"/>
|
||||
<DatePicker SelectedDate="{Binding dtEndDate}"
|
||||
Style="{StaticResource Filter_DatePicker}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox ItemsSource="{Binding FilterTypeList}"
|
||||
SelectedItem="{Binding SelFilterType}"
|
||||
Width="105"
|
||||
Margin="5"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Column="1"
|
||||
Text="{Binding SearchText}"
|
||||
Margin="5"
|
||||
Visibility="{Binding SearchText_Visibility}"/>
|
||||
<StackPanel Grid.Column="2"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock Text="Rows"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding RowQuantityList}"
|
||||
SelectedIndex="{Binding SelRowQuantity}"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<StackPanel>
|
||||
<Grid Grid.Row="0" Margin="5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*" />
|
||||
<RowDefinition Height="1*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="1*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
|
||||
<!--<StackPanel>
|
||||
<Grid Grid.Row="0" Margin="5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*" />
|
||||
<RowDefinition Height="1*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*" />
|
||||
<ColumnDefinition Width="1*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="{Binding FilterType_Msg}"
|
||||
<TextBlock Text="{Binding FilterType_Msg}"
|
||||
Grid.Row="0" Grid.Column="0"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding SearchColumnList}"
|
||||
<ComboBox ItemsSource="{Binding SearchColumnList}"
|
||||
SelectedItem="{Binding SelSearchColumn}"
|
||||
Width="Auto"
|
||||
Margin="5"
|
||||
Grid.Row="0" Grid.Column="1"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
<TextBlock Text="{Binding Search_Msg}"
|
||||
<TextBlock Text="{Binding Search_Msg}"
|
||||
Margin="0,5,0,0"
|
||||
Grid.Row="1" Grid.Column="0"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SearchText}"
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SearchText}"
|
||||
Margin="5"
|
||||
Grid.Row="1" Grid.Column="1"
|
||||
Visibility="{Binding SearchText_Visibility}"/>
|
||||
<Calendar SelectedDatesChanged="Calendar_SelectedDatesChanged"
|
||||
<Calendar SelectedDatesChanged="Calendar_SelectedDatesChanged"
|
||||
SelectionMode="MultipleRange"
|
||||
Grid.Row="1" Grid.Column="1"
|
||||
Visibility="{Binding SearchDate_Visibility}"/>
|
||||
</Grid>
|
||||
</StackPanel>-->
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<EgtBEAMWALL:EgtDataGrid Grid.Row="1"
|
||||
<EgtBEAMWALL:EgtDataGrid Grid.Row="1"
|
||||
ItemsSource="{Binding ProjectList}"
|
||||
SelectedItem="{Binding SelProject}"
|
||||
CanUserAddRows="False"
|
||||
@@ -148,14 +85,6 @@
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!-- Project Name -->
|
||||
<DataGridTextColumn x:Key="colPROJNAME" Binding="{Binding sDescription}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.BTLFileName_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:OpenProjectFileDialogV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!-- BTL FileName -->
|
||||
<DataGridTextColumn x:Key="colBTLNAME" Binding="{Binding sBTLFileName}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
|
||||
@@ -5,8 +5,6 @@ Imports System.Windows.Controls
|
||||
Imports System.Windows.Input
|
||||
Imports EgtBEAMWALL.Core.ConstBeam
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtBEAMWALL
|
||||
|
||||
Public Class OpenProjectFileDialogV
|
||||
|
||||
@@ -21,8 +19,6 @@ Public Class OpenProjectFileDialogV
|
||||
Me.DataContext = OpenProjFileDialogVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_OpenProjFileDialogVM = OpenProjFileDialogVM
|
||||
AddHandler Me.Loaded, AddressOf OpenProjectFileDialog_Loaded
|
||||
AddHandler Me.Closing, AddressOf OpenProjectFileDialog_Closing
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
@@ -46,20 +42,6 @@ Public Class OpenProjectFileDialogV
|
||||
Return Me.ShowDialog()
|
||||
End Function
|
||||
|
||||
Private Sub OpenProjectFileDialog_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
' Carico e imposto posizione finestra
|
||||
WinPosFromIniToWindow(S_OPENFILEDIALOG, K_VIEWOPTIMWINPLACE, Me)
|
||||
End Sub
|
||||
|
||||
Private Sub OpenProjectFileDialog_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs)
|
||||
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then
|
||||
e.Cancel = True
|
||||
Return
|
||||
End If
|
||||
' Salvo posizione finestra (se non minimizzata)
|
||||
WinPosFromWindowToIni(Me, S_OPENFILEDIALOG, K_VIEWOPTIMWINPLACE)
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "EVENTS"
|
||||
@@ -78,4 +60,10 @@ Public Class OpenProjectFileDialogV
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
Private Sub Calendar_SelectedDatesChanged(sender As Object, e As SelectionChangedEventArgs)
|
||||
Dim cal As System.Windows.Controls.Calendar = sender
|
||||
m_OpenProjFileDialogVM.m_SearchDate = cal.SelectedDates
|
||||
m_OpenProjFileDialogVM.m_ProjectList_View.Refresh()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -14,32 +14,6 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Public Enum BTLDateTypes As Integer
|
||||
CREATEDATE = 0
|
||||
EXPORTDATE = 1
|
||||
End Enum
|
||||
|
||||
Private Enum FilterTypes As Integer
|
||||
NULL = 0
|
||||
ID = 1
|
||||
BTLFILENAME = 2
|
||||
LISTNAME = 3
|
||||
MACHINE = 4
|
||||
End Enum
|
||||
|
||||
Public Enum DayTypes As Integer
|
||||
LASTMONTH = 0
|
||||
LAST3MONTHS = 1
|
||||
LAST6MONTHS = 2
|
||||
PERIOD = 3
|
||||
End Enum
|
||||
|
||||
Public Enum RowQuantities As Integer
|
||||
FIFTY = 0
|
||||
HUNDRED = 1
|
||||
HUNDREDANDFIFTY = 2
|
||||
End Enum
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
|
||||
Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
@@ -109,131 +83,18 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_BTLDateTypeList As New List(Of String)
|
||||
Public ReadOnly Property BTLDateTypeList As List(Of String)
|
||||
Get
|
||||
Return m_BTLDateTypeList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_SelBTLDateType As BTLDateTypes = Nothing
|
||||
Public Property SelBTLDateType As Integer
|
||||
Get
|
||||
Return m_SelBTLDateType
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
' aggiorno lista da Db
|
||||
RefreshProjectList()
|
||||
m_ProjectList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Private m_DayTypeList As New List(Of String)({"Last Month", "Last 3 Months", "Last 6 Months", EgtMsg(62531)})
|
||||
Public ReadOnly Property DayTypeList As List(Of String)
|
||||
Get
|
||||
Return m_DayTypeList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_SelDayType As DayTypes = DayTypes.LASTMONTH
|
||||
Public Property SelDayType As Integer
|
||||
Get
|
||||
Return m_SelDayType
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
Dim PrevSelDayType As DayTypes = m_SelDayType
|
||||
m_SelDayType = value
|
||||
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_DAYTYPE, Convert.ToInt32(m_SelDayType))
|
||||
m_Date_Visibility = If(m_SelDayType = DayTypes.PERIOD, Visibility.Visible, Visibility.Collapsed)
|
||||
If m_SelDayType = DayTypes.PERIOD Then
|
||||
Select Case PrevSelDayType
|
||||
Case DayTypes.LASTMONTH
|
||||
m_dtStartDate = DateTime.Today + TimeSpan.FromDays(1)
|
||||
m_dtEndDate = m_dtStartDate - TimeSpan.FromDays(31)
|
||||
Case DayTypes.LAST3MONTHS
|
||||
|
||||
Case DayTypes.LAST6MONTHS
|
||||
|
||||
End Select
|
||||
NotifyPropertyChanged(NameOf(dtStartDate))
|
||||
NotifyPropertyChanged(NameOf(dtEndDate))
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(Date_Visibility))
|
||||
' aggiorno lista da Db
|
||||
RefreshProjectList()
|
||||
m_ProjectList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_dtStartDate As DateTime = DateTime.Today
|
||||
Public Property dtStartDate As DateTime
|
||||
Get
|
||||
Return m_dtStartDate
|
||||
End Get
|
||||
Set(value As DateTime)
|
||||
m_dtStartDate = value
|
||||
Dim lStartDate As Long = m_dtStartDate.ToFileTimeUtc()
|
||||
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_STARTDATE, lStartDate.ToString())
|
||||
' aggiorno lista da Db
|
||||
RefreshProjectList()
|
||||
m_ProjectList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_dtEndDate As DateTime = DateTime.Today
|
||||
Public Property dtEndDate As DateTime
|
||||
Get
|
||||
Return m_dtEndDate
|
||||
End Get
|
||||
Set(value As DateTime)
|
||||
m_dtEndDate = value
|
||||
Dim lEndDate As Long = m_dtEndDate.ToFileTimeUtc()
|
||||
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_ENDDATE, lEndDate.ToString())
|
||||
' aggiorno lista da Db
|
||||
RefreshProjectList()
|
||||
m_ProjectList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Date_Visibility As Visibility = Visibility.Collapsed
|
||||
Public ReadOnly Property Date_Visibility As Visibility
|
||||
Get
|
||||
Return m_Date_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_RowQuantityList As New List(Of String)({50, 100, 150})
|
||||
Public ReadOnly Property RowQuantityList As List(Of String)
|
||||
Get
|
||||
Return m_RowQuantityList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelRowQuantity As RowQuantities
|
||||
Public Property SelRowQuantity As Integer
|
||||
Get
|
||||
Return m_SelRowQuantity
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelRowQuantity = value
|
||||
RefreshProjectList()
|
||||
m_ProjectList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' lista campi per ricerca testuale e con datepicker
|
||||
Protected m_FilterTypeList As New ObservableCollection(Of IdNameStruct)
|
||||
Public ReadOnly Property FilterTypeList As ObservableCollection(Of IdNameStruct)
|
||||
Protected m_SearchColumnList As New ObservableCollection(Of IdNameStruct)
|
||||
Public ReadOnly Property SearchColumnList As ObservableCollection(Of IdNameStruct)
|
||||
Get
|
||||
Return m_FilterTypeList
|
||||
Return m_SearchColumnList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_SelFilterType As IdNameStruct = Nothing
|
||||
Public Property SelFilterType As IdNameStruct
|
||||
Protected m_SelSearchColumn As IdNameStruct = Nothing
|
||||
Public Property SelSearchColumn As IdNameStruct
|
||||
Get
|
||||
Return m_SelFilterType
|
||||
Return m_SelSearchColumn
|
||||
End Get
|
||||
Set(value As IdNameStruct)
|
||||
' resetto il contenuto della barra di ricerca testuale
|
||||
@@ -242,15 +103,15 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
' resetto le selezioni sul calendario
|
||||
If Not IsNothing(SearchDate) Then SearchDate.Clear()
|
||||
' setto il Tipo Filtro a NULL e refresho la lista dei progetti (in modo da averli visibili tutti)
|
||||
m_SelFilterType = m_FilterTypeList(0)
|
||||
m_SelSearchColumn = m_SearchColumnList(0)
|
||||
m_ProjectList_View.Refresh()
|
||||
' ora setto il valore scelto come Tipo Filtro
|
||||
m_SelFilterType = value
|
||||
Select Case m_SelFilterType.Id
|
||||
Case FilterTypes.ID, FilterTypes.BTLFILENAME, FilterTypes.LISTNAME, FilterTypes.MACHINE
|
||||
m_SelSearchColumn = value
|
||||
Select Case m_SelSearchColumn.Id
|
||||
Case OpenProjFileColumn.ID, OpenProjFileColumn.BTLFILENAME, OpenProjFileColumn.LISTNAME, OpenProjFileColumn.MACHINE
|
||||
SearchText_Visibility = Visibility.Visible
|
||||
SearchDate_Visibility = Visibility.Collapsed
|
||||
Case BTLDateTypes.EXPORTDATE, BTLDateTypes.CREATEDATE
|
||||
Case OpenProjFileColumn.EXPORTDATE, OpenProjFileColumn.CREATEDATE
|
||||
SearchText_Visibility = Visibility.Collapsed
|
||||
SearchDate_Visibility = Visibility.Visible
|
||||
Case Else
|
||||
@@ -300,13 +161,18 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Enum OpenProjFileColumn As Integer
|
||||
NULL = 0
|
||||
ID = 1
|
||||
BTLFILENAME = 2
|
||||
LISTNAME = 3
|
||||
EXPORTDATE = 4
|
||||
CREATEDATE = 5
|
||||
MACHINE = 6
|
||||
End Enum
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property Title As String
|
||||
Get
|
||||
Return "Open Project"
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property FilterType_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61836)
|
||||
@@ -370,18 +236,6 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property From_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62523)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property To_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62524)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
' Definizione comandi
|
||||
@@ -390,45 +244,31 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
Sub New()
|
||||
End Sub
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Public MustOverride Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
|
||||
Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False)
|
||||
End Sub
|
||||
|
||||
Protected Sub LoadColumns(ProjectType As ProjectType)
|
||||
If ProjectType = ProjectType.PROJ Then
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_OPENPROJFILEDLG_PROJ, ProjectColumns)
|
||||
' carico campi su cui eseguire il filtro di ricerca
|
||||
m_BTLDateTypeList = New List(Of String)({CreateDate_Msg, ExportDate_Msg})
|
||||
m_SelBTLDateType = BTLDateTypes.CREATEDATE
|
||||
NotifyPropertyChanged(NameOf(BTLDateTypeList))
|
||||
NotifyPropertyChanged(NameOf(SelBTLDateType))
|
||||
m_FilterTypeList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(FilterTypes.NULL, ""),
|
||||
New IdNameStruct(FilterTypes.ID, Id_Msg),
|
||||
New IdNameStruct(FilterTypes.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(FilterTypes.LISTNAME, ListName_Msg),
|
||||
New IdNameStruct(FilterTypes.MACHINE, Machine_Msg)})
|
||||
m_SelFilterType = m_FilterTypeList.FirstOrDefault(Function(x) x.Id = FilterTypes.NULL)
|
||||
NotifyPropertyChanged(NameOf(SelFilterType))
|
||||
m_SearchColumnList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(OpenProjFileColumn.NULL, ""),
|
||||
New IdNameStruct(OpenProjFileColumn.ID, Id_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.LISTNAME, ListName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.EXPORTDATE, ExportDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.MACHINE, Machine_Msg)})
|
||||
ElseIf ProjectType = ProjectType.PROD Then
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_OPENPROJFILEDLG_PROD, ProjectColumns)
|
||||
' carico campi su cui eseguire il filtro di ricerca
|
||||
m_BTLDateTypeList = New List(Of String)({CreateDate_Msg})
|
||||
m_SelBTLDateType = BTLDateTypes.CREATEDATE
|
||||
NotifyPropertyChanged(NameOf(BTLDateTypeList))
|
||||
NotifyPropertyChanged(NameOf(SelBTLDateType))
|
||||
m_FilterTypeList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(FilterTypes.NULL, ""),
|
||||
New IdNameStruct(FilterTypes.ID, Id_Msg),
|
||||
New IdNameStruct(FilterTypes.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(FilterTypes.MACHINE, Machine_Msg)})
|
||||
m_SelFilterType = m_FilterTypeList.FirstOrDefault(Function(x) x.Id = FilterTypes.NULL)
|
||||
NotifyPropertyChanged(NameOf(SelFilterType))
|
||||
m_SearchColumnList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(OpenProjFileColumn.NULL, ""),
|
||||
New IdNameStruct(OpenProjFileColumn.ID, Id_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.MACHINE, Machine_Msg)})
|
||||
End If
|
||||
' setto la visibilità delle colonne delle EgtDataGrid
|
||||
For Each col In ProjectColumns
|
||||
@@ -461,22 +301,22 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
Dim bProjectOk As Boolean = True
|
||||
If m_ProjectType = ProjectType.PROJ Then
|
||||
Dim CurrProj As ProjFileVM = DirectCast(Proj, ProjFileVM)
|
||||
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
|
||||
(m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not SearchDate.Contains(CurrProj.dtExportDate.Date)) OrElse
|
||||
(m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
|
||||
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelFilterType.Id = FilterTypes.ID AndAlso CurrProj.sProjId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.EXPORTDATE AndAlso Not SearchDate.Contains(CurrProj.dtExportDate.Date)) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.ID AndAlso CurrProj.sProjId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.LISTNAME AndAlso CurrProj.sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
ElseIf m_ProjectType = ProjectType.PROD Then
|
||||
Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM)
|
||||
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
|
||||
(m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
|
||||
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelFilterType.Id = FilterTypes.ID AndAlso CurrProj.sProdId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.ID AndAlso CurrProj.sProdId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
End If
|
||||
Return bProjectOk
|
||||
End Function
|
||||
|
||||
@@ -19,49 +19,39 @@ Public Class ProjFileM
|
||||
End Property
|
||||
|
||||
Protected m_sBTLFileName As String = String.Empty
|
||||
Public Property sBTLFileName As String
|
||||
Get
|
||||
Return m_sBTLFileName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sBTLFileName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_sDescription As String = String.Empty
|
||||
Public Property sDescription As String
|
||||
Get
|
||||
Return m_sDescription
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sDescription = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property sBTLFileName As String
|
||||
Get
|
||||
Return m_sBTLFileName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sBTLFileName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
|
||||
Protected Sub New()
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateNewProjFileM() As ProjFileM
|
||||
Return New ProjFileM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateProjFileM(nProjId As Integer, nProdId As Integer, dtCreateProjDate As DateTime, dtExportDate As DateTime, sListName As String, sBTLFileName As String, sDescription As String, IsNew As Boolean, IsLocked As Boolean, nType As BWType, sMachine As String) As ProjFileM
|
||||
Dim NewProjectFileM As New ProjFileM
|
||||
NewProjectFileM.m_nProjId = nProjId
|
||||
NewProjectFileM.m_nProdId = nProdId
|
||||
NewProjectFileM.m_dtCreateDate = dtCreateProjDate
|
||||
NewProjectFileM.m_dtExportDate = dtExportDate
|
||||
NewProjectFileM.m_sListName = sListName
|
||||
NewProjectFileM.m_sBTLFileName = sBTLFileName
|
||||
NewProjectFileM.m_sDescription = sDescription
|
||||
NewProjectFileM.m_bIsNew = IsNew
|
||||
NewProjectFileM.m_bIsLocked = IsLocked
|
||||
NewProjectFileM.m_nType = nType
|
||||
NewProjectFileM.m_sMachine = sMachine
|
||||
Return NewProjectFileM
|
||||
End Function
|
||||
Public Shared Function CreateProjFileM(nProjId As Integer, nProdId As Integer, dtCreateProjDate As DateTime, dtExportDate As DateTime, sListName As String,
|
||||
sBTLFileName As String, IsNew As Boolean, IsLocked As Boolean, nType As BWType, sMachine As String) As ProjFileM
|
||||
Dim NewProjectFileM As New ProjFileM
|
||||
NewProjectFileM.m_nProjId = nProjId
|
||||
NewProjectFileM.m_nProdId = nProdId
|
||||
NewProjectFileM.m_dtCreateDate = dtCreateProjDate
|
||||
NewProjectFileM.m_dtExportDate = dtExportDate
|
||||
NewProjectFileM.m_sListName = sListName
|
||||
NewProjectFileM.m_sBTLFileName = sBTLFileName
|
||||
NewProjectFileM.m_bIsNew = IsNew
|
||||
NewProjectFileM.m_bIsLocked = IsLocked
|
||||
NewProjectFileM.m_nType = nType
|
||||
NewProjectFileM.m_sMachine = sMachine
|
||||
Return NewProjectFileM
|
||||
End Function
|
||||
|
||||
#End Region ' CONSTRUCTORS
|
||||
|
||||
|
||||
@@ -68,12 +68,6 @@ Public Class ProjFileVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sDescription As String
|
||||
Get
|
||||
Return ProjFileM.sDescription
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sListName As String
|
||||
Get
|
||||
Return ProjFileM.sListName
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using NLog.LayoutRenderers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -173,75 +174,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// Elenco progetti
|
||||
/// </summary>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <param name="numRecord"></param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdFileM> GetLastDesc(int numRecord, bool OnlyActive)
|
||||
public List<Core.ProdFileM> GetLastDesc(int numRecord)
|
||||
{
|
||||
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
|
||||
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
|
||||
List<ProdModel> dbResult = new List<ProdModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResult = localDbCtx
|
||||
.ProdList
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x=> x.IsActive || !OnlyActive),
|
||||
p => p.ProdDbId,
|
||||
e=> e.ProdDbId,
|
||||
(p,e) => p)
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// conversione
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate)).ToList();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco prod
|
||||
/// </summary>
|
||||
/// <param name="dtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="dtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProdFileM> GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive)
|
||||
{
|
||||
List<Core.ProdFileM> result = new List<Core.ProdFileM>();
|
||||
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
|
||||
List<ProdModel> dbResult = new List<ProdModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProdList.Count();
|
||||
}
|
||||
// retrieve
|
||||
dbResult = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd)
|
||||
// condizione join sui PROJ
|
||||
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
|
||||
p => p.ProdDbId,
|
||||
e => e.ProdDbId,
|
||||
(p, e) => p)
|
||||
.OrderByDescending(x => x.ProdId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
var dbResult = GetLastDbModelDesc(numRecord);
|
||||
// conversione
|
||||
result = dbResult.Select(x => Core.ProdFileM.CreateProdFileM(x.ProdId, ProjIdByProd(x.ProdId), x.DtCreated, x.Description, x.PType, x.Machine, x.LockedBy, x.LockDate)).ToList();
|
||||
return result;
|
||||
@@ -468,7 +408,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.OrderBy(n => n.PartCount);
|
||||
|
||||
// controllo: nell'elenco delle barre MachGroupList NON devono esserci duplicati per
|
||||
// l'ID (esterno) che deve essere univoco...
|
||||
// l'ID (esterno) che deve essere univoco...
|
||||
testOk = listaCheck.Where(x => x.PartCount > 1).Count() == 0;
|
||||
if (testOk)
|
||||
{
|
||||
@@ -776,7 +716,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
return answ;
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Get LAST paginated data from DB (DESC ordered)
|
||||
/// </summary>
|
||||
@@ -798,8 +737,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
protected List<int> ProjIdByProd(int ProdId)
|
||||
{
|
||||
|
||||
@@ -45,12 +45,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete Proj logically / on DB by ProjId
|
||||
/// Delete Proj on DB by ProjId
|
||||
/// </summary>
|
||||
/// <param name="ProjId"></param>
|
||||
/// <param name="IsLogical"></param>
|
||||
/// <returns></returns>
|
||||
public bool DeleteProj(int ProjId, bool IsLogical)
|
||||
public bool DeleteProj(int ProjId)
|
||||
{
|
||||
bool done = false;
|
||||
|
||||
@@ -60,45 +59,25 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
// sel delle BTLParts da proj
|
||||
var parts2del = localDbCtx
|
||||
.BTLPartList
|
||||
.Where(x => x.ProjDbId == currProj.ProjDbId);
|
||||
|
||||
if (IsLogical)
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
currProj.IsActive = false;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Proj.DeleteProj (logical only): {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
// remove from database
|
||||
localDbCtx.BTLPartList.RemoveRange(parts2del);
|
||||
localDbCtx.ProjList.Remove(currProj);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
catch (Exception exc)
|
||||
{
|
||||
// sel delle BTLParts da proj
|
||||
var parts2del = localDbCtx
|
||||
.BTLPartList
|
||||
.Where(x => x.ProjDbId == currProj.ProjDbId);
|
||||
|
||||
try
|
||||
{
|
||||
// remove from database
|
||||
localDbCtx.BTLPartList.RemoveRange(parts2del);
|
||||
localDbCtx.ProjList.Remove(currProj);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Proj.DeleteProj (on DB): {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
string errMessage = $"EXCEPTION on Proj.DeleteProj: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return done;
|
||||
@@ -112,9 +91,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// Get records filtered by BtlPartName matching regexp BtlFileName[_number]
|
||||
/// </summary>
|
||||
/// <param name="BtlFileName">Base name to search for (=starts by BtlFileName%)</param>
|
||||
/// <param name="OnlyActive">Solo i record attivi (senza cancellazione logica)</param>
|
||||
/// <returns></returns>
|
||||
public List<ProjModel> FindByBtlFileName(string BtlFileName, bool OnlyActive)
|
||||
public List<ProjModel> FindByBtlFileName(string BtlFileName)
|
||||
{
|
||||
List<ProjModel> searchResult = new List<ProjModel>();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
@@ -122,7 +100,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// in primi cerco il record "parent" generale, se non ci fosse inutile proseguire...
|
||||
ProjModel parentRec = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.BTLFileName == BtlFileName && (!OnlyActive || x.IsActive))
|
||||
.Where(x => x.BTLFileName == BtlFileName)
|
||||
.FirstOrDefault();
|
||||
if (parentRec != null && parentRec.ProjId > 0)
|
||||
{
|
||||
@@ -131,7 +109,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// cerco eventuali dati "child" puliti
|
||||
var childRec = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.BTLFileName.StartsWith(BtlFileName + "_") && (!OnlyActive || x.IsActive))
|
||||
.Where(x => x.BTLFileName.StartsWith(BtlFileName + "_"))
|
||||
.ToList();
|
||||
// faccio filtro con ricerca regexp x scartare "falsi positivi" come BtlFileName_nonNumero...
|
||||
if (childRec.Count > 0)
|
||||
@@ -202,7 +180,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <summary>
|
||||
/// Get filtered data by ProdId (ASC ordered)
|
||||
/// </summary>
|
||||
/// <param name="ProdId"></param>
|
||||
/// <param name="ProdDbId"></param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProjFileM> GetByProdAsc(int ProdId)
|
||||
{
|
||||
@@ -302,12 +280,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <summary>
|
||||
/// Elenco progetti
|
||||
/// </summary>
|
||||
/// <param name="dtStart">Inizio periodo estrazione (per export date)</param>
|
||||
/// <param name="dtEnd">Fine periodo estrazione (per export date)</param>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo i record attivi (senza cancellazione logica)</param>
|
||||
/// <param name="numRecord"></param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProjFileM> GetLastByExpDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive)
|
||||
public List<Core.ProjFileM> GetLastDesc(int numRecord)
|
||||
{
|
||||
List<Core.ProjFileM> answ = new List<Core.ProjFileM>();
|
||||
|
||||
@@ -321,69 +296,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// retrieve
|
||||
var dbRes = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => (x.DtExported >= dtStart && x.DtExported <= dtEnd) && (!OnlyActive || x.IsActive))
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco progetti
|
||||
/// </summary>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo i record attivi (senza cancellazione logica)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProjFileM> GetLastDesc(int numRecord, bool OnlyActive)
|
||||
{
|
||||
List<Core.ProjFileM> answ = new List<Core.ProjFileM>();
|
||||
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProjList.Count();
|
||||
}
|
||||
// retrieve
|
||||
var dbRes = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => (!OnlyActive || x.IsActive))
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
// conversione
|
||||
answ = dbRes.Select(x => coreConv(x)).ToList();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco progetti
|
||||
/// </summary>
|
||||
/// <param name="dtStart">Inizio periodo estrazione</param>
|
||||
/// <param name="dtEnd">Fine periodo estrazione</param>
|
||||
/// <param name="numRecord">Num max record da recuperare</param>
|
||||
/// <param name="OnlyActive">Solo i record attivi (senza cancellazione logica)</param>
|
||||
/// <returns></returns>
|
||||
public List<Core.ProjFileM> GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive)
|
||||
{
|
||||
List<Core.ProjFileM> answ = new List<Core.ProjFileM>();
|
||||
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// se numRecord = 0 --> passo tutti
|
||||
if (numRecord == 0)
|
||||
{
|
||||
numRecord = localDbCtx.ProjList.Count();
|
||||
}
|
||||
// retrieve
|
||||
var dbRes = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => (x.DtCreated >= dtStart && x.DtCreated <= dtEnd) && (!OnlyActive || x.IsActive))
|
||||
.OrderByDescending(x => x.ProjId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
@@ -429,7 +341,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
ProjId = nextId,
|
||||
BTLFileName = "",
|
||||
ProjDescription = "",
|
||||
IsNew = true,
|
||||
Locked = true,
|
||||
LockedBy = UserKey,
|
||||
@@ -666,62 +577,15 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
return currData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update record su DB x Description
|
||||
/// </summary>
|
||||
/// <param name="ProjId"></param>
|
||||
/// <param name="Description"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM UpdateDescription(int ProjId, string Description)
|
||||
{
|
||||
// cerco specifico Proj
|
||||
ProjModel currData;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
if (currData != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.ProjDescription = Description;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.UpdateDescription:{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateDescription: req item was not found | ProjId {ProjId} | Description {Description}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
|
||||
return coreConv(currData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update record su DB x nomeBTL, ListName, ExportDate
|
||||
/// </summary>
|
||||
/// <param name="ProjId"></param>
|
||||
/// <param name="BTLFileName"></param>
|
||||
/// <param name="Description"></param>
|
||||
/// <param name="ListName"></param>
|
||||
/// <param name="DtExported"></param>
|
||||
/// <param name="PType"></param>
|
||||
/// <param name="Machine"></param>
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM UpdateInfo(int ProjId, string BTLFileName, string Description, string ListName, DateTime DtExported, BWType PType, string Machine)
|
||||
public Core.ProjFileM UpdateInfo(int ProjId, string BTLFileName, string ListName, DateTime DtExported, BWType PType, string Machine)
|
||||
{
|
||||
// cerco specifico Proj
|
||||
ProjModel currData;
|
||||
@@ -736,10 +600,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
try
|
||||
{
|
||||
// 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato -->
|
||||
// nuovo nome, nel formato nomeOriginale_idx, dove idx è il contatore libero
|
||||
// successivo 2023.06.08: lasciato come prima, anche NON attivi
|
||||
// (cancellazione logica)
|
||||
var duplicateList = FindByBtlFileName(BTLFileName, false);
|
||||
// nuovo nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo
|
||||
var duplicateList = FindByBtlFileName(BTLFileName);
|
||||
// devo verificare SOLO SE la lista non è vuota
|
||||
if (duplicateList != null && duplicateList.Count > 0)
|
||||
{
|
||||
@@ -773,8 +635,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
// aggiorno valore BTL
|
||||
currData.BTLFileName = BTLFileName;
|
||||
// aggiorno il resto
|
||||
currData.ProjDescription = Description;
|
||||
currData.DtExported = DtExported;
|
||||
currData.ListName = ListName;
|
||||
currData.PType = PType;
|
||||
@@ -792,7 +652,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateInfo: req item was not found | ProjId {ProjId} | Description {BTLFileName} | ListName {ListName} | DtExported {DtExported} | PType {PType} | Machine {Machine}";
|
||||
string errMessage = $"ERROR on Proj.UpdateInfo: req item was not found | ProjId {ProjId} | BTLFileName {BTLFileName} | ListName {ListName} | DtExported {DtExported} | PType {PType} | Machine {Machine}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
@@ -900,7 +760,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
Core.ProjFileM answ = null;
|
||||
if (currProj != null)
|
||||
{
|
||||
answ = Core.ProjFileM.CreateProjFileM(currProj.ProjId, ProdIdByProdDbId(currProj.ProdDbId), currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine);
|
||||
answ = Core.ProjFileM.CreateProjFileM(currProj.ProjId, ProdIdByProdDbId(currProj.ProdDbId), currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using static EgtBEAMWALL.Core.ConstBeam;
|
||||
@@ -28,12 +31,6 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Column("DtExported")]
|
||||
public DateTime DtExported { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Record attivo (se false == cancellazione logica)
|
||||
/// </summary>
|
||||
[Column("IsActive")]
|
||||
public bool IsActive { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Stato NEW = creato ma NON salvato
|
||||
/// </summary>
|
||||
@@ -46,13 +43,6 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Column("ListName")]
|
||||
public string ListName { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// DataOra ultima operazione di Lock (o di rimozione di lock), quando aperto da un
|
||||
/// dispositivo in rete
|
||||
/// </summary>
|
||||
[Column("LockDate")]
|
||||
public DateTime LockDate { get; set; } = DateTime.MinValue;
|
||||
|
||||
/// <summary>
|
||||
/// Stato locked (quando aperto da un dispositivo in rete)
|
||||
/// </summary>
|
||||
@@ -65,6 +55,12 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Column("LockedBy")]
|
||||
public string LockedBy { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// DataOra ultima operazione di Lock (o di rimozione di lock), quando aperto da un dispositivo in rete
|
||||
/// </summary>
|
||||
[Column("LockDate")]
|
||||
public DateTime LockDate { get; set; } = DateTime.MinValue;
|
||||
|
||||
/// <summary>
|
||||
/// Macchina
|
||||
/// </summary>
|
||||
@@ -80,12 +76,6 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
[Key, Column("ProjDbId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int ProjDbId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Descrizione progetto (copiata da BTLFileName inizialmente)
|
||||
/// </summary>
|
||||
[Column("ProjDescription")]
|
||||
public string ProjDescription { get; set; } = "";
|
||||
|
||||
[Column("Id")]
|
||||
public int ProjId { get; set; }
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace EgtBEAMWALL.DataLayer
|
||||
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// DB Connection string, per effettuare migration riportare valore connessione admin cablato
|
||||
/// DB Connection string
|
||||
/// </summary>
|
||||
public static string CONNECTION_STRING { get; set; } = "";
|
||||
|
||||
|
||||
@@ -172,10 +172,6 @@
|
||||
<Compile Include="Migrations\202207051703296_UpgradeLockModel.designer.cs">
|
||||
<DependentUpon>202207051703296_UpgradeLockModel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202306081452095_UpdateProjModel.cs" />
|
||||
<Compile Include="Migrations\202306081452095_UpdateProjModel.designer.cs">
|
||||
<DependentUpon>202306081452095_UpdateProjModel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Utils.cs" />
|
||||
@@ -215,9 +211,6 @@
|
||||
<EmbeddedResource Include="Migrations\202207051703296_UpgradeLockModel.resx">
|
||||
<DependentUpon>202207051703296_UpgradeLockModel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202306081452095_UpdateProjModel.resx">
|
||||
<DependentUpon>202306081452095_UpdateProjModel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
// <auto-generated />
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
|
||||
public sealed partial class UpdateProjModel : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(UpdateProjModel));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202306081452095_UpdateProjModel"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
namespace EgtBEAMWALL.DataLayer.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class UpdateProjModel : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AddColumn("dbo.ProjList", "IsActive", c => c.Boolean(nullable: false, defaultValueSql: "1"));
|
||||
AddColumn("dbo.ProjList", "ProjDescription", c => c.String(unicode: false));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropColumn("dbo.ProjList", "ProjDescription");
|
||||
DropColumn("dbo.ProjList", "IsActive");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.5.6.2")]
|
||||
[assembly: AssemblyFileVersion("2.5.6.2")]
|
||||
[assembly: AssemblyVersion("2.5.5.4")]
|
||||
[assembly: AssemblyFileVersion("2.5.5.4")]
|
||||
|
||||
@@ -40,7 +40,7 @@ Public Class LeftPanelVM
|
||||
Return m_SelChannel
|
||||
End Get
|
||||
Set(ByVal value As IdNameStruct)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id))
|
||||
m_SelChannel = value
|
||||
End Set
|
||||
End Property
|
||||
@@ -86,7 +86,7 @@ Public Class LeftPanelVM
|
||||
Return m_SelOPMode
|
||||
End Get
|
||||
Set(ByVal value As OPState)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id))
|
||||
' se MDI
|
||||
If value.Id = OPModes.Mdi Then
|
||||
' mostro pagina comandi MDI
|
||||
@@ -561,6 +561,8 @@ Public Class LeftPanelVM
|
||||
If CurrentMachine.Flow = FlowTypes.ONEBYONE Then
|
||||
MyMachGroupVM.UpdateProduceIsEnabledForAll()
|
||||
End If
|
||||
' aggiorno log macchina
|
||||
Map.refMachineLogPageVM.UpdateMachineLogList(False)
|
||||
End Sub
|
||||
|
||||
#End Region ' DoneRawPart
|
||||
@@ -800,6 +802,8 @@ Public Class LeftPanelVM
|
||||
Next
|
||||
SetDonePart(SelMachGroup, SelMachGroup.SelPart)
|
||||
Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup = SelMachGroup
|
||||
' aggiorno log macchina
|
||||
Map.refMachineLogPageVM.UpdateMachineLogList(False)
|
||||
End Sub
|
||||
|
||||
Public Sub SetDonePart(MachGroup As MyMachGroupVM, Part As PartVM)
|
||||
|
||||
@@ -163,7 +163,7 @@ Public Class MDIPageVM
|
||||
''' </summary>
|
||||
Friend Sub SendMDI()
|
||||
If Not String.IsNullOrWhiteSpace(m_sMDICommand_Text) Then
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -427,11 +427,11 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub Disconnect()
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
|
||||
End Sub
|
||||
|
||||
Public Sub SetOPState(OpState As Integer)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Start_Command As ICommand
|
||||
@@ -442,7 +442,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub Start(ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.START))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.START))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Stop_Command As ICommand
|
||||
@@ -453,7 +453,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub [Stop](ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOP_))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOP_))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Reset_Command As ICommand
|
||||
@@ -464,7 +464,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub Reset(ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.RESET))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.RESET))
|
||||
' annullo stato di pronto ad essere lavorato di tutti i programmi
|
||||
If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then Map.refProjectVM.SupervisorMachGroupPanelVM.ResetAllMachGroups()
|
||||
End Sub
|
||||
@@ -477,7 +477,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub [Step](ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STEP_))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STEP_))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property SetPoint_Command As ICommand
|
||||
@@ -488,7 +488,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub SetPoint(ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETPOINT))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETPOINT))
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -500,7 +500,7 @@ Public Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub DeleteAlarms(ByVal param As Object)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS))
|
||||
End Sub
|
||||
|
||||
Public Function GetVarPathByName(Name As String) As String
|
||||
|
||||
@@ -10,9 +10,6 @@ Imports EgtBEAMWALL.Supervisor.CommVar
|
||||
|
||||
Public Class MachManaging
|
||||
|
||||
' lock per aggiunta elemento a lista MachGroup
|
||||
Private Shared Lock_CommandList As New Object
|
||||
|
||||
Private m_bConnected As Boolean = False
|
||||
Public ReadOnly Property bConnected As Boolean
|
||||
Get
|
||||
@@ -56,22 +53,6 @@ Public Class MachManaging
|
||||
Return m_CommandList
|
||||
End Get
|
||||
End Property
|
||||
Friend Shared Sub AddToCommandList(value As ThreadCommand)
|
||||
SyncLock Lock_CommandList
|
||||
' EgtOutLog("Inizio ciclo rimozioni")
|
||||
For CommandIndex = m_CommandList.Count - 1 To 0 Step -1
|
||||
Dim Command As ThreadCommand = m_CommandList(CommandIndex)
|
||||
If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.DONE Then
|
||||
' EgtOutLog("Inizio rimozione comando")
|
||||
m_CommandList.Remove(Command)
|
||||
' EgtOutLog("Fine rimozione comando")
|
||||
End If
|
||||
Next
|
||||
' EgtOutLog("Fine ciclo rimozioni")
|
||||
CommandList.Add(value)
|
||||
' EgtOutLog("Count dopo aggiunta: " & CommandList.Count)
|
||||
End SyncLock
|
||||
End Sub
|
||||
|
||||
Private m_bStartPending As Boolean = False
|
||||
Public ReadOnly Property StartPending As Boolean
|
||||
@@ -588,6 +569,8 @@ Public Class MachManaging
|
||||
' scrivo evento inizio MachGroup su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachGroupStateLog(dtStart, nP_Prod, nP_Machgroup, nP_State, DbControllers.SupervisorId))
|
||||
End If
|
||||
' flag di aggiornamento log macchina
|
||||
Map.refMachineLogPageVM.UpdateMachineLogList(False)
|
||||
' attesa per essere sicuro che abbia scritto e riletto variabili
|
||||
Threading.Thread.Sleep(300)
|
||||
ElseIf nP_State = PartState.END_ Then
|
||||
@@ -657,7 +640,7 @@ Public Class MachManaging
|
||||
|
||||
' se non impostata data start
|
||||
If MachGroup.dtStartTime = DateTime.MinValue Then
|
||||
' EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup)
|
||||
EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup)
|
||||
Dim dtStart As DateTime = MachGroup.dtEndTime - TimeSpan.FromSeconds(60)
|
||||
' provo a recuperare tempo stimato
|
||||
If MachGroup.nCALC_TIME > 0 Then
|
||||
@@ -697,6 +680,8 @@ Public Class MachManaging
|
||||
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
|
||||
End If
|
||||
End If
|
||||
' flag di aggiornamento log macchina
|
||||
Map.refMachineLogPageVM.UpdateMachineLogList(False)
|
||||
' attesa per essere sicuro che abbia scritto e riletto variabili
|
||||
Threading.Thread.Sleep(300)
|
||||
End If
|
||||
@@ -741,7 +726,7 @@ Public Class MachManaging
|
||||
End Function
|
||||
|
||||
Private Function SendNextProgram() As Boolean
|
||||
' EgtOutLog("Inizio SendNextProgram")
|
||||
EgtOutLog("Inizio SendNextProgram")
|
||||
Dim bSent As Boolean = False
|
||||
If (CurrentMachine.NCType = NCTypes.TPA AndAlso Not m_bStartPending AndAlso Tpa.opState = MachineOperatingState.Pending) OrElse
|
||||
(CurrentMachine.NCType = NCTypes.NUM_FLEXIUM AndAlso Not Num_Flexium.bIsTransferActive) OrElse
|
||||
@@ -749,20 +734,20 @@ Public Class MachManaging
|
||||
(CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT AndAlso Not Num_Axium_PCToolkit.bIsTransferActive) Then ' Or Tpa.opState = MachineOperatingState.Start) Then
|
||||
' verifico se c'e' un programma da lanciare
|
||||
If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then
|
||||
' EgtOutLog("Start " & DateTime.Now())
|
||||
EgtOutLog("Start " & DateTime.Now())
|
||||
Dim bMachGroupNotReady As Boolean = False
|
||||
SyncLock m_Lock_SendProgram
|
||||
For Each MyMachGroup As MyMachGroupVM In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList
|
||||
' EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id)
|
||||
EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id)
|
||||
If Not MyMachGroup.bSentToMachine AndAlso (MyMachGroup.dtStartTime = DateTime.MinValue OrElse
|
||||
(Map.refSupervisorManagerVM.CurrProd.nType = BWType.WALL AndAlso MyMachGroup.bResetWhileCutting)) Then
|
||||
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare")
|
||||
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare")
|
||||
' verifico se ricalcolo finito
|
||||
If MyMachGroup.bReadyForMachining AndAlso If(CurrentMachine.NCType = NCTypes.NUM_FLEXIUM Or CurrentMachine.NCType = NCTypes.NUM_AXIUM_APSERVER OrElse CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT, Not MyMachGroup.bSendingToMachine, True) Then
|
||||
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato")
|
||||
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato")
|
||||
' lo lancio
|
||||
bSent = SendProgram(MyMachGroup.CnFilePath(), MyMachGroup.Name)
|
||||
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString())
|
||||
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString())
|
||||
Select Case CurrentMachine.NCType
|
||||
Case NCTypes.TPA
|
||||
MyMachGroup.SetSentToMachine(bSent)
|
||||
@@ -774,7 +759,7 @@ Public Class MachManaging
|
||||
Else
|
||||
' programma non ancora pronto, esco per attendere
|
||||
bMachGroupNotReady = True
|
||||
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato")
|
||||
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato")
|
||||
Exit For
|
||||
'Return False
|
||||
End If
|
||||
@@ -782,7 +767,7 @@ Public Class MachManaging
|
||||
Next
|
||||
End SyncLock
|
||||
If bMachGroupNotReady Then Return False
|
||||
' EgtOutLog("End " & DateTime.Now())
|
||||
EgtOutLog("End " & DateTime.Now())
|
||||
End If
|
||||
End If
|
||||
Return bSent
|
||||
@@ -790,17 +775,10 @@ Public Class MachManaging
|
||||
|
||||
Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
|
||||
If Not IsNothing(e.NewItems) Then
|
||||
' EgtOutLog("Inizio ciclo esecuzione comandi")
|
||||
Dim nCommandCount As Integer = e.NewItems.Count
|
||||
For CommandIndex = 0 To nCommandCount - 1
|
||||
Dim Command As ThreadCommand = e.NewItems(CommandIndex)
|
||||
If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.WAITING Then
|
||||
Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.PROCESSING)
|
||||
ExecuteCommand(DirectCast(Command, ThreadCommand))
|
||||
Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.DONE)
|
||||
End If
|
||||
For Each Command In e.NewItems
|
||||
ExecuteCommand(DirectCast(Command, ThreadCommand))
|
||||
m_CommandList.Remove(Command)
|
||||
Next
|
||||
' EgtOutLog("Fine ciclo esecuzione di " & nCommandCount & " comandi")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -1070,7 +1048,7 @@ Public Class MachManaging
|
||||
Num_Axium_APServer.StartTransfer()
|
||||
Return True
|
||||
Case NCTypes.NUM_AXIUM_PCTOOLKIT
|
||||
' EgtOutLog("Pre Download")
|
||||
EgtOutLog("Pre Download")
|
||||
Dim nFileType As Integer = 0
|
||||
If Integer.TryParse(ProgramId, nFileType) AndAlso nFileType > 0 Then
|
||||
Num_Axium_PCToolkit.FileDownload(nFileType * 10, ProgramPath)
|
||||
|
||||
@@ -54,12 +54,6 @@ End Class
|
||||
|
||||
Public Class ThreadCommand
|
||||
|
||||
Public Enum ProcessingStatuses
|
||||
WAITING = 1
|
||||
PROCESSING = 2
|
||||
DONE = 3
|
||||
End Enum
|
||||
|
||||
Private m_CommandType As CommandTypes
|
||||
Public ReadOnly Property CommandType As CommandTypes
|
||||
Get
|
||||
@@ -101,16 +95,6 @@ Public Class ThreadCommand
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_ProcessingStatus As ProcessingStatuses = ProcessingStatuses.WAITING
|
||||
Public ReadOnly Property ProcessingStatus As ProcessingStatuses
|
||||
Get
|
||||
Return m_ProcessingStatus
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetProcessingStatus(value As ProcessingStatuses)
|
||||
m_ProcessingStatus = value
|
||||
End Sub
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -25,21 +25,21 @@
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Height="30">
|
||||
<TextBlock Text="{Binding Entity_Msg}"
|
||||
<TextBlock Text="Entità"
|
||||
Style="{StaticResource Log_TextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding EntityTypeList}"
|
||||
SelectedIndex="{Binding SelEntityType}"
|
||||
Width="70"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<TextBlock Text="{Binding Event_Msg}"
|
||||
<TextBlock Text="Evento"
|
||||
Style="{StaticResource Log_TextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding PartEventTypeList}"
|
||||
SelectedIndex="{Binding SelPartEventType}"
|
||||
Width="70"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<TextBlock Text="{Binding Date_Msg}"
|
||||
<TextBlock Text="Data"
|
||||
Style="{StaticResource Log_TextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding DayTypeList}"
|
||||
SelectedIndex="{Binding SelDayType}"
|
||||
@@ -47,11 +47,11 @@
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<StackPanel Orientation="Horizontal" Visibility="{Binding Date_Visibility}">
|
||||
<TextBlock Text="{Binding From_Msg}"
|
||||
<TextBlock Text="Dal"
|
||||
Style="{StaticResource Log_TextBlock}"/>
|
||||
<DatePicker SelectedDate="{Binding dtStartDate}"
|
||||
Style="{StaticResource Log_DatePicker}"/>
|
||||
<TextBlock Text="{Binding To_Msg}"
|
||||
<TextBlock Text="Al"
|
||||
Style="{StaticResource Log_TextBlock}"/>
|
||||
<DatePicker SelectedDate="{Binding dtEndDate}"
|
||||
Style="{StaticResource Log_DatePicker}"/>
|
||||
|
||||
@@ -9,6 +9,10 @@ Imports EgtBEAMWALL.Core.MachLog
|
||||
Public Class MachineLogPageVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_Lock_LogList As New Object
|
||||
|
||||
Private m_MachineLog_Timer As New DispatcherTimer
|
||||
|
||||
Private Enum DayTypes As Integer
|
||||
TODAY = 0
|
||||
YESTERDAY = 1
|
||||
@@ -68,7 +72,7 @@ Public Class MachineLogPageVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_PartEventTypeList As New List(Of String)({"", EgtMsg(62527), EgtMsg(62528)})
|
||||
Private m_PartEventTypeList As New List(Of String)({"", "Inizio", "Fine"})
|
||||
Public ReadOnly Property PartEventTypeList As List(Of String)
|
||||
Get
|
||||
Return m_PartEventTypeList
|
||||
@@ -87,7 +91,7 @@ Public Class MachineLogPageVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityTypeList As New List(Of String)({"", EgtMsg(62525), EgtMsg(62526)})
|
||||
Private m_EntityTypeList As New List(Of String)({"", "Pezzo", "Barra"})
|
||||
Public ReadOnly Property EntityTypeList As List(Of String)
|
||||
Get
|
||||
Return m_EntityTypeList
|
||||
@@ -106,7 +110,7 @@ Public Class MachineLogPageVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_DayTypeList As New List(Of String)({EgtMsg(62529), EgtMsg(62530), EgtMsg(62531)})
|
||||
Private m_DayTypeList As New List(Of String)({"Oggi", "Ieri", "Periodo"})
|
||||
Public ReadOnly Property DayTypeList As List(Of String)
|
||||
Get
|
||||
Return m_DayTypeList
|
||||
@@ -131,7 +135,7 @@ Public Class MachineLogPageVM
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(Date_Visibility))
|
||||
' aggiorno lista da Db
|
||||
UpdateMachineLogList()
|
||||
UpdateMachineLogList(True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -145,7 +149,7 @@ Public Class MachineLogPageVM
|
||||
Dim lStartDate As Long = m_dtStartDate.ToFileTimeUtc()
|
||||
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_STARTDATE, lStartDate.ToString())
|
||||
' aggiorno lista da Db
|
||||
UpdateMachineLogList()
|
||||
UpdateMachineLogList(True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -159,7 +163,7 @@ Public Class MachineLogPageVM
|
||||
Dim lEndDate As Long = m_dtEndDate.ToFileTimeUtc()
|
||||
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_ENDDATE, lEndDate.ToString())
|
||||
' aggiorno lista da Db
|
||||
UpdateMachineLogList()
|
||||
UpdateMachineLogList(True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -223,35 +227,6 @@ Public Class MachineLogPageVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Entity_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62520)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Event_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62521)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Date_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62522)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property From_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62523)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property To_Msg As String
|
||||
Get
|
||||
Return EgtMsg(62524)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
@@ -292,6 +267,9 @@ Public Class MachineLogPageVM
|
||||
m_dtEndDate = If(lEndDate > 0, DateTime.FromFileTimeUtc(lEndDate), DateTime.Today)
|
||||
m_Date_Visibility = Visibility.Visible
|
||||
End Select
|
||||
m_MachineLog_Timer.Interval = TimeSpan.FromMilliseconds(100)
|
||||
AddHandler m_MachineLog_Timer.Tick, AddressOf MachineLog_Timer_Tick
|
||||
m_MachineLog_Timer.Start()
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTORS
|
||||
@@ -334,21 +312,69 @@ Public Class MachineLogPageVM
|
||||
m_colMachineLog_Description.ColumnVisibility = Visibility.Collapsed
|
||||
m_colMachineLog_SupervisorId.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
UpdateMachineLogList()
|
||||
UpdateMachineLogList(True)
|
||||
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
|
||||
m_MachineLogList_View.Filter = AddressOf MachineLogFilter
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateMachineLogList()
|
||||
' indice di aggiornamento della lista rispetto a Db
|
||||
Private m_nUpdateIndex As Integer
|
||||
' indice di ricaricamento completo della lista dal Db
|
||||
Private m_nRefreshIndex As Integer
|
||||
' indice dell'ultimo update/refresh
|
||||
Private m_nLastLogUpdate As Integer
|
||||
|
||||
Friend Sub UpdateMachineLogList(bRefresh As Boolean)
|
||||
Dim nMaxIndex As Integer = Math.Max(m_nUpdateIndex, m_nRefreshIndex)
|
||||
If bRefresh Then
|
||||
m_nRefreshIndex = nMaxIndex + 1
|
||||
Else
|
||||
m_nUpdateIndex = nMaxIndex + 1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub MachineLog_Timer_Tick(sender As Object, e As EventArgs)
|
||||
SyncLock m_Lock_LogList
|
||||
Dim nRefresh As Integer = m_nRefreshIndex
|
||||
Dim nUpdate As Integer = m_nUpdateIndex
|
||||
If nRefresh > m_nLastLogUpdate Then
|
||||
m_nLastLogUpdate = nRefresh
|
||||
UpdateFromDb(True)
|
||||
ElseIf nUpdate > m_nLastLogUpdate Then
|
||||
m_nLastLogUpdate = nUpdate
|
||||
UpdateFromDb(False)
|
||||
End If
|
||||
End SyncLock
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateFromDb(bRefresh As Boolean)
|
||||
'm_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Now - TimeSpan.FromDays(300), DateTime.Now).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
|
||||
Dim DbList As List(Of LogEvent)
|
||||
Select Case m_SelDayType
|
||||
Case DayTypes.TODAY
|
||||
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today, DateTime.Today + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
|
||||
Case DayTypes.YESTERDAY
|
||||
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today - TimeSpan.FromDays(1), DateTime.Today).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
|
||||
Case DayTypes.PERIOD
|
||||
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(m_dtStartDate, m_dtEndDate + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
|
||||
DbList = DbControllers.m_LogMachineController.GetCoreDesc(m_dtStartDate, m_dtEndDate + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
|
||||
Case DayTypes.YESTERDAY
|
||||
DbList = DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today - TimeSpan.FromDays(1), DateTime.Today).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
|
||||
Case Else ' DayTypes.TODAY
|
||||
DbList = DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today, DateTime.Today + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
|
||||
End Select
|
||||
If bRefresh OrElse m_MachineLogList.Count < 1 Then
|
||||
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbList)
|
||||
Else
|
||||
' cerco in lista Db ultimo elemento della mia lista
|
||||
Dim LastItem As LogEvent = m_MachineLogList(0)
|
||||
Dim CommonItem As LogEvent = DbList.FirstOrDefault(Function(x) x.EventDateTime = LastItem.EventDateTime AndAlso x.EventType = LastItem.EventType AndAlso x.SupervisorId = LastItem.SupervisorId AndAlso x.Value = LastItem.Value)
|
||||
Dim nCommonItemIndex As Integer
|
||||
If Not IsNothing(CommonItem) Then
|
||||
nCommonItemIndex = DbList.IndexOf(CommonItem)
|
||||
End If
|
||||
' aggiorno i successivi
|
||||
If nCommonItemIndex >= 0 Then
|
||||
For Index = nCommonItemIndex - 1 To 0 Step -1
|
||||
m_MachineLogList.Insert(0, DbList(Index))
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(MachineLogList))
|
||||
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
|
||||
m_MachineLogList_View.Filter = AddressOf MachineLogFilter
|
||||
@@ -376,7 +402,7 @@ Public Class MachineLogPageVM
|
||||
''' Execute the Open. This method is invoked by the OpenCommand.
|
||||
''' </summary>
|
||||
Friend Sub Refresh()
|
||||
UpdateMachineLogList()
|
||||
UpdateMachineLogList(False)
|
||||
End Sub
|
||||
|
||||
#End Region ' Refresh
|
||||
|
||||
@@ -277,31 +277,31 @@ Public Class MainMenuVM
|
||||
|
||||
Private Function InitINPUTS() As Boolean
|
||||
' fermo e riavvio lettura variabili per includere quelle della pagina input
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function ExitINPUTS() As Boolean
|
||||
' fermo e riavvio lettura variabili per includere quelle della pagina input
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function InitOUTPUTS() As Boolean
|
||||
' fermo e riavvio lettura variabili per includere quelle della pagina input
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function ExitOUTPUTS() As Boolean
|
||||
' fermo e riavvio lettura variabili per includere quelle della pagina input
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
@@ -248,8 +248,8 @@ Public Class MainWindowM
|
||||
EgtSetLockId( sLockId)
|
||||
End If
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2506, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2506, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2505, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2505, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -234,7 +234,7 @@ Public Class MainWindowVM
|
||||
Return
|
||||
End If
|
||||
' disconnetto comunicazione con macchina
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
|
||||
' termino thread di comunicazione con Db ed altri programmi
|
||||
ViewerOptimizerCommThread.StopThread()
|
||||
' Verifico modifica parametri in Configurazione e chiedo il salvataggio
|
||||
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyVersion("2.5.5.4")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.4")>
|
||||
|
||||
@@ -12,12 +12,19 @@ Public Class OpenProjectFileDialogVM
|
||||
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
|
||||
m_ProjectType = ProjectType
|
||||
' carico colonne
|
||||
LoadColumns(m_ProjectType)
|
||||
NotifyPropertyChanged(NameOf(FilterTypeList))
|
||||
m_SelFilterType = m_FilterTypeList(0)
|
||||
LoadColumns(ProjectType)
|
||||
NotifyPropertyChanged(NameOf(SearchColumnList))
|
||||
m_SelSearchColumn = m_SearchColumnList(0)
|
||||
' carico lista progetti
|
||||
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
|
||||
RefreshProjectList(GoToProd)
|
||||
' leggo da db
|
||||
If ProjectType = ProjectType.PROD Then
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(50)
|
||||
For Each Project In DbProjectList
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
|
||||
NotifyPropertyChanged(NameOf(ProjectList))
|
||||
@@ -26,45 +33,6 @@ Public Class OpenProjectFileDialogVM
|
||||
m_ProjectList_View.Filter = AddressOf ProjectFilter
|
||||
End Function
|
||||
|
||||
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
|
||||
m_ProjectList.Clear()
|
||||
' calcolo periodo e righe
|
||||
Dim dtStart As DateTime
|
||||
Dim dtEnd As DateTime
|
||||
Dim nRowQuantity As Integer = 20
|
||||
Select Case SelRowQuantity
|
||||
Case RowQuantities.FIFTY
|
||||
nRowQuantity = 50
|
||||
Case RowQuantities.HUNDRED
|
||||
nRowQuantity = 100
|
||||
Case RowQuantities.HUNDREDANDFIFTY
|
||||
nRowQuantity = 150
|
||||
End Select
|
||||
Select Case m_SelDayType
|
||||
Case DayTypes.LASTMONTH
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31)
|
||||
Case DayTypes.LAST3MONTHS
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31 * 3)
|
||||
Case DayTypes.LAST6MONTHS
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31 * 6)
|
||||
Case DayTypes.PERIOD
|
||||
dtStart = dtStartDate + TimeSpan.FromDays(1)
|
||||
dtEnd = dtEndDate
|
||||
End Select
|
||||
' leggo da db
|
||||
If m_ProjectType = ProjectType.PROD Then
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
|
||||
For Each Project In DbProjectList
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Next
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -348,11 +348,6 @@
|
||||
<Setter Property="Margin" Value="5,0,5,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="Filter_TextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="2.5,0,2.5,0"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- TextBox -->
|
||||
@@ -738,14 +733,5 @@
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- DatePicker -->
|
||||
|
||||
<Style x:Key="Filter_DatePicker" TargetType="{x:Type DatePicker}">
|
||||
<Setter Property="Height" Value="22" />
|
||||
<Setter Property="Width" Value="100" />
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtBEAMWALL.Core
|
||||
|
||||
Public Class LogEvent
|
||||
@@ -78,9 +77,9 @@ Public Class LogEvent
|
||||
Get
|
||||
Select Case m_Status
|
||||
Case 1
|
||||
Return EgtMsg(62527)
|
||||
Return "Inizio"
|
||||
Case 2
|
||||
Return EgtMsg(62528)
|
||||
Return "Fine"
|
||||
Case Else
|
||||
Return ""
|
||||
End Select
|
||||
|
||||
@@ -64,7 +64,7 @@ Public Class Variable
|
||||
Return CommVar.sValue
|
||||
End Get
|
||||
Set(value As String)
|
||||
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value}))
|
||||
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value}))
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -120,17 +120,9 @@ Public Class BTLFeatureVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim nTemp As Integer = 0
|
||||
If Integer.TryParse(value, nTemp) Then
|
||||
If EgtSetInfo(nFeatureId, BTL_FTR_PRIORITY, nTemp) Then
|
||||
m_BTLFeatureM.nPriority = nTemp
|
||||
' setto feature da ricalcolare
|
||||
ResetCalcFeature()
|
||||
' se in View
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
||||
' imposto modificato per copie
|
||||
EgtDuploSetModified(m_BTLPartM.nPartId)
|
||||
End If
|
||||
End If
|
||||
If Integer.TryParse(value, nTemp) Then
|
||||
m_BTLFeatureM.nPriority = nTemp
|
||||
EgtSetInfo( nFeatureId, BTL_FTR_PRIORITY, m_BTLFeatureM.nPriority)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sPriority))
|
||||
End Set
|
||||
|
||||
@@ -2164,7 +2164,7 @@ Public Class BTLPartVM
|
||||
' imposto path disegno da mostrare in BottomPanel
|
||||
Dim SelPBTLParam As BTLParamVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.SelPBTLParam
|
||||
If Not IsNothing(SelPBTLParam) Then Map.refBottomPanelVM.SetCurrDraw(SelPBTLParam.sDrawPath)
|
||||
Case NameOf(sender.bDO), NameOf(sender.sPriority)
|
||||
Case NameOf(sender.bDO)
|
||||
NotifyPropertyChanged(NameOf(bDOALL))
|
||||
' setto pezzo da ricalcolare
|
||||
'ResetCalcTotalPart()
|
||||
|
||||
@@ -29,7 +29,7 @@ Public Class FeatureManagerVM
|
||||
|
||||
Public ReadOnly Property Priority_Visibility As Visibility
|
||||
Get
|
||||
Return If(CurrentMachine.nType = Core.ConstBeam.MachineType.WALL AndAlso CurrentMachine.bIsEnabledPriority, Visibility.Visible, Visibility.Collapsed)
|
||||
Return if(CurrentMachine.nType = Core.ConstBeam.MachineType.WALL, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ Public Class FeatureInPartInRawPartListVM
|
||||
|
||||
Friend Sub UpdateColumns(nMachType As MachineType)
|
||||
If Not IsNothing(m_colFeatureInPartInRawPart_Priority) Then
|
||||
m_colFeatureInPartInRawPart_Priority.Visible = (nMachType = MachineType.WALL AndAlso CurrentMachine.bIsEnabledPriority)
|
||||
m_colFeatureInPartInRawPart_Priority.Visible = (nMachType=MachineType.WALL)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -27,13 +27,6 @@ Public Class RawPartListVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_colRawPart_PosZ As EgtDataGridColumn
|
||||
Public ReadOnly Property colRawPart_PosZ As EgtDataGridColumn
|
||||
Get
|
||||
Return m_colRawPart_PosZ
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_RawPartColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
Public Property RawPartColumns As ObservableCollection(Of EgtDataGridColumn)
|
||||
Get
|
||||
@@ -127,7 +120,6 @@ Public Class RawPartListVM
|
||||
m_colRawPart_StartCut = RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_STARTCUT)
|
||||
m_colRawPart_W = RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_W)
|
||||
m_colRawPart_L = RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_L)
|
||||
m_colRawPart_PosZ = RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_POSZ)
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In RawPartColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
|
||||
@@ -235,8 +235,8 @@ Public Class MainWindowM
|
||||
EgtSetLockId( sLockId)
|
||||
End If
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2506, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2506, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2505, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2505, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.6.2")>
|
||||
<Assembly: AssemblyVersion("2.5.5.4")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.4")>
|
||||
|
||||
@@ -14,11 +14,57 @@ Public Class OpenProjectFileDialogVM
|
||||
m_ProjectType = ProjectType
|
||||
' carico colonne
|
||||
LoadColumns(ProjectType)
|
||||
NotifyPropertyChanged(NameOf(FilterTypeList))
|
||||
m_SelFilterType = m_FilterTypeList(0)
|
||||
NotifyPropertyChanged(NameOf(SearchColumnList))
|
||||
m_SelSearchColumn = m_SearchColumnList(0)
|
||||
' carico lista progetti
|
||||
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
|
||||
RefreshProjectList(GoToProd)
|
||||
' leggo da db
|
||||
If ProjectType = ProjectType.PROJ Then
|
||||
Dim DbProjectList As New List(Of ProjFileM)
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(5000)
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProjFileVM(Project))
|
||||
Else
|
||||
DbControllers.m_ProjController.DeleteProj(Project.nProjId)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000"))
|
||||
End If
|
||||
Next
|
||||
ElseIf ProjectType = ProjectType.PROD Then
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(5000)
|
||||
If GoToProd Then
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
|
||||
If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso
|
||||
Project.nType = Map.refProjManagerVM.CurrProj.nType Then
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Else
|
||||
DbControllers.m_ProdController.DeleteProd(Project.nProdId)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Else
|
||||
DbControllers.m_ProdController.DeleteProd(Project.nProdId)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
|
||||
NotifyPropertyChanged(NameOf(ProjectList))
|
||||
@@ -27,89 +73,6 @@ Public Class OpenProjectFileDialogVM
|
||||
m_ProjectList_View.Filter = AddressOf ProjectFilter
|
||||
End Function
|
||||
|
||||
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
|
||||
m_ProjectList.Clear()
|
||||
' calcolo periodo e righe
|
||||
Dim dtStart As DateTime
|
||||
Dim dtEnd As DateTime
|
||||
Dim nRowQuantity As Integer = 20
|
||||
Select Case SelRowQuantity
|
||||
Case RowQuantities.FIFTY
|
||||
nRowQuantity = 50
|
||||
Case RowQuantities.HUNDRED
|
||||
nRowQuantity = 100
|
||||
Case RowQuantities.HUNDREDANDFIFTY
|
||||
nRowQuantity = 150
|
||||
End Select
|
||||
Select Case m_SelDayType
|
||||
Case DayTypes.LASTMONTH
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31)
|
||||
Case DayTypes.LAST3MONTHS
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31 * 3)
|
||||
Case DayTypes.LAST6MONTHS
|
||||
dtEnd = DateTime.Today + TimeSpan.FromDays(1)
|
||||
dtStart = dtEnd - TimeSpan.FromDays(31 * 6)
|
||||
Case DayTypes.PERIOD
|
||||
dtStart = dtStartDate + TimeSpan.FromDays(1)
|
||||
dtEnd = dtEndDate
|
||||
End Select
|
||||
' leggo da db
|
||||
If m_ProjectType = ProjectType.PROJ Then
|
||||
Dim DbProjectList As New List(Of ProjFileM)
|
||||
' CheckMe: lasciato come prima, anche NON attivi (cancellazione logica)
|
||||
If m_SelBTLDateType = BTLDateTypes.CREATEDATE Then
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
|
||||
Else
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False)
|
||||
End If
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProjFileVM(Project))
|
||||
Else
|
||||
' CheckMe impostata come cancellazione FISICA dal DB...
|
||||
DbControllers.m_ProjController.DeleteProj(Project.nProjId, False)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Proj number " & Project.nProjId.ToString("0000"))
|
||||
End If
|
||||
Next
|
||||
ElseIf m_ProjectType = ProjectType.PROD Then
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
|
||||
If GoToProd Then
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
|
||||
If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso
|
||||
Project.nType = Map.refProjManagerVM.CurrProj.nType Then
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Else
|
||||
DbControllers.m_ProdController.DeleteProd(Project.nProdId)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
For Each Project In DbProjectList
|
||||
' recupero path per verificare esista
|
||||
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For
|
||||
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge"
|
||||
If File.Exists(sPath) Then
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Else
|
||||
DbControllers.m_ProdController.DeleteProd(Project.nProdId)
|
||||
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub Delete()
|
||||
If IsNothing(SelProject) Then Return
|
||||
' recupero indice per riselezionare
|
||||
@@ -128,8 +91,7 @@ Public Class OpenProjectFileDialogVM
|
||||
Map.refProjManagerVM.m_MruFiles.Remove(SelProject.sProjPath)
|
||||
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
||||
' cancello progetto
|
||||
' CheckMe impostata come cancellazione FISICA dal DB...
|
||||
DbControllers.m_ProjController.DeleteProj(SelProject.nProjId, False)
|
||||
DbControllers.m_ProjController.DeleteProj(SelProject.nProjId)
|
||||
' cancello cartella del Proj
|
||||
Try
|
||||
Directory.Delete(SelProject.sProjDirPath, True)
|
||||
@@ -139,7 +101,7 @@ Public Class OpenProjectFileDialogVM
|
||||
' aggiorno lista progetti
|
||||
m_ProjectList.Clear()
|
||||
Dim DbProjectList As New List(Of ProjFileM)
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(50, False)
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(50)
|
||||
For Each Project In DbProjectList
|
||||
m_ProjectList.Add(New ProjFileVM(Project))
|
||||
Next
|
||||
@@ -217,7 +179,7 @@ Public Class OpenProjectFileDialogVM
|
||||
' aggiorno lista progetti
|
||||
m_ProjectList.Clear()
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(50, False)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(50)
|
||||
For Each Project In DbProjectList
|
||||
m_ProjectList.Add(New ProdFileVM(Project))
|
||||
Next
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -267,9 +267,6 @@ Public Class ProjectVM
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_L) Then
|
||||
Map.refRawPartListVM.colRawPart_L.IsReadOnly = True
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_PosZ) Then
|
||||
Map.refRawPartListVM.colRawPart_PosZ.IsReadOnly = True
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_Offset) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Offset.IsReadOnly = True
|
||||
End If
|
||||
@@ -288,55 +285,58 @@ Public Class ProjectVM
|
||||
If Not IsNothing(Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Do) Then
|
||||
Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Do.IsReadOnly = True
|
||||
End If
|
||||
If Not IsNothing(Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Priority) Then
|
||||
Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Priority.IsReadOnly = True
|
||||
End If
|
||||
m_bLockUX = True
|
||||
' se calcolo finito
|
||||
Else
|
||||
ManageIsEnabled(True)
|
||||
' aggiungere gestione colonne editabili delle tabelle
|
||||
If Not IsNothing(Map.refPartListVM.colPart_Do) Then
|
||||
Map.refPartListVM.colPart_Do.ResetToOrigIsReadOnly()
|
||||
Map.refPartListVM.colPart_Do.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refFeatureListVM.colFeature_Do) Then
|
||||
Map.refFeatureListVM.colFeature_Do.ResetToOrigIsReadOnly()
|
||||
Map.refFeatureListVM.colFeature_Do.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPParameterListVM.colPParam_Value) Then
|
||||
Map.refPParameterListVM.colPParam_Value.ResetToOrigIsReadOnly()
|
||||
Map.refPParameterListVM.colPParam_Value.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refQParameterListVM.colQParam_Value) Then
|
||||
Map.refQParameterListVM.colQParam_Value.ResetToOrigIsReadOnly()
|
||||
Map.refQParameterListVM.colQParam_Value.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refQParameterListVM.colQParam_Custom) Then
|
||||
Map.refQParameterListVM.colQParam_Custom.ResetToOrigIsReadOnly()
|
||||
Map.refQParameterListVM.colQParam_Custom.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_StartCut) Then
|
||||
Map.refRawPartListVM.colRawPart_StartCut.ResetToOrigIsReadOnly()
|
||||
Map.refRawPartListVM.colRawPart_StartCut.IsReadOnly = False
|
||||
End If
|
||||
If m_BTLStructureVM.nPROJTYPE <> BWType.BEAM AndAlso Not IsNothing(Map.refRawPartListVM.colRawPart_W) Then
|
||||
Map.refRawPartListVM.colRawPart_W.ResetToOrigIsReadOnly()
|
||||
Map.refRawPartListVM.colRawPart_W.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_L) Then
|
||||
Map.refRawPartListVM.colRawPart_L.ResetToOrigIsReadOnly()
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_PosZ) Then
|
||||
Map.refRawPartListVM.colRawPart_PosZ.ResetToOrigIsReadOnly()
|
||||
Map.refRawPartListVM.colRawPart_L.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_Offset) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Offset.ResetToOrigIsReadOnly()
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Offset.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_Rot) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Rot.ResetToOrigIsReadOnly()
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Rot.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_Flip) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Flip.ResetToOrigIsReadOnly()
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_Flip.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_PosX) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_PosX.ResetToOrigIsReadOnly()
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_PosX.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refPartInRawPartListVM.colPartInRawPart_PosY) Then
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_PosY.ResetToOrigIsReadOnly()
|
||||
Map.refPartInRawPartListVM.colPartInRawPart_PosY.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Do) Then
|
||||
Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Do.ResetToOrigIsReadOnly()
|
||||
Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Do.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Priority) Then
|
||||
Map.refFeatureInPartInRawPartListVM.colFeatureInPartInRawPart_Priority.IsReadOnly = False
|
||||
End If
|
||||
' fermo il timer
|
||||
If Not m_bCalcRunning Then
|
||||
|
||||
@@ -15,11 +15,6 @@ Public Class ProjFileVM
|
||||
|
||||
Sub New(ProjectFileM As ProjFileM)
|
||||
MyBase.New(ProjectFileM)
|
||||
' verifico valore description
|
||||
If Not IsNothing(ProjectFileM) AndAlso String.IsNullOrWhiteSpace(ProjectFileM.sDescription) Then
|
||||
DbControllers.m_ProjController.UpdateDescription(ProjectFileM.nProjId, ProjectFileM.sBTLFileName)
|
||||
ProjectFileM.sDescription = ProjectFileM.sBTLFileName
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTORS
|
||||
@@ -142,11 +137,9 @@ Public Class ProjFileVM
|
||||
Directory.Delete(sProjectDirPath, True)
|
||||
End If
|
||||
Map.refProjManagerVM.m_MruFiles.Remove(CurrProject.sProjPath)
|
||||
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
||||
|
||||
' CheckMe impostata come cancellazione FISICA dal DB...
|
||||
DbControllers.m_ProjController.DeleteProj(CurrProject.nProjId, False)
|
||||
Map.refProjManagerVM.CurrProj = Nothing
|
||||
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
||||
DbControllers.m_ProjController.DeleteProj(CurrProject.nProjId)
|
||||
Map.refProjManagerVM.CurrProj = Nothing
|
||||
EgtResetModified()
|
||||
Return True
|
||||
End If
|
||||
|
||||
@@ -87,13 +87,6 @@ Public Module CurrentMachine
|
||||
Return m_dMinOffset
|
||||
End Get
|
||||
End Property
|
||||
' Attivazione Priority pareti
|
||||
Private m_bIsEnabledPriority As Boolean = 0
|
||||
Public ReadOnly Property bIsEnabledPriority As Boolean
|
||||
Get
|
||||
Return m_bIsEnabledPriority
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "Proprietà che leggono e scrivono i valori anche da o su file ini"
|
||||
|
||||
@@ -307,11 +300,6 @@ Public Module CurrentMachine
|
||||
End Select
|
||||
EgtLuaGetGlobNumVar("GWD.MIN_HEIGHT", m_dMinRawH)
|
||||
EgtLuaGetGlobNumVar("GWD.MAX_HEIGHT", m_dMaxRawH)
|
||||
If EgtLuaGetGlobNumVar("GWD.BTL_PRIORITY", nTemp) Then
|
||||
m_bIsEnabledPriority = nTemp > 0
|
||||
Else
|
||||
m_bIsEnabledPriority = False
|
||||
End If
|
||||
Else
|
||||
m_nViewDir = VT.ISO_SW
|
||||
m_OrigCorner = MCH_CR.BR
|
||||
@@ -320,7 +308,6 @@ Public Module CurrentMachine
|
||||
m_NestingCorner = MCH_CR.BR
|
||||
m_dMinRawH = 5
|
||||
m_dMaxRawH = 500
|
||||
m_bIsEnabledPriority = False
|
||||
End If
|
||||
' Cancello tavola globale
|
||||
EgtLuaResetGlobVar("GWD")
|
||||
|
||||
@@ -346,11 +346,6 @@
|
||||
<Setter Property="Margin" Value="10,0,10,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="Filter_TextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="Margin" Value="2.5,0,2.5,0"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- TextBox -->
|
||||
@@ -807,13 +802,4 @@
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- DatePicker -->
|
||||
|
||||
<Style x:Key="Filter_DatePicker" TargetType="{x:Type DatePicker}">
|
||||
<Setter Property="Height" Value="22" />
|
||||
<Setter Property="Width" Value="100" />
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -78,8 +78,7 @@ END
|
||||
|
||||
vers | data | note
|
||||
---------|----------|---------
|
||||
2.5.X | 2023.06.08 | Aggiunta cancellazione logica + descrizione Proj editabile
|
||||
1.0.0 | 2021.04.12 | Riconciliazione su ramo TotalRebuild
|
||||
0.9.0 | 2021.04.03 | Upgrade versione con DataLayer EF 6.4.4
|
||||
0.8.0 | 2021.03.06 | Versione con StressTest WinForm x DataLayer EF 6.0
|
||||
0.7.0 | 2021.03.05 | Prima versione con DataLayer EF 6.0
|
||||
?? | 2021.04.12 | Riconciliazione su ramo TotalRebuild
|
||||
?? | 2021.04.03 | Upgrade versione con DataLayer EF 6.4.4
|
||||
?? | 2021.03.06 | Versione con StressTest WinForm x DataLayer EF 6.0
|
||||
?? | 2021.03.05 | Prima versione con DataLayer EF 6.0
|
||||
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user