Compare commits

..

23 Commits

Author SHA1 Message Date
Emmanuele Sassi 9eb30b0697 - Ulteriori modifiche a paginazione e filtri nuova finestra apri 2023-10-16 18:20:53 +02:00
Emmanuele Sassi 0c73db4f52 Merge branch 'feature/NewOpenWindow' into feature/NewOpenWindowNotWorking 2023-10-09 11:18:19 +02:00
Emmanuele Sassi 23b2606cbc - aggiunta Action a ProdItem per gestire update Nome su DB
- rimosso ProdItem da  ViewerOptimizer
2023-10-09 11:14:02 +02:00
Emmanuele Sassi 1f36c9a5b0 test modifiche non OK 2023-10-02 15:31:52 +02:00
Emmanuele Sassi ce20fa0eb3 Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewOpenWindow 2023-10-02 09:49:39 +02:00
Samuele Locatelli c32715a4b5 fix ricerca contains 2023-10-02 09:43:46 +02:00
Emmanuele Sassi 52c0b6b194 Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewOpenWindow 2023-10-02 09:04:13 +02:00
Samuele Locatelli a83752e565 Aggiunta ulteriore metodo con filtro completo x
- BtlName
- ListName
- Machine
- tipo data
2023-09-30 10:36:50 +02:00
Emmanuele Sassi 60e72aaf22 Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewOpenWindow 2023-09-29 17:55:16 +02:00
Samuele Locatelli ec2ce96b3b Aggiunta in coda dei proj "orfani" 2023-09-29 17:48:11 +02:00
Samuele Locatelli d131e0b42d Merge remote-tracking branch 'origin/feature/NewOpenWindow' into DataLayer 2023-09-29 17:38:40 +02:00
Emmanuele Sassi efea14db89 - aggiunto metodo per creare ProItem con solo ProjFileM 2023-09-29 17:33:29 +02:00
Emmanuele Sassi c09d8a6b0f Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewOpenWindow 2023-09-29 17:15:09 +02:00
Samuele Locatelli 946ad1d29c Modifica output: Prod --> prodItem list 2023-09-29 17:13:53 +02:00
Emmanuele Sassi c5f1d1669f Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewOpenWindow 2023-09-29 16:38:06 +02:00
Samuele Locatelli 689e81219b Modifica x gestione lettura proj insieme a prod (da testare) 2023-09-29 16:37:25 +02:00
Samuele Locatelli 05ec565f84 Merge remote-tracking branch 'origin/feature/NewOpenWindow' into DataLayer 2023-09-29 15:57:27 +02:00
Samuele Locatelli 0e7866922d Merge branch 'master' into DataLayer 2023-09-29 15:57:13 +02:00
Samuele Locatelli fb92f9faea typo 2023-09-29 15:56:26 +02:00
Emmanuele Sassi f65d07ab22 - aggiunta lista ProjFileM in ProdFileM 2023-09-29 15:53:47 +02:00
Emmanuele Sassi f140b6df54 - correzione funzionamento OpenProject su BTL aggiunti direttamente a Prod 2023-09-29 11:44:50 +02:00
Emmanuele Sassi 441ddc4397 Merge branch 'master' into feature/NewOpenWindow 2023-09-27 18:14:45 +02:00
Samuele Locatelli 8c42493382 Merge remote-tracking branch 'origin/HEAD' into DataLayer 2023-08-31 08:57:41 +02:00
49 changed files with 1039 additions and 797 deletions
+1 -1
View File
@@ -587,7 +587,7 @@ Public Class BTLPartM
Public ReadOnly Property nINPROD As Integer Public ReadOnly Property nINPROD As Integer
Get Get
Dim INPROD As Integer = 0 Dim INPROD As Integer = 0
EgtDuploInRawCount(m_nPartId, INPROD) EgtDuploCount(m_nPartId, INPROD)
Return INPROD Return INPROD
End Get End Get
End Property End Property
-2
View File
@@ -144,8 +144,6 @@
Public Const BTL_PRT_INVERTED As String = "INVERTED" Public Const BTL_PRT_INVERTED As String = "INVERTED"
Public Const BTL_PRT_MATERIAL As String = "MATERIAL" Public Const BTL_PRT_MATERIAL As String = "MATERIAL"
Public Const BTL_PRT_VOLUME As String = "VOLUME" Public Const BTL_PRT_VOLUME As String = "VOLUME"
Public Const BTL_PRT_ROT As String = "ROT"
Public Const BTL_PRT_FLIP As String = "FLIP"
' parametri pezzo ' parametri pezzo
Public Const BTL_PRT_SINGLEMEMBERNUM = "SINGLEMEMBERNUMBER" Public Const BTL_PRT_SINGLEMEMBERNUM = "SINGLEMEMBERNUMBER"
Public Const BTL_PRT_ASSEMBLYNUM = "ASSEMBLYNUMBER" Public Const BTL_PRT_ASSEMBLYNUM = "ASSEMBLYNUMBER"
@@ -23,5 +23,8 @@
Public Const COL_USAGE As String = "colUSAGE" Public Const COL_USAGE As String = "colUSAGE"
Public Const COL_WASTE As String = "colWASTE" Public Const COL_WASTE As String = "colWASTE"
Public Const COL_ARCHIVED As String = "colARCHIVED" Public Const COL_ARCHIVED As String = "colARCHIVED"
Public Const COL_PROJID As String = "colPROJID"
Public Const COL_PRODID As String = "colPRODID"
Public Const COL_CREATEDATE As String = "colCRTDATE"
End Module End Module
-3
View File
@@ -168,7 +168,4 @@ Public Module ConstIni
Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath" Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath"
Public Const K_REMINDERFREQUENCY As String = "ReminderFrequency" Public Const K_REMINDERFREQUENCY As String = "ReminderFrequency"
Public Const S_SPECIAL As String = "Special"
Public Const K_SPECIALENABLE As String = "SpecialEnable"
End Module End Module
+1
View File
@@ -116,6 +116,7 @@
<DependentUpon>NewOpenProjectFileDialogV.xaml</DependentUpon> <DependentUpon>NewOpenProjectFileDialogV.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogVM.vb" /> <Compile Include="NewOpenProjectFileDialog\NewOpenProjectFileDialogVM.vb" />
<Compile Include="ProjectFileVM\ProdItem.vb" />
<Compile Include="Utility\DimensionsIniFile.vb" /> <Compile Include="Utility\DimensionsIniFile.vb" />
<Compile Include="Utility\Enum.vb" /> <Compile Include="Utility\Enum.vb" />
<Compile Include="MachGroupPanel\MyMachGroupPanelVM.vb" /> <Compile Include="MachGroupPanel\MyMachGroupPanelVM.vb" />
-2
View File
@@ -482,8 +482,6 @@ Public Class PartM
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewPartM.m_sGROUP) EgtGetInfo(nPartId, BTL_PRT_GROUP, NewPartM.m_sGROUP)
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewPartM.m_sSTOREY) EgtGetInfo(nPartId, BTL_PRT_STOREY, NewPartM.m_sSTOREY)
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewPartM.m_sMATERIAL) EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewPartM.m_sMATERIAL)
EgtGetInfo(nPartId, BTL_PRT_ROT, NewPartM.m_dROT)
EgtGetInfo(nPartId, BTL_PRT_FLIP, NewPartM.m_nFLIP)
Dim nTemp As Integer = 0 Dim nTemp As Integer = 0
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, nTemp) Then If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, nTemp) Then
nTemp = 0 nTemp = 0
+2 -2
View File
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.12.2")> <Assembly: AssemblyVersion("2.5.8.1")>
<Assembly: AssemblyFileVersion("2.5.12.2")> <Assembly: AssemblyFileVersion("2.5.8.1")>
@@ -68,6 +68,7 @@
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ComboBox ItemsSource="{Binding FilterTypeList}" <ComboBox ItemsSource="{Binding FilterTypeList}"
SelectedItem="{Binding SelFilterType}" SelectedItem="{Binding SelFilterType}"
@@ -80,6 +81,17 @@
Visibility="{Binding SearchText_Visibility}"/> Visibility="{Binding SearchText_Visibility}"/>
<StackPanel Grid.Column="2" <StackPanel Grid.Column="2"
Orientation="Horizontal"> Orientation="Horizontal">
<TextBlock Text="Page index"
Style="{StaticResource OptionTextBlock}"/>
<Button Content="&lt;"
Command="{Binding PrevPage_Command}" />
<TextBlock Text="{Binding nPageIndex}"
Style="{StaticResource OptionTextBlock}"/>
<Button Content="&gt;"
Command="{Binding NextPage_Command}" />
</StackPanel>
<StackPanel Grid.Column="3"
Orientation="Horizontal">
<TextBlock Text="{Binding Rows_Msg}" <TextBlock Text="{Binding Rows_Msg}"
Style="{StaticResource OptionTextBlock}"/> Style="{StaticResource OptionTextBlock}"/>
<ComboBox ItemsSource="{Binding RowQuantityList}" <ComboBox ItemsSource="{Binding RowQuantityList}"
@@ -92,7 +104,7 @@
<EgtBEAMWALL:EgtDataGrid x:Name="MainDataGrid" <EgtBEAMWALL:EgtDataGrid x:Name="MainDataGrid"
Grid.Row="1" Grid.Row="1"
ItemsSource="{Binding ProjectList}" ItemsSource="{Binding PageList}"
SelectedItem="{Binding SelProject}" SelectedItem="{Binding SelProject}"
CanUserAddRows="False" CanUserAddRows="False"
AutoGenerateColumns="False" AutoGenerateColumns="False"
@@ -104,10 +116,12 @@
Margin="5" Margin="5"
RowDetailsVisibilityMode="Visible" RowDetailsVisibilityMode="Visible"
CellEditEnding="MainDataGrid_CellEditEnding" CellEditEnding="MainDataGrid_CellEditEnding"
BindingColumns="{Binding ProdColumns}"> BindingColumns="{Binding ProdColumns}"
Sorting="MainDataGrid_Sorting">
<DataGrid.Resources> <DataGrid.Resources>
<!-- ProdId --> <!-- ProdId -->
<DataGridTextColumn x:Key="colPRODID" Binding="{Binding sProdId}"> <DataGridTextColumn x:Key="colPRODID"
Binding="{Binding sProdId}">
<DataGridTextColumn.HeaderTemplate> <DataGridTextColumn.HeaderTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=DataContext.Id_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/> <TextBlock Text="{Binding Path=DataContext.Id_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
@@ -115,7 +129,8 @@
</DataGridTextColumn.HeaderTemplate> </DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn> </DataGridTextColumn>
<!--Name--> <!--Name-->
<DataGridTextColumn x:Key="colNAME" Binding="{Binding sName}"> <DataGridTextColumn x:Key="colNAME"
Binding="{Binding sName}">
<DataGridTextColumn.Header> <DataGridTextColumn.Header>
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@@ -134,19 +149,23 @@
</DataGridTextColumn.Header> </DataGridTextColumn.Header>
</DataGridTextColumn> </DataGridTextColumn>
<!-- Creation date --> <!-- Creation date -->
<DataGridTextColumn x:Key="colCRTDATE" Binding="{Binding dtCreateDate}"> <DataGridTextColumn x:Key="colCRTDATE"
Binding="{Binding dtCreateDate}">
<DataGridTextColumn.Header> <DataGridTextColumn.Header>
<TextBlock Text="{Binding Path=DataContext.CreateDate_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/> <TextBlock Text="{Binding Path=DataContext.CreateDate_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
</DataGridTextColumn.Header> </DataGridTextColumn.Header>
</DataGridTextColumn> </DataGridTextColumn>
<!-- Machine --> <!-- Machine -->
<DataGridTextColumn x:Key="colMACHINE" Binding="{Binding sMachine}"> <DataGridTextColumn x:Key="colMACHINE"
Binding="{Binding sMachine}"
CanUserSort="False">
<DataGridTextColumn.Header> <DataGridTextColumn.Header>
<TextBlock Text="{Binding Path=DataContext.Machine_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/> <TextBlock Text="{Binding Path=DataContext.Machine_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
</DataGridTextColumn.Header> </DataGridTextColumn.Header>
</DataGridTextColumn> </DataGridTextColumn>
<!-- Archived --> <!-- Archived -->
<DataGridTemplateColumn x:Key="colARCHIVED"> <DataGridTemplateColumn x:Key="colARCHIVED"
CanUserSort="False">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<Image Source="\Resources\OpenProjectFileDialog\Archived.png" <Image Source="\Resources\OpenProjectFileDialog\Archived.png"
@@ -83,4 +83,182 @@ Public Class NewOpenProjectFileDialogV
'm_OpenProjFileDialogVM.SetIsEditNameActive(False) 'm_OpenProjFileDialogVM.SetIsEditNameActive(False)
End Sub End Sub
End Class Private Sub MainDataGrid_Sorting(sender As Object, e As DataGridSortingEventArgs)
' aggiorno direziona colonna
Dim column As DataGridColumn = e.Column
column.SortDirection = If((column.SortDirection <> ListSortDirection.Ascending), ListSortDirection.Ascending, ListSortDirection.Descending)
'' ricalcolo colonne sort
'Dim datagrid As DataGrid = sender
'ProdItemComparer.RefreshColumns()
'' lancio sort custom
'm_OpenProjFileDialogVM.RefreshProdItemSort()
m_OpenProjFileDialogVM.SortPageList()
m_OpenProjFileDialogVM.UpdatePageList()
e.Handled = True
End Sub
End Class
Friend Class ProdItemComparer
Implements IComparer
Private Shared DataGrid As DataGrid
Friend Shared Sub SetDataGrid(value As DataGrid)
DataGrid = value
End Sub
Private Shared m_OpenProjFileDialogVM As NewOpenProjectFileDialogVM
Friend Shared Sub SetOpenProjFileDialogVM(value As NewOpenProjectFileDialogVM)
m_OpenProjFileDialogVM = value
End Sub
Private Shared m_ColumnList As New List(Of DataGridColumn)
Private Shared m_EgtColumnList As New List(Of EgtDataGridColumn)
Friend Shared Sub RefreshColumns()
m_ColumnList.Clear()
m_EgtColumnList.Clear()
For Each col In DataGrid.Columns
If Not IsNothing(col.SortDirection) Then
m_ColumnList.Add(col)
m_EgtColumnList.Add(m_OpenProjFileDialogVM.ProdColumns(col.DisplayIndex))
End If
Next
' Map.refRawPartListVM.SetRawPartListSorted(m_ColumnList.Count > 0)
End Sub
Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare
' Dim First As MyMachGroupVM = DirectCast(x, MyMachGroupVM)
' Dim Second As MyMachGroupVM = DirectCast(y, MyMachGroupVM)
' Dim bFirstProduced As Boolean = First.nProduction_State = Core.ItemState.WIP OrElse First.nProduction_State = Core.ItemState.Produced
' Dim bSecondProduced As Boolean = Second.nProduction_State = Core.ItemState.WIP OrElse Second.nProduction_State = Core.ItemState.Produced
' Dim bFirstInQueue As Boolean = First.bToBeProduced
' Dim bSecondInQueue As Boolean = Second.bToBeProduced
' ' verifico se gia' prodotti
' If bFirstProduced AndAlso bSecondProduced Then
' If First.nProductionIndex > Second.nProductionIndex Then
' Return 1
' ElseIf First.nProductionIndex < Second.nProductionIndex Then
' Return -1
' Else
' Return 0
' End If
' ElseIf bFirstProduced Then
' Return -1
' ElseIf bSecondProduced Then
' Return 1
' ElseIf bFirstInQueue AndAlso bSecondInQueue Then
' If First.nProductionIndex > Second.nProductionIndex Then
' Return 1
' ElseIf First.nProductionIndex < Second.nProductionIndex Then
' Return -1
' Else
' Return 0
' End If
' ElseIf bFirstInQueue Then
' Return -1
' ElseIf bSecondInQueue Then
' Return 1
' Else
' ' verifico ordine per colonne
' Dim ColumnIndex = 0
' While ColumnIndex <= m_EgtColumnList.Count - 1
' Dim nDir As ListSortDirection = If(m_ColumnList(ColumnIndex).SortDirection, 1, -1)
' Dim nCheck As Integer = Check(First, Second, nDir, m_EgtColumnList(ColumnIndex))
' If nCheck <> 0 Then
' Return nCheck
' End If
' ColumnIndex += 1
' End While
' ' se non trovo colonne, metto in ordine indice di produzione
' If First.nProductionIndex > Second.nProductionIndex Then
' Return 1
' ElseIf First.nProductionIndex < Second.nProductionIndex Then
' Return -1
' Else
' Return 0
' End If
' End If
End Function
Private Function Check(First As MyMachGroupVM, Second As MyMachGroupVM, nDirection As Integer, Column As EgtDataGridColumn) As Integer
Select Case Column.Name
Case COL_NAME
If First.nName > Second.nName Then
Return 1 * nDirection
ElseIf First.nName < Second.nName Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_STARTCUT
If First.Id > Second.Id Then
Return 1 * nDirection
ElseIf First.Id < Second.Id Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_W
If First.dW > Second.dW Then
Return 1 * nDirection
ElseIf First.dW < Second.dW Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_H
If First.dH > Second.dH Then
Return 1 * nDirection
ElseIf First.dH < Second.dH Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_L
If First.dL > Second.dL Then
Return 1 * nDirection
ElseIf First.dL < Second.dL Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_POSZ
'If First.posz > Second.dL Then
' Return 1 * nDirection
'ElseIf First.dL < Second.dL Then
' Return -1 * nDirection
'Else
' Return 0
'End If
Case COL_MATERIAL
If First.sMATERIAL > Second.sMATERIAL Then
Return 1 * nDirection
ElseIf First.sMATERIAL < Second.sMATERIAL Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_USAGE
If First.dUsage > Second.dUsage Then
Return 1 * nDirection
ElseIf First.dUsage < Second.dUsage Then
Return -1 * nDirection
Else
Return 0
End If
Case COL_WASTE
If First.dWaste > Second.dWaste Then
Return 1 * nDirection
ElseIf First.dWaste < Second.dWaste Then
Return -1 * nDirection
Else
Return 0
End If
End Select
End Function
End Class
@@ -19,7 +19,7 @@ Public MustInherit Class NewOpenProjectFileDialogVM
EXPORTDATE = 1 EXPORTDATE = 1
End Enum End Enum
Private Enum FilterTypes As Integer Protected Enum FilterTypes As Integer
NULL = 0 NULL = 0
ID = 1 ID = 1
BTLFILENAME = 2 BTLFILENAME = 2
@@ -36,9 +36,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Enum End Enum
Public Enum RowQuantities As Integer Public Enum RowQuantities As Integer
FIFTY = 0 TEN = 0
HUNDRED = 1 TWENTY = 1
HUNDREDANDFIFTY = 2 THIRTY = 2
End Enum End Enum
Friend Event m_CloseWindow(bDialogResult As Boolean) Friend Event m_CloseWindow(bDialogResult As Boolean)
@@ -67,6 +67,27 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get End Get
End Property End Property
Private m_colProjId_Name As EgtDataGridColumn
Public ReadOnly Property colProjId_Name As EgtDataGridColumn
Get
Return m_colProjId_Name
End Get
End Property
Private m_colProdId_Name As EgtDataGridColumn
Public ReadOnly Property colProdId_Name As EgtDataGridColumn
Get
Return m_colProdId_Name
End Get
End Property
Private m_colCreateDate_Name As EgtDataGridColumn
Public ReadOnly Property colCreateDate_Name As EgtDataGridColumn
Get
Return m_colCreateDate_Name
End Get
End Property
Protected m_ProjColumns As New ObservableCollection(Of EgtDataGridColumn) Protected m_ProjColumns As New ObservableCollection(Of EgtDataGridColumn)
Public Property ProjColumns As ObservableCollection(Of EgtDataGridColumn) Public Property ProjColumns As ObservableCollection(Of EgtDataGridColumn)
Get Get
@@ -106,7 +127,13 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get End Get
End Property End Property
Public m_ProjectList_View As CollectionView = Nothing Private m_ProjectList_View As CollectionView = Nothing
Public ReadOnly Property ProjectList_View As CollectionView
Get
Return m_ProjectList_View
End Get
End Property
Protected m_ProjectList As New ObservableCollection(Of ProdItem) Protected m_ProjectList As New ObservableCollection(Of ProdItem)
Public ReadOnly Property ProjectList As ObservableCollection(Of ProdItem) Public ReadOnly Property ProjectList As ObservableCollection(Of ProdItem)
Get Get
@@ -185,7 +212,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Integer) Set(value As Integer)
' aggiorno lista da Db ' aggiorno lista da Db
RefreshProjectList() RefreshProjectList()
m_ProjectList_View.Refresh() 'm_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -227,7 +255,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
NotifyPropertyChanged(NameOf(Date_Visibility)) NotifyPropertyChanged(NameOf(Date_Visibility))
' aggiorno lista da Db ' aggiorno lista da Db
RefreshProjectList() RefreshProjectList()
m_ProjectList_View.Refresh() ' m_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -242,7 +271,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_STARTDATE, lStartDate.ToString()) WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_STARTDATE, lStartDate.ToString())
' aggiorno lista da Db ' aggiorno lista da Db
RefreshProjectList() RefreshProjectList()
m_ProjectList_View.Refresh() ' m_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -257,7 +287,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_ENDDATE, lEndDate.ToString()) WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_ENDDATE, lEndDate.ToString())
' aggiorno lista da Db ' aggiorno lista da Db
RefreshProjectList() RefreshProjectList()
m_ProjectList_View.Refresh() ' m_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -275,7 +306,7 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get End Get
End Property End Property
Private m_SelRowQuantity As RowQuantities Protected m_SelRowQuantity As RowQuantities
Public Property SelRowQuantity As Integer Public Property SelRowQuantity As Integer
Get Get
Return m_SelRowQuantity Return m_SelRowQuantity
@@ -283,7 +314,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Integer) Set(value As Integer)
m_SelRowQuantity = value m_SelRowQuantity = value
RefreshProjectList() RefreshProjectList()
m_ProjectList_View.Refresh() ' m_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -308,7 +340,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
If Not IsNothing(SearchDate) Then SearchDate.Clear() 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) ' setto il Tipo Filtro a NULL e refresho la lista dei progetti (in modo da averli visibili tutti)
m_SelFilterType = m_FilterTypeList(0) m_SelFilterType = m_FilterTypeList(0)
m_ProjectList_View.Refresh() 'm_ProjectList_View.Refresh()
UpdatePageList()
' ora setto il valore scelto come Tipo Filtro ' ora setto il valore scelto come Tipo Filtro
m_SelFilterType = value m_SelFilterType = value
Select Case m_SelFilterType.Id Select Case m_SelFilterType.Id
@@ -332,7 +365,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Get End Get
Set(value As String) Set(value As String)
m_SearchText = value m_SearchText = value
m_ProjectList_View.Refresh() 'm_ProjectList_View.Refresh()
UpdatePageList()
End Set End Set
End Property End Property
@@ -390,9 +424,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Set(value As Boolean) Set(value As Boolean)
m_bViewArchived = value m_bViewArchived = value
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_VIEWARCHIVED, If(bViewArchived, 1, 0)) WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_VIEWARCHIVED, If(bViewArchived, 1, 0))
If Not IsNothing( m_colArchived_Name) Then If Not IsNothing(m_colArchived_Name) Then
m_colArchived_Name.Visible = value m_colArchived_Name.Visible = value
RefreshProjectList() RefreshProjectList()
End If End If
End Set End Set
End Property End Property
@@ -419,6 +453,30 @@ Public MustInherit Class NewOpenProjectFileDialogVM
NotifyPropertyChanged(NameOf(bDelete_IsEnabled)) NotifyPropertyChanged(NameOf(bDelete_IsEnabled))
End Sub End Sub
Private m_PageList_View As ListCollectionView = Nothing
Public ReadOnly Property PageList_View As ListCollectionView
Get
Return m_PageList_View
End Get
End Property
Protected m_PageList As New ObservableCollection(Of ProdItem)
Public Property PageList As ObservableCollection(Of ProdItem)
Get
Return m_PageList
End Get
Set(value As ObservableCollection(Of ProdItem))
m_PageList = value
End Set
End Property
Private m_nPageIndex As Integer = 1
Public ReadOnly Property nPageIndex As Integer
Get
Return m_nPageIndex
End Get
End Property
Protected m_ChangeOpenedProjectOnCancel As Boolean = False Protected m_ChangeOpenedProjectOnCancel As Boolean = False
#Region "Messages" #Region "Messages"
@@ -545,6 +603,8 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Private m_cmdDelete As ICommand Private m_cmdDelete As ICommand
Private m_cmdArchive As ICommand Private m_cmdArchive As ICommand
Private m_cmdCancel As ICommand Private m_cmdCancel As ICommand
Private m_cmdPrevPage As ICommand
Private m_cmdNextPage As ICommand
#End Region ' FIELDS & PROPERTIES #End Region ' FIELDS & PROPERTIES
@@ -555,6 +615,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
LoadColumns() LoadColumns()
m_colProdFile_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_NAME) m_colProdFile_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_NAME)
m_colArchived_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_ARCHIVED) m_colArchived_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_ARCHIVED)
m_colProjId_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_PROJID)
m_colProdId_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_PRODID)
m_colCreateDate_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_CREATEDATE)
' leggo valori per filtri ' leggo valori per filtri
m_SelDayType = GetMainPrivateProfileInt(S_OPENFILEDIALOG, K_DAYTYPE, 0) m_SelDayType = GetMainPrivateProfileInt(S_OPENFILEDIALOG, K_DAYTYPE, 0)
Select Case m_SelDayType Select Case m_SelDayType
@@ -589,6 +652,29 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False) Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False)
End Sub End Sub
Private m_ProdItemComparer As ProdItemComparer
Friend ReadOnly Property ProdItemComparer As ProdItemComparer
Get
Return m_ProdItemComparer
End Get
End Property
Friend Sub SetPageListView()
m_PageList_View = CollectionViewSource.GetDefaultView(m_PageList)
m_ProdItemComparer = New ProdItemComparer
m_PageList_View.CustomSort = m_ProdItemComparer
NotifyPropertyChanged(NameOf(PageList_View))
End Sub
Friend Sub RefreshProdItemSort()
m_PageList_View.CustomSort = m_ProdItemComparer
End Sub
Friend Sub SortPageList()
' m_ProjectList = New ObservableCollection(Of ProdItem)(m_ProjectList.OrderBy(Of Integer)(Function(x) If(String.IsNullOrWhiteSpace(x.sProdId), 0, CInt(x.sProdId))))
End Sub
Protected Sub LoadColumns() Protected Sub LoadColumns()
'If ProjectType = ProjectType.PROJ Then 'If ProjectType = ProjectType.PROJ Then
' carico le colonne della datagrid ' carico le colonne della datagrid
@@ -650,17 +736,69 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Return AllFilesInDir.Any(Function(x) Path.GetExtension(x).ToLower() = ".nge") Return AllFilesInDir.Any(Function(x) Path.GetExtension(x).ToLower() = ".nge")
End Function End Function
Protected Function ProjectFilter(Proj As Object) As Boolean 'Protected Function ProjectFilter(Proj As Object) As Boolean
Dim bProjectOk As Boolean = True ' Dim bProjectOk As Boolean = True
'If TypeOf Proj Is ProjFileVM Then ' 'If TypeOf Proj Is ProjFileVM Then
Dim CurrProj As ProdItem = DirectCast(Proj, ProdItem) ' Dim CurrProj As ProdItem = DirectCast(Proj, ProdItem)
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso ( ' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
(m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).dtExportDate.Date))) OrElse ' (m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).dtExportDate.Date))) OrElse
(m_SelFilterType.Id = BTLDateTypes.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False ' (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 ( ' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse ' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse ' (m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False ' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
' 'ElseIf TypeOf Proj Is ProdFileVM 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
' 'End If
' Return bProjectOk
'End Function
Public Overridable Function UpdatePageList() As Boolean
Dim FilteredList As IEnumerable(Of ProdItem) = m_ProjectList.Where(Function(x)
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso
((m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso x.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then Return False
Return True
End Function)
Dim nPageRowQty As Integer = 0
Select Case m_SelRowQuantity
Case RowQuantities.TEN
nPageRowQty = 10
Case RowQuantities.TWENTY
nPageRowQty = 20
Case RowQuantities.THIRTY
nPageRowQty = 30
End Select
Dim nStart = nPageIndex * nPageRowQty
If (nPageIndex - 1) * nPageRowQty + 1 > FilteredList.Count() Then
Return False
End If
' FilteredList = FilteredList.OrderBy(Of ProdItem)()
' m_PageList = New ObservableCollection(Of ProdItem)(FilteredList.Skip((nPageIndex - 1) * nPageRowQty + 1).Take(nPageIndex * nPageRowQty).Select(Function(x) x))
m_PageList.Clear()
For Index = (nPageIndex - 1) * nPageRowQty + 1 To nPageIndex * nPageRowQty
m_PageList.Add(FilteredList(Index))
Next
NotifyPropertyChanged(NameOf(PageList))
Return True
'Dim bProjectOk As Boolean = True
''If TypeOf Proj Is ProjFileVM Then
'Dim CurrProj As ProdItem = DirectCast(PROJ, ProdItem)
'If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
' (m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).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.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'ElseIf TypeOf Proj Is ProdFileVM Then 'ElseIf TypeOf Proj Is ProdFileVM Then
' Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM) ' Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM)
' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso ( ' If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
@@ -670,6 +808,15 @@ Public MustInherit Class NewOpenProjectFileDialogVM
' (m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.sBTLFileName.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 ' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'End If 'End If
' Return bProjectOk
End Function
Protected Function ProjectFilter(CurrProj As ProdItem) As Boolean
Dim bProjectOk As Boolean = True
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso (
(m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
Return bProjectOk Return bProjectOk
End Function End Function
@@ -775,98 +922,61 @@ Public MustInherit Class NewOpenProjectFileDialogVM
#End Region ' Cancel #End Region ' Cancel
#Region "PrevPage"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property PrevPage_Command As ICommand
Get
If m_cmdPrevPage Is Nothing Then
m_cmdPrevPage = New Command(AddressOf PrevPage)
End If
Return m_cmdPrevPage
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Overridable Sub PrevPage()
If m_nPageIndex > 1 Then
m_nPageIndex -= 1
End If
UpdatePageList()
NotifyPropertyChanged(NameOf(nPageIndex))
End Sub
#End Region ' PrevPage
#Region "NextPage"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property NextPage_Command As ICommand
Get
If m_cmdNextPage Is Nothing Then
m_cmdNextPage = New Command(AddressOf NextPage)
End If
Return m_cmdNextPage
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Overridable Sub NextPage()
m_nPageIndex += 1
If Not UpdatePageList() Then
m_nPageIndex -= 1
End If
NotifyPropertyChanged(NameOf(nPageIndex))
End Sub
#End Region ' NextPage
#End Region ' Commands #End Region ' Commands
End Class End Class
Public Class ProdItem
Inherits VMBase
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
Protected m_ProdFileVM As ProdFileVM
Public ReadOnly Property ProdFileVM As ProdFileVM
Get
Return m_ProdFileVM
End Get
End Property
Private m_ProjFileList As New List(Of ProjectFileVM)
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
Get
Return m_ProjFileList
End Get
End Property
Public ReadOnly Property sProdId As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
End Get
End Property
Public Overridable Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
m_ProdFileVM.sName = value
End If
End Set
End Property
Public ReadOnly Property dtCreateDate As Date
Get
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
End Get
End Property
Public ReadOnly Property sCreateDate As String
Get
Return dtCreateDate.ToString()
End Get
End Property
Public ReadOnly Property sMachine As String
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.sMachine
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).sMachine
Else Return ""
End If
End Get
End Property
Public ReadOnly Property bIsArchived As Boolean
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.bIsArchived
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).bIsArchived
Else
Return True
End If
End Get
End Property
Public ReadOnly Property Archived_Visibility As Visibility
Get
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
m_ProdFileVM = ProdFileVM
m_ProjFileList.Add(ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
m_ProdFileVM = ProdFileVM
m_ProjFileList = ProjFileVMList
End Sub
End Class
@@ -42,6 +42,8 @@ Public MustInherit Class OpenProjectFileDialogVM
Friend Event m_CloseWindow(bDialogResult As Boolean) Friend Event m_CloseWindow(bDialogResult As Boolean)
Protected m_GoToProd As Boolean = False
Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn) Protected m_ProjectColumns As New ObservableCollection(Of EgtDataGridColumn)
Public Property ProjectColumns As ObservableCollection(Of EgtDataGridColumn) Public Property ProjectColumns As ObservableCollection(Of EgtDataGridColumn)
Get Get
@@ -438,7 +440,7 @@ Public MustInherit Class OpenProjectFileDialogVM
#Region "METHODS" #Region "METHODS"
Public MustOverride Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? 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) Public Overridable Sub RefreshProjectList()
End Sub End Sub
Protected Sub LoadColumns(ProjectType As ProjectType) Protected Sub LoadColumns(ProjectType As ProjectType)
@@ -14,6 +14,13 @@ Public Class ProdFileM
m_nProjIdList = value m_nProjIdList = value
End Sub End Sub
Protected m_ProjMList As List(Of ProjFileM)
Public ReadOnly Property ProjMList As List(Of ProjFileM)
Get
Return m_ProjMList
End Get
End Property
Protected m_sName As String Protected m_sName As String
Public Property sName As String Public Property sName As String
Get Get
@@ -60,6 +67,24 @@ Public Class ProdFileM
Return NewProjectFileM Return NewProjectFileM
End Function End Function
Public Shared Function CreateProdFileM(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdFileM
Dim NewProjectFileM As New ProdFileM
NewProjectFileM.m_nProdId = nProdId
NewProjectFileM.m_nProjIdList = nProjIdList
NewProjectFileM.m_dtCreateDate = dtCreateProjDate
NewProjectFileM.m_sName = sName
NewProjectFileM.m_nType = nType
NewProjectFileM.m_sMachine = sMachine
NewProjectFileM.m_sLockedBy = sLockedBy
NewProjectFileM.m_dtLock = dtLock
NewProjectFileM.m_bIsActive = bIsActive
NewProjectFileM.m_bIsProduced = bIsProduced
NewProjectFileM.m_bIsArchived = bIsArchived
NewProjectFileM.m_ProjMList = ProjMList
Return NewProjectFileM
End Function
#End Region ' CONSTRUCTORS #End Region ' CONSTRUCTORS
End Class End Class
+119
View File
@@ -0,0 +1,119 @@
Imports EgtWPFLib5
Imports System.Windows
Public Class ProdItem
Inherits VMBase
Public Shared m_delUpdateNameInDb As Action(Of Integer, String)
Public Shared m_delIsModifiedSetUp As Action(Of Boolean)
Protected m_ProdFileVM As ProdFileVM
Public ReadOnly Property ProdFileVM As ProdFileVM
Get
Return m_ProdFileVM
End Get
End Property
Private m_ProjFileList As New List(Of ProjectFileVM)
Public ReadOnly Property ProjFileList As List(Of ProjectFileVM)
Get
Return m_ProjFileList
End Get
End Property
Public ReadOnly Property sProdId As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
End Get
End Property
Public Overridable Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
m_delUpdateNameInDb(m_ProdFileVM.nProdId, value)
m_ProdFileVM.sName = value
m_delIsModifiedSetUp(False)
End If
End Set
End Property
Public ReadOnly Property dtCreateDate As Date
Get
Return If(Not IsNothing(m_ProdFileVM), {m_ProdFileVM.dtCreateDate, m_ProjFileList.Min(Function(x) x.dtCreateDate)}.Min(), m_ProjFileList.Min(Function(x) x.dtCreateDate))
End Get
End Property
Public ReadOnly Property sCreateDate As String
Get
Return dtCreateDate.ToString()
End Get
End Property
Public ReadOnly Property sMachine As String
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.sMachine
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).sMachine
Else Return ""
End If
End Get
End Property
Public ReadOnly Property bIsArchived As Boolean
Get
If Not IsNothing(m_ProdFileVM) Then
Return m_ProdFileVM.bIsArchived
ElseIf Not IsNothing(m_ProjFileList(0)) Then
Return m_ProjFileList(0).bIsArchived
Else
Return True
End If
End Get
End Property
Public ReadOnly Property Archived_Visibility As Visibility
Get
Return If(bIsArchived, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
m_ProdFileVM = ProdFileVM
m_ProjFileList.Add(ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
m_ProjFileList = New List(Of ProjectFileVM)({ProjFileVM})
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
m_ProdFileVM = ProdFileVM
m_ProjFileList = ProjFileVMList
End Sub
Public Shared Function CreateProdItem(nProdId As Integer, nProjIdList As List(Of Integer), dtCreateProjDate As DateTime, sName As String, nType As BWType,
sMachine As String, sLockedBy As String, dtLock As DateTime, bIsActive As Boolean, bIsProduced As Boolean, bIsArchived As Boolean, ProjMList As List(Of ProjFileM)) As ProdItem
Dim NewProdFileM = ProdFileM.CreateProdFileM(nProdId, nProjIdList, dtCreateProjDate, sName, nType, sMachine, sLockedBy, dtLock, bIsActive, bIsProduced, bIsArchived)
Dim NewProdFileVM = New ProdFileVM(NewProdFileM)
Dim NewProjFileVM As IEnumerable(Of ProjectFileVM)
NewProjFileVM = ProjMList.Select(Of ProjFileVM)(Function(j) New ProjFileVM(j)).ToList
Dim NewProdItem = New ProdItem(NewProdFileVM, NewProjFileVM.ToList)
Return NewProdItem
End Function
Public Shared Function CreateProdItem(ProjFileM As ProjFileM) As ProdItem
Dim NewProdItem = New ProdItem(New ProjFileVM(ProjFileM))
Return NewProdItem
End Function
End Class
@@ -2,6 +2,7 @@
using NLog; using NLog;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.Entity;
using System.Linq; using System.Linq;
using static EgtBEAMWALL.Core.ConstBeam; using static EgtBEAMWALL.Core.ConstBeam;
@@ -208,11 +209,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary> /// <summary>
/// Elenco prod /// Elenco prod
/// </summary> /// </summary>
/// <param name="numRecord">Num max record da recuperare</param> /// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param> /// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param> /// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns> /// <returns></returns>
public List<Core.ProdFileM> GetLastDesc(int numRecord, bool OnlyActive, bool ShowArchived = false) public List<Core.ProdFileM> GetLastDesc(int NumRecord, bool OnlyActive, bool ShowArchived = false)
{ {
List<Core.ProdFileM> result = new List<Core.ProdFileM>(); List<Core.ProdFileM> result = new List<Core.ProdFileM>();
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord); //List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
@@ -220,9 +221,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{ {
// se numRecord = 0 --> passo tutti // se numRecord = 0 --> passo tutti
if (numRecord == 0) if (NumRecord == 0)
{ {
numRecord = localDbCtx.ProdList.Count(); NumRecord = localDbCtx.ProdList.Count();
} }
// retrieve // retrieve
dbResult = localDbCtx dbResult = localDbCtx
@@ -235,7 +236,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
(p, e) => p) (p, e) => p)
.Distinct() .Distinct()
.OrderByDescending(x => x.ProdId) .OrderByDescending(x => x.ProdId)
.Take(numRecord) .Take(NumRecord)
.ToList(); .ToList();
} }
@@ -247,13 +248,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary> /// <summary>
/// Elenco prod /// Elenco prod
/// </summary> /// </summary>
/// <param name="dtStart">Inizio periodo estrazione</param> /// <param name="DtStart">Inizio periodo estrazione</param>
/// <param name="dtEnd">Fine periodo estrazione</param> /// <param name="DtEnd">Fine periodo estrazione</param>
/// <param name="numRecord">Num max record da recuperare</param> /// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param> /// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param> /// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns> /// <returns></returns>
public List<Core.ProdFileM> GetLastDesc(DateTime dtStart, DateTime dtEnd, int numRecord, bool OnlyActive, bool ShowArchived = false) public List<Core.ProdFileM> GetLastDesc(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
{ {
List<Core.ProdFileM> result = new List<Core.ProdFileM>(); List<Core.ProdFileM> result = new List<Core.ProdFileM>();
//List<ProdModel> dbResult = GetLastDbModelDesc(numRecord); //List<ProdModel> dbResult = GetLastDbModelDesc(numRecord);
@@ -261,14 +262,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{ {
// se numRecord = 0 --> passo tutti // se numRecord = 0 --> passo tutti
if (numRecord == 0) if (NumRecord == 0)
{ {
numRecord = localDbCtx.ProdList.Count(); NumRecord = localDbCtx.ProdList.Count();
} }
// retrieve // retrieve
dbResult = localDbCtx dbResult = localDbCtx
.ProdList .ProdList
.Where(x => x.DtCreated >= dtStart && x.DtCreated <= dtEnd && (!x.IsArchived || ShowArchived)) .Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
// condizione join sui PROJ // condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive), .Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId, p => p.ProdDbId,
@@ -276,7 +277,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
(p, e) => p) (p, e) => p)
.Distinct() .Distinct()
.OrderByDescending(x => x.ProdId) .OrderByDescending(x => x.ProdId)
.Take(numRecord) .Take(NumRecord)
.ToList(); .ToList();
} }
@@ -285,6 +286,183 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return result; return result;
} }
/// <summary>
/// Elenco prod
/// </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="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
// elenco prod completi
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// recupero PROD + proj relativi
dbResultProd = localDbCtx
.ProdList
.Where(x => (!x.IsArchived || ShowArchived))
//.Include(j => j.)
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null)
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
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>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, int NumRecord, bool OnlyActive, bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
// elenco prod completi
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResultProd = localDbCtx
.ProdList
.Where(x => x.DtCreated >= DtStart && x.DtCreated <= DtEnd && (!x.IsArchived || ShowArchived))
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x => x.IsActive || !OnlyActive),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x => (x.IsActive || !OnlyActive) && x.Prod == null && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd))
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
return result;
}
/// <summary>
/// Elenco prod
/// </summary>
/// <param name="DtStart">Inizio periodo estrazione</param>
/// <param name="DtEnd">Fine periodo estrazione</param>
/// <param name="DtIsCreation">Ture: usa data creazione / False: usa data export</param>
/// <param name="NumRecord">Num max record da recuperare</param>
/// <param name="OnlyActive">Solo con ALMENO 1 PROJ attivo (senza cancellazione logica)</param>
/// <param name="Machine">Nome Macchina (default vuoto = non usato)</param>
/// <param name="BtlFileName">Nome file BTL (default vuoto = non usato)</param>
/// <param name="ListName">Nome List (default vuoto = non usato)</param>
/// <param name="ShowArchived">Se true: mostra anche archiviati (default li nasconde)</param>
/// <returns></returns>
public List<Core.ProdItem> GetLastDescFull(DateTime DtStart, DateTime DtEnd, bool DtIsCreation, int NumRecord, bool OnlyActive, string Machine = "", string BtlFileName = "", string ListName = "", bool ShowArchived = false)
{
List<Core.ProdItem> result = new List<Core.ProdItem>();
List<ProdModel> dbResultProd = new List<ProdModel>();
// elenco proj "orfani"
List<ProjModel> dbResultProj = new List<ProjModel>();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (NumRecord == 0)
{
NumRecord = localDbCtx.ProdList.Count();
}
// retrieve
dbResultProd = localDbCtx
.ProdList
.Where(x => (!x.IsArchived || ShowArchived))
// condizione join sui PROJ
.Join(localDbCtx.ProjList.Where(x =>
(x.IsActive || !OnlyActive)
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains( BtlFileName.ToLower()))
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd)))
),
p => p.ProdDbId,
e => e.ProdDbId,
(p, e) => p)
.Distinct()
.Include(j => j.ProjListNav)
.OrderByDescending(x => x.ProdId)
.Take(NumRecord)
.ToList();
// recupero i proj "orfani"
dbResultProj = localDbCtx
.ProjList
.Where(x =>
(x.IsActive || !OnlyActive)
&& x.Prod == null
&& (string.IsNullOrEmpty(Machine) || x.Machine.ToLower().Contains(Machine.ToLower()))
&& (string.IsNullOrEmpty(BtlFileName) || x.BTLFileName.ToLower().Contains(BtlFileName.ToLower()))
&& (string.IsNullOrEmpty(ListName) || x.ListName.ToLower().Contains(ListName.ToLower()))
&& ((DtIsCreation && (x.DtCreated >= DtStart && x.DtCreated <= DtEnd)) || (!DtIsCreation && (x.DtExported >= DtStart && x.DtExported <= DtEnd))))
.OrderByDescending(x => x.ProjId)
.Take(NumRecord)
.ToList();
}
// conversione
result = dbResultProd.Select(x => coreItemConv(x)).ToList();
var resProj = dbResultProj.Select(x => coreItemConv(x)).ToList();
// sommo i risultati
result.AddRange(resProj);
return result;
}
/// <summary> /// <summary>
/// Fornisce nuovo indice VUOTO da usare (allocando sul DB) /// Fornisce nuovo indice VUOTO da usare (allocando sul DB)
/// </summary> /// </summary>
@@ -910,6 +1088,29 @@ namespace EgtBEAMWALL.DataLayer.Controllers
protected Core.ProdFileM coreConv(ProdModel currProd) protected Core.ProdFileM coreConv(ProdModel currProd)
{ {
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived); Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived);
//Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList());
return answ;
}
/// <summary>
/// Helper conversione modelli verso prodItem
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdItem coreItemConv(ProdModel currProd)
{
Core.ProdItem answ = Core.ProdItem.CreateProdItem(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine, currProd.LockedBy, currProd.LockDate, currProd.IsActive, currProd.IsProduced, currProd.IsArchived, currProd.ProjListNav.Select(j => Core.ProjFileM.CreateProjFileM(j.ProjId, currProd.ProdId, j.DtCreated, j.DtExported, j.ListName, j.BTLFileName, j.ProjDescription, j.IsNew, j.Locked, j.PType, j.Machine, j.IsActive, j.IsActive)).ToList());
return answ;
}
/// <summary>
/// Helper conversione modelli verso prodItem da singolo proj
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdItem coreItemConv(ProjModel currProj)
{
Core.ProdItem answ = Core.ProdItem.CreateProdItem(Core.ProjFileM.CreateProjFileM(currProj.ProjId, 0, currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.ProjDescription, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine, currProj.IsActive, currProj.IsActive));
return answ; return answ;
} }
@@ -33,6 +33,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
var dbResult = localDbCtx var dbResult = localDbCtx
.ProjList .ProjList
.Where(x => x.BTLFileName == BTLFileName) .Where(x => x.BTLFileName == BTLFileName)
//valutare se usare solo attivi...
//.Where(x => x.BTLFileName == BTLFileName && x.IsActive == true)
.FirstOrDefault(); .FirstOrDefault();
//se avesse trovato-- > riporto id... //se avesse trovato-- > riporto id...
@@ -581,7 +583,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Update record su DB x elenco BTLParts /// Update record su DB x elenco BTLParts
/// </summary> /// </summary>
/// <param name="ProjId"></param> /// <param name="ProjId"></param>
/// <param name="newBTLFileName"></param> /// <param name="BtlPartList"></param>
/// <returns></returns> /// <returns></returns>
public ProjModel UpdateBtlParts(int ProjId, List<Core.BTLPartM> BtlPartList) public ProjModel UpdateBtlParts(int ProjId, List<Core.BTLPartM> BtlPartList)
{ {
@@ -19,6 +19,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
{ {
#region Public Properties #region Public Properties
public ProdModel()
{
ProjListNav = new HashSet<ProjModel>();
}
/// <summary> /// <summary>
/// Chiave univoca DB /// Chiave univoca DB
/// </summary> /// </summary>
@@ -98,6 +103,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
[Column("IsArchived")] [Column("IsArchived")]
public bool IsArchived { get; set; } = false; public bool IsArchived { get; set; } = false;
/// <summary>
/// Collezione oggetti Proj associati (almeno 1 by design)
/// </summary>
public virtual ICollection<ProjModel> ProjListNav { get; set; }
#endregion Public Properties #endregion Public Properties
} }
} }
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.5.12.2")] [assembly: AssemblyVersion("2.5.8.1")]
[assembly: AssemblyFileVersion("2.5.12.2")] [assembly: AssemblyFileVersion("2.5.8.1")]
@@ -219,7 +219,6 @@ Friend Class MyComparer
Return 0 Return 0
End If End If
End Select End Select
Return 0
End Function End Function
End Class End Class
@@ -437,10 +437,6 @@ Public Class LeftPanelVM
New OPState("Reset", OPStates.End), New OPState("Reset", OPStates.End),
New OPState("Unspecified", OPStates.Unspecified) New OPState("Unspecified", OPStates.Unspecified)
} }
Case Else
m_OPStateList = New List(Of OPState) From {
New OPState("Unspecified", OPStates.Unspecified)
}
End Select End Select
' seleziono in partenza unspecified ' seleziono in partenza unspecified
Dim UnspecifiedState As OPState = m_OPStateList.FirstOrDefault(Function(x) x.Id = OPStates.Unspecified) Dim UnspecifiedState As OPState = m_OPStateList.FirstOrDefault(Function(x) x.Id = OPStates.Unspecified)
@@ -317,7 +317,6 @@ Public Class MyMachGroupVM
' segno pezzo da produrre ' segno pezzo da produrre
MachGroup.m_bToBeProduced = True MachGroup.m_bToBeProduced = True
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.Production_Background)) MachGroup.NotifyPropertyChanged(NameOf(MachGroup.Production_Background))
Map.refSupervisorMachGroupPanelVM.MachGroupVMList_View.Refresh()
' sposto MachGroup in lista come ultimo dei pronti da produrre ' sposto MachGroup in lista come ultimo dei pronti da produrre
Dim OldIndex As Integer = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.IndexOf(MachGroup) Dim OldIndex As Integer = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.IndexOf(MachGroup)
@@ -46,6 +46,7 @@ Public Class SupervisorMachGroupPanelVM
#End Region ' FIELDS & PROPERTIES #End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR" #Region "CONSTRUCTOR"
Private m_MachGroupVMListComparer As MyComparer Private m_MachGroupVMListComparer As MyComparer
Friend ReadOnly Property MachGroupVMListComparer As MyComparer Friend ReadOnly Property MachGroupVMListComparer As MyComparer
Get Get
@@ -248,8 +248,8 @@ Public Class MainWindowM
EgtSetLockId( sLockId) EgtSetLockId( sLockId)
End If End If
' Recupero livello e opzioni della chiave ' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2512, 1, m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(5327, 2508, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2512, 1, m_nKeyOptions) EgtGetKeyOptions(5327, 2508, 1, m_nKeyOptions)
' Inizializzazione generale di EgtInterface ' Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0) m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString()) m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.12.2")> <Assembly: AssemblyVersion("2.5.8.1")>
<Assembly: AssemblyFileVersion("2.5.12.2")> <Assembly: AssemblyFileVersion("2.5.8.1")>
@@ -11,13 +11,14 @@ Public Class OpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType m_ProjectType = ProjectType
m_GoToProd = GoToProd
' carico colonne ' carico colonne
LoadColumns(m_ProjectType) LoadColumns(m_ProjectType)
NotifyPropertyChanged(NameOf(FilterTypeList)) NotifyPropertyChanged(NameOf(FilterTypeList))
m_SelFilterType = m_FilterTypeList(0) m_SelFilterType = m_FilterTypeList(0)
' carico lista progetti ' carico lista progetti
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
RefreshProjectList(GoToProd) RefreshProjectList()
Else Else
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList) m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
NotifyPropertyChanged(NameOf(ProjectList)) NotifyPropertyChanged(NameOf(ProjectList))
@@ -26,7 +27,7 @@ Public Class OpenProjectFileDialogVM
m_ProjectList_View.Filter = AddressOf ProjectFilter m_ProjectList_View.Filter = AddressOf ProjectFilter
End Function End Function
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False) Public Overrides Sub RefreshProjectList()
m_ProjectList.Clear() m_ProjectList.Clear()
' calcolo periodo e righe ' calcolo periodo e righe
Dim dtStart As DateTime Dim dtStart As DateTime
@@ -95,7 +95,9 @@ Public Class SupervisorManagerVM
#End Region ' ToolTip #End Region ' ToolTip
#End Region ' Fields & Properties #End Region ' Fields & Properties
#Region "CONSTRUCTOR" #Region "CONSTRUCTOR"
Sub New() Sub New()
@@ -93,14 +93,10 @@ Public Class BTLPartVM
Dim LSTValues() As String = sSwapItem.Split(","c) Dim LSTValues() As String = sSwapItem.Split(","c)
If Not IsNothing(LSTValues(LSTValues.Count - 1)) AndAlso Integer.TryParse(LSTValues(LSTValues.Count - 1), nSwapItem) AndAlso nSwapItem > 0 Then If Not IsNothing(LSTValues(LSTValues.Count - 1)) AndAlso Integer.TryParse(LSTValues(LSTValues.Count - 1), nSwapItem) AndAlso nSwapItem > 0 Then
Dim nMachgroupId As Integer = EgtGetParent(EgtGetParent(EgtGetParent(nSwapItem))) Dim nMachgroupId As Integer = EgtGetParent(EgtGetParent(EgtGetParent(nSwapItem)))
If nMachgroupId = GDB_ID.NULL Then Dim MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refProjManagerVM.CurrProj.nProdId, nMachgroupId)
EgtOutLog("Trovato Duplo Ghost") If MachGroupModel.State > ItemState.ND Then
Else bDuploInProduction = True
Dim MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refProjManagerVM.CurrProj.nProdId, nMachgroupId) Exit For
If MachGroupModel.State > ItemState.ND Then
bDuploInProduction = True
Exit For
End If
End If End If
End If End If
Next Next
@@ -398,8 +398,7 @@ Public Class BTLStructureVM
End If End If
End If End If
If Not IsNothing(SelBTLPart) Then SelBTLParts.AddToList(SelBTLPart) SelBTLParts.AddToList(SelBTLPart)
If bByOptim Then If bByOptim Then
m_bOnlySelectItem = False m_bOnlySelectItem = False
End If End If
@@ -47,7 +47,6 @@
Visibility="{Binding ChooseMachineBtn_Visibility}"> Visibility="{Binding ChooseMachineBtn_Visibility}">
<Image Source="/Resources/CALCPanel/ChooseMachine.png" Stretch="Uniform"/> <Image Source="/Resources/CALCPanel/ChooseMachine.png" Stretch="Uniform"/>
</Button> </Button>
<Grid Margin="0,0,5,0" Visibility="{Binding ChooseMachine_Visibility}"> <Grid Margin="0,0,5,0" Visibility="{Binding ChooseMachine_Visibility}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
@@ -338,10 +338,6 @@
<DependentUpon>SetUpV.xaml</DependentUpon> <DependentUpon>SetUpV.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="SetUp\SetUpVM.vb" /> <Compile Include="SetUp\SetUpVM.vb" />
<Compile Include="SpecialPanel\SpecialPanelV.xaml.vb">
<DependentUpon>SpecialPanelV.xaml</DependentUpon>
</Compile>
<Compile Include="SpecialPanel\SpecialPanelVM.vb" />
<Compile Include="StatisticsTimePanel\StatisticsTimePanelV.xaml.vb"> <Compile Include="StatisticsTimePanel\StatisticsTimePanelV.xaml.vb">
<DependentUpon>StatisticsTimePanelV.xaml</DependentUpon> <DependentUpon>StatisticsTimePanelV.xaml</DependentUpon>
</Compile> </Compile>
@@ -548,10 +544,6 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="SpecialPanel\SpecialPanelV.xaml">
<SubType>Designer</SubType>
<Generator>XamlIntelliSenseFileGenerator</Generator>
</Page>
<Page Include="StatisticsTimePanel\StatisticsTimePanelV.xaml"> <Page Include="StatisticsTimePanel\StatisticsTimePanelV.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -794,12 +794,6 @@ Public Class LeftPanelVM
EgtSetMode(nDuploId, GDB_MD.STD) EgtSetMode(nDuploId, GDB_MD.STD)
nPartDuploIdList.Add(nDuploId) nPartDuploIdList.Add(nDuploId)
Next Next
'' salvo lista info
Dim saveInfoBeamList As MyMachGroupVM = BeamMachGroup
'Dim saveInfoBeamList As New List(Of PartVM)
'For Each info As PartVM In BeamMachGroup.PartVMList
' saveInfoBeamList.Add(info)
'Next
' calcolo posizione nuovo pezzo per rispettare ordine lunghezze ' calcolo posizione nuovo pezzo per rispettare ordine lunghezze
Dim nInsertIndex As Integer Dim nInsertIndex As Integer
' scrivo dati di tutti i pezzi ' scrivo dati di tutti i pezzi
@@ -858,38 +852,7 @@ Public Class LeftPanelVM
End While End While
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt" Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallito inserimento grezzo nella barra in AddPartToBeam") Return False
' elimino duplo
For Each nDuploId In nPartDuploIdList
EgtErase(nDuploId)
EgtRemoveRawPart(nDuploId)
Next
' rimuovo info duplo e aggiorno info grezzo
nPartIndex = 0
For nIndex = 0 To BeamMachGroup.PartVMList.Count - 1
If nPartIndex < nPartDuploIdList.Count() AndAlso BeamMachGroup.PartVMList(nIndex).dL > PartsToAdd(0).dL Then
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1)
nPartIndex += 1
ElseIf nPartIndex < nPartDuploIdList.Count() AndAlso BeamMachGroup.PartVMList(nIndex).dL < PartsToAdd(0).dL Then
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1)
nPartIndex += 1
End If
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1)
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1, BeamMachGroup.PartVMList(nIndex).nPartId & "," & DoubleToString(BeamMachGroup.PartVMList(nIndex).dPOSX, 3))
Next
' elimino vecchio grezzo ed eseguo script creazione nuovo
nRawId = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
EgtRemoveRawPart(nRawId)
nRawId = EgtGetFirstRawPart()
End While
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
End If
End If End If
For nDuploIndex = 0 To PartsToAdd.Count - 1 For nDuploIndex = 0 To PartsToAdd.Count - 1
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, PartsToAdd(nDuploIndex).nROTATED) EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, PartsToAdd(nDuploIndex).nROTATED)
@@ -898,11 +861,7 @@ Public Class LeftPanelVM
' aggiorno lista pezzi ' aggiorno lista pezzi
BeamMachGroup.MyMachGroupM.RefreshPartList() BeamMachGroup.MyMachGroupM.RefreshPartList()
' seleziono pezzo aggiunto ' seleziono pezzo aggiunto
If BeamMachGroup.PartVMList.Count > nInsertIndex Then If BeamMachGroup.PartVMList.Count > nInsertIndex Then BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex)
BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex)
Else
BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex - 1)
End If
Return True Return True
End Function End Function
@@ -172,17 +172,13 @@ Public Class MyMachGroupPanelVM
' elimino pezzo copia ' elimino pezzo copia
EgtRemovePartFromRawPart(nDuploId) EgtRemovePartFromRawPart(nDuploId)
EgtErase(nDuploId) EgtErase(nDuploId)
' recupero gruppo di lavorazione e trave dell'interfaccia '' recupero gruppo di lavorazione e trave dell'interfaccia
Dim BeamMachGroup As MyMachGroupVM = MachGroupVMList.FirstOrDefault(Function(x) x.Id = nMachGroupId) Dim BeamMachGroup As MyMachGroupVM = MachGroupVMList.FirstOrDefault(Function(x) x.Id = nMachGroupId)
If Not IsNothing(BeamMachGroup) Then If Not IsNothing(BeamMachGroup) Then
Dim Beam As PartVM = BeamMachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nDuploId) Dim Beam As PartVM = BeamMachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nDuploId)
EgtSetCurrMachGroup(BeamMachGroup.Id) EgtSetCurrMachGroup(BeamMachGroup.Id)
Beam.DeletePart() Beam.DeletePart()
End If End If
' reset necessario per poter ottenere nMachGroupId corretto
EgtResetCurrMachGroup()
' aggiorno dati utilizzo barra
BeamMachGroup.UpdateUsage()
Next Next
' aggiorno quantita' in prod ' aggiorno quantita' in prod
Dim BTLPart As BTLPartVM = CALCPanelVM.GetBTLPartVMFromBTLPartId(nPartId) Dim BTLPart As BTLPartVM = CALCPanelVM.GetBTLPartVMFromBTLPartId(nPartId)
@@ -201,47 +201,19 @@ Public Class PartVM
' recupero box del layer box ' recupero box del layer box
Dim b3Box As New BBox3d Dim b3Box As New BBox3d
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box) EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
Dim vtAxes As Vector3d If EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB) Then
' se travi ruoto attorno all'asse Z
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
vtAxes = Vector3d.Z_AX
' se pareti ruoto attorno all'asse X
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
vtAxes = Vector3d.X_AX
End If
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
m_PartM.nFLIP = If(value, 180, 0) m_PartM.nFLIP = If(value, 180, 0)
EgtSetInfo(nPartId, MGR_PRT_FLIP, If(value, 180, 0)) EgtSetInfo(nPartId, MGR_PRT_FLIP, If(value, 180, 0))
Else Else
NotifyPropertyChanged(NameOf(bFLIP)) NotifyPropertyChanged(NameOf(bFLIP))
End If End If
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then ' recupero box del pezzo
' recupero box del pezzo Dim b3Part As New BBox3d
Dim b3Part As New BBox3d EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part) ' calcolo distanza tra i box
' calcolo distanza tra i box Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min ' reinserisco il pezzo nel grezzo
' reinserisco il pezzo nel grezzo EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
' elimino vecchio grezzo ed eseguo script creazione nuovo
DeleteOldRaw()
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita creazione barra nell'ExecBeam in bFlip")
' elimino vecchio grezzo ed eseguo script creazione nuovo
DeleteOldRaw()
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
m_PartM.nFLIP = 180
EgtSetInfo(nPartId, MGR_PRT_FLIP, 180)
Else
NotifyPropertyChanged(NameOf(m_PartM.nFLIP))
End If
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
End If
End If
End If
' lo riseleziono ' lo riseleziono
EgtSelectObj(nPartId) EgtSelectObj(nPartId)
' resetto validazione del pezzo ' resetto validazione del pezzo
@@ -317,140 +289,66 @@ Public Class PartVM
End Sub End Sub
Private Sub Rotate(IsPositive As Boolean) Private Sub Rotate(IsPositive As Boolean)
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then ' salvo posizione
' elimino vecchio grezzo ed eseguo script creazione nuovo Dim dTempPosX As Double = m_PartM.dPOSX
DeleteOldRaw() Dim dTempPosY As Double = m_PartM.dPOSY
' recupero layer del box ' tolgo il pezzo dal grezzo
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box") EgtRemovePartFromRawPart(nPartId)
' recupero box del layer box ' recupero layer del box
Dim b3Box As New BBox3d Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box) ' recupero box del layer box
' se invertito lo reinverto Dim b3Box As New BBox3d
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB) EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
' eseguo rotazione attorno asse X ' se invertito lo reinverto
Dim dRot As Integer = 0 Dim bFliped As Boolean = bFLIP
If dW <> dH Then If bFliped Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
dRot = If(IsPositive, 180, -180) Dim dAng As Double = If(IsPositive, 90, -90)
ElseIf dW = dH Then ' eseguo rotazione
dRot = If(IsPositive, 90, -90) Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, -Vector3d.Z_AX, dAng, GDB_RT.GLOB)
If bOk Then
Dim TempRot = m_PartM.dROT
TempRot += dAng
If TempRot >= 360 Then
TempRot -= 360
ElseIf TempRot < 0 Then
TempRot += 360
End If End If
Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, dRot, GDB_RT.GLOB) m_PartM.dROT = TempRot
If bOk Then EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
Dim TempRot = m_PartM.dROT End If
TempRot += dRot ' ripristino eventuale inversione
If TempRot >= 360 Then If bFliped Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
TempRot -= 360 ' recupero box del pezzo
ElseIf TempRot < 0 Then Dim b3Part As New BBox3d
TempRot += 360 EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
End If 'aggiorno box del box con rotazione
m_PartM.dROT = TempRot EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT) ' calcolo distanza tra i box
End If Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min ' Vector3d.NULL
' ripristino eventuale inversione ' calcolo posizione rispetto al riferimento
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB) Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt" Case BWType.WALL
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then ' se parete, valuto angolo di posizionamento
EgtOutLog("Fallita creazione barra nell'ExecBeam in Rotate") Select Case CurrentMachine.NestingCorner
' elimino vecchio grezzo ed eseguo script creazione nuovo Case MCH_CR.TL
DeleteOldRaw() 'vtDeltaBox = New Vector3d(b3Box.Min.x - b3Part.Min.x, b3Box.Max.y - b3Part.Max.y, 0)
' annullo Flip dTempPosY = dTempPosY - dW + dL
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB) Case MCH_CR.BL
' ripristino rotazione
Dim dRotation As Integer = 0
If dW <> dH Then
dRotation = m_PartM.dROT + dRot
m_PartM.dROT = dRotation
If dRotation >= 360 Then
dRotation = dRot
m_PartM.dROT = 0
End If
ElseIf dW = dH Then
dRotation = m_PartM.dROT - dRot
If dRotation = 0 Then
dRotation = 3 * dRot
m_PartM.dROT = 0
ElseIf dRotation = 90 Then
dRotation += 2 * dRot
m_PartM.dROT = 90
ElseIf dRotation = 180 Then
dRotation += dRot
m_PartM.dROT = 180
ElseIf dRotation < 0 Then
dRotation += 4 * dRot
m_PartM.dROT = 270
End If
End If
EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, dRotation, GDB_RT.GLOB)
' salvo informazione
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
' annullo Flip
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB)
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
End If
NotifyPropertyChanged(NameOf(m_PartM.dROT))
End If
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
' salvo posizione
Dim dTempPosX As Double = m_PartM.dPOSX
Dim dTempPosY As Double = m_PartM.dPOSY
' tolgo il pezzo dal grezzo
EgtRemovePartFromRawPart(nPartId)
' recupero layer del box
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
' recupero box del layer box
Dim b3Box As New BBox3d
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
' se invertito lo reinverto
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
Dim dAng As Double = If(IsPositive, 90, -90)
' eseguo rotazione
Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, -Vector3d.Z_AX, dAng, GDB_RT.GLOB)
If bOk Then
Dim TempRot = m_PartM.dROT
TempRot += dAng
If TempRot >= 360 Then
TempRot -= 360
ElseIf TempRot < 0 Then
TempRot += 360
End If
m_PartM.dROT = TempRot
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
End If
' ripristino eventuale inversione
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
' recupero box del pezzo
Dim b3Part As New BBox3d
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
'aggiorno box del box con rotazione
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
' calcolo distanza tra i box
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min ' Vector3d.NULL
' calcolo posizione rispetto al riferimento
Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
Case BWType.WALL
' se parete, valuto angolo di posizionamento
Select Case CurrentMachine.NestingCorner
Case MCH_CR.TL
'vtDeltaBox = New Vector3d(b3Box.Min.x - b3Part.Min.x, b3Box.Max.y - b3Part.Max.y, 0)
dTempPosY = dTempPosY - dW + dL
Case MCH_CR.BL
'vtDeltaBox = b3Box.Min - b3Part.Min 'vtDeltaBox = b3Box.Min - b3Part.Min
' non cambio posizioni ' non cambio posizioni
Case MCH_CR.TR Case MCH_CR.TR
'vtDeltaBox = b3Box.Max - b3Part.Max 'vtDeltaBox = b3Box.Max - b3Part.Max
dTempPosX = dTempPosX - dL + dW dTempPosX = dTempPosX - dL + dW
dTempPosY = dTempPosY - dW + dL dTempPosY = dTempPosY - dW + dL
Case MCH_CR.BR Case MCH_CR.BR
'vtDeltaBox = New Vector3d(b3Box.Max.x - b3Part.Max.x, b3Box.Min.y - b3Part.Min.y, 0) 'vtDeltaBox = New Vector3d(b3Box.Max.x - b3Part.Max.x, b3Box.Min.y - b3Part.Min.y, 0)
dTempPosX = dTempPosX - dL + dW dTempPosX = dTempPosX - dL + dW
End Select End Select
Case Else Case Else
' non cambio nulla ' non cambio nulla
End Select End Select
' reinserisco il pezzo nel grezzo ' reinserisco il pezzo nel grezzo
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId) EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
End If
' lo riseleziono ' lo riseleziono
EgtSelectObj(nPartId) EgtSelectObj(nPartId)
' resetto validazione del pezzo ' resetto validazione del pezzo
@@ -458,14 +356,6 @@ Public Class PartVM
NotifyPropertyChanged(NameOf(sROT)) NotifyPropertyChanged(NameOf(sROT))
End Sub End Sub
Private Sub DeleteOldRaw()
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
EgtRemoveRawPart(nRawId)
nRawId = EgtGetFirstRawPart()
End While
End Sub
Friend Sub SelectBTLPart() Friend Sub SelectBTLPart()
' eseguo la selezione nella lista pezzi ' eseguo la selezione nella lista pezzi
Dim nBTLPartId As Integer = MyMachGroupPanelM.DuploGetOriginal(nPartId) Dim nBTLPartId As Integer = MyMachGroupPanelM.DuploGetOriginal(nPartId)
@@ -157,13 +157,6 @@ Public Class MainWindowM
End Get End Get
End Property End Property
Private m_bSpecialPanel As Boolean = False
Friend ReadOnly Property bSpecialPanel As Boolean
Get
Return m_bSpecialPanel
End Get
End Property
#End Region ' FIELDS #End Region ' FIELDS
#Region "CONSTRUCTOR" #Region "CONSTRUCTOR"
@@ -242,8 +235,8 @@ Public Class MainWindowM
EgtSetLockId( sLockId) EgtSetLockId( sLockId)
End If End If
' Recupero livello e opzioni della chiave ' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2512, 1, m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(5327, 2508, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2512, 1, m_nKeyOptions) EgtGetKeyOptions(5327, 2508, 1, m_nKeyOptions)
' Inizializzazione generale di EgtInterface ' Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0) m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString()) m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
@@ -285,8 +278,6 @@ Public Class MainWindowM
EgtSetUiUnits(GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0) EgtSetUiUnits(GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
' Leggo e imposto livello utilizzatore ' Leggo e imposto livello utilizzatore
m_nUserLevel = Math.Min(m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)) m_nUserLevel = Math.Min(m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
' Recupero flag SpecialPanel
m_bSpecialPanel = GetMainPrivateProfileInt(S_SPECIAL, K_SPECIALENABLE, 0) = 1
' Imposto dir font Nfe e font default ' Imposto dir font Nfe e font default
Dim sNfeDir As String = String.Empty Dim sNfeDir As String = String.Empty
GetMainPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir) GetMainPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.12.2")> <Assembly: AssemblyVersion("2.5.8.1")>
<Assembly: AssemblyFileVersion("2.5.12.2")> <Assembly: AssemblyFileVersion("2.5.8.1")>
@@ -22,6 +22,7 @@ Public Class NewOpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType m_ProjectType = ProjectType
ProdItem.m_delUpdateNameInDb = AddressOf DbControllers.m_ProdController.UpdateDescription
NotifyPropertyChanged(NameOf(FilterTypeList)) NotifyPropertyChanged(NameOf(FilterTypeList))
m_SelFilterType = m_FilterTypeList(0) m_SelFilterType = m_FilterTypeList(0)
@@ -33,8 +34,9 @@ Public Class NewOpenProjectFileDialogVM
SetFixedProjectList(True) SetFixedProjectList(True)
NotifyPropertyChanged(NameOf(ProjectList)) NotifyPropertyChanged(NameOf(ProjectList))
End If End If
m_ProjectList_View = CollectionViewSource.GetDefaultView(m_ProjectList) 'm_ProjectList_View = CollectionViewSource.GetDefaultView(m_ProjectList)
m_ProjectList_View.Filter = AddressOf ProjectFilter 'm_ProjectList_View.Filter = AddressOf ProjectFilter
UpdatePageList()
End Function End Function
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False) Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False)
@@ -44,19 +46,19 @@ Public Class NewOpenProjectFileDialogVM
Dim dtEnd As DateTime Dim dtEnd As DateTime
Dim nRowQuantity As Integer = 20 Dim nRowQuantity As Integer = 20
Select Case SelRowQuantity Select Case SelRowQuantity
Case RowQuantities.FIFTY Case RowQuantities.TEN
nRowQuantity = 50 nRowQuantity = 10
Case RowQuantities.HUNDRED Case RowQuantities.TWENTY
nRowQuantity = 100 nRowQuantity = 20
Case RowQuantities.HUNDREDANDFIFTY Case RowQuantities.THIRTY
nRowQuantity = 150 nRowQuantity = 30
End Select End Select
Select Case m_SelDayType Select Case m_SelDayType
Case DayTypes.LASTMONTH Case DayTypes.LASTMONTH
dtEnd = DateTime.Today + TimeSpan.FromDays(1) dtEnd = DateTime.Today.AddDays(1)
dtStart = dtEnd - TimeSpan.FromDays(30.5) dtStart = dtEnd.AddMonths(-1)
Case DayTypes.LAST3MONTHS Case DayTypes.LAST3MONTHS
dtEnd = DateTime.Today + TimeSpan.FromDays(1) dtEnd = DateTime.Today.AddDays(1)
dtStart = dtEnd - TimeSpan.FromDays(30.5 * 3) dtStart = dtEnd - TimeSpan.FromDays(30.5 * 3)
Case DayTypes.LAST6MONTHS Case DayTypes.LAST6MONTHS
dtEnd = DateTime.Today + TimeSpan.FromDays(1) dtEnd = DateTime.Today + TimeSpan.FromDays(1)
@@ -70,31 +72,48 @@ Public Class NewOpenProjectFileDialogVM
End Select End Select
' leggo da db ' leggo da db
If m_ProjectType = ProjectType.PROJ Then If m_ProjectType = ProjectType.PROJ Then
Dim DbProjList As New List(Of ProjFileM) 'Dim DbProjList As New List(Of ProjFileM)
If m_SelBTLDateType = BTLDateTypes.CREATEDATE Then 'If m_SelBTLDateType = BTLDateTypes.CREATEDATE Then
DbProjList = DbControllers.m_ProjController.GetLastDesc(dtStart, dtEnd, nRowQuantity * 3, True, bViewArchived) ' DbProjList = DbControllers.m_ProjController.GetLastDesc(dtStart, dtEnd, 100000, True, bViewArchived)
Else ' 'DbProjList = DbControllers.m_ProjController.GetLastDesc(dtStart, dtEnd, nRowQuantity * 3, True, bViewArchived)
DbProjList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity * 3, True, bViewArchived) 'Else
End If ' DbProjList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity * 3, True, bViewArchived)
For Each Project In DbProjList 'End If
If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For 'For Each Project In DbProjList
' verifico se ha prod ' If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
If Not IsNothing(Project.nProdId) And Project.nProdId > 0 Then ' ' verifico se ha prod
' verifico se prod e' gia' stato creato ' If Not IsNothing(Project.nProdId) And Project.nProdId > 0 Then
Dim SameProdItem As ProdItem = m_ProjectList.FirstOrDefault(Function(x) Not IsNothing(x.ProdFileVM) AndAlso Not IsNothing(x.ProdFileVM.nProdId) AndAlso x.ProdFileVM.nProdId = Project.nProdId) ' ' verifico se prod e' gia' stato creato
If Not IsNothing(SameProdItem) Then ' Dim SameProdItem As ProdItem = m_ProjectList.FirstOrDefault(Function(x) Not IsNothing(x.ProdFileVM) AndAlso Not IsNothing(x.ProdFileVM.nProdId) AndAlso x.ProdFileVM.nProdId = Project.nProdId)
SameProdItem.ProjFileList.Add(New ProjFileVM(Project)) ' If Not IsNothing(SameProdItem) Then
Else ' SameProdItem.ProjFileList.Add(New ProjFileVM(Project))
' recupero Prod ' Else
Dim NewDbProd As ProdFileM = DbControllers.m_ProdController.FindCoreByProdId(Project.nProdId) ' ' recupero Prod
If Not IsNothing(NewDbProd) Then ' Dim NewDbProd As ProdFileM = DbControllers.m_ProdController.FindCoreByProdId(Project.nProdId)
m_ProjectList.Add(New ProdItem(New ProdFileVM(NewDbProd), New ProjFileVM(Project))) ' If Not IsNothing(NewDbProd) Then
End If ' m_ProjectList.Add(New ProdItem(New ProdFileVM(NewDbProd), New ProjFileVM(Project)))
End If ' End If
Else ' End If
m_ProjectList.Add(New ProdItem(New ProjFileVM(Project))) ' Else
End If ' m_ProjectList.Add(New ProdItem(New ProjFileVM(Project)))
Next ' End If
'Next
m_ProjectList = New ObservableCollection(Of Core.ProdItem)(DbControllers.m_ProdController.GetLastDescFull(dtStart, dtEnd, nRowQuantity * 3, True, bViewArchived))
'Dim sMachine As String = ""
'Dim sBtlFileName As String = ""
'Dim sListName As String = ""
'Dim bIsCreationDate As Boolean = True
'If SelFilterType.Id = FilterTypes.ID Then
' ' sMachine = SearchText
'ElseIf SelFilterType.Id = FilterTypes.BTLFILENAME Then
' sBtlFileName = SearchText
'ElseIf SelFilterType.Id = FilterTypes.LISTNAME Then
' sListName = SearchText
'ElseIf SelFilterType.Id = FilterTypes.MACHINE Then
' sMachine = SearchText
'End If
'm_ProjectList = New ObservableCollection(Of Core.ProdItem)(DbControllers.m_ProdController.GetLastDescFull(dtStart, dtEnd, bIsCreationDate, nRowQuantity * 3, True, sMachine, sBtlFileName, sListName, bViewArchived))
NotifyPropertyChanged(NameOf(ProjectList))
ElseIf m_ProjectType = ProjectType.PROD Then ElseIf m_ProjectType = ProjectType.PROD Then
Dim DbProdList As New List(Of ProdFileM) Dim DbProdList As New List(Of ProdFileM)
DbProdList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True, bViewArchived) DbProdList = DbControllers.m_ProdController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True, bViewArchived)
@@ -135,6 +154,59 @@ Public Class NewOpenProjectFileDialogVM
End If End If
End Sub End Sub
Public Overrides Function UpdatePageList() As Boolean
Dim FilteredList As IEnumerable(Of Core.ProdItem) = m_ProjectList.Where(Function(x)
If m_SelFilterType.Id <> FilterTypes.NULL AndAlso m_SearchText <> String.Empty AndAlso
((m_SelFilterType.Id = FilterTypes.BTLFILENAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso x.ProjFileList.Any(Function(y) DirectCast(y, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
(m_SelFilterType.Id = FilterTypes.MACHINE AndAlso x.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then Return False
Return True
End Function)
Dim nPageRowQty As Integer = 0
Select Case m_SelRowQuantity
Case RowQuantities.TEN
nPageRowQty = 10
Case RowQuantities.TWENTY
nPageRowQty = 20
Case RowQuantities.THIRTY
nPageRowQty = 30
End Select
Dim nStart = (nPageIndex - 1) * nPageRowQty
Dim nEnd = Math.Min((nPageIndex * nPageRowQty), FilteredList.Count())
If nStart > FilteredList.Count() Then
Return False
End If
' FilteredList = FilteredList.OrderBy(Of ProdItem)()
m_PageList = New ObservableCollection(Of ProdItem)(FilteredList.Skip(nStart).Take(nPageRowQty).Select(Function(x) x))
'm_PageList.Clear()
'For Index = nStart To nEnd
' m_PageList.Add(FilteredList(Index))
'Next
NotifyPropertyChanged(NameOf(PageList))
Return True
'Dim bProjectOk As Boolean = True
''If TypeOf Proj Is ProjFileVM Then
'Dim CurrProj As ProdItem = DirectCast(PROJ, ProdItem)
'If m_SelFilterType.Id <> FilterTypes.NULL AndAlso (
' (m_SelFilterType.Id = BTLDateTypes.EXPORTDATE AndAlso Not CurrProj.ProjFileList.Any(Function(x) SearchDate.Contains(DirectCast(x, ProjFileVM).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.BTLFILENAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.LISTNAME AndAlso CurrProj.ProjFileList.Any(Function(x) DirectCast(x, ProjFileVM).sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) OrElse
' (m_SelFilterType.Id = FilterTypes.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
'ElseIf TypeOf Proj Is ProdFileVM 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
'End If
' Return bProjectOk
End Function
Public Overrides Sub Archive() Public Overrides Sub Archive()
If IsNothing(SelProject) Then Return If IsNothing(SelProject) Then Return
If Not IsNothing(SelProject.ProdFileVM) Then If Not IsNothing(SelProject.ProdFileVM) Then
@@ -250,33 +322,3 @@ Public Class NewOpenProjectFileDialogVM
#End Region ' METHODS #End Region ' METHODS
End Class End Class
Public Class ProdItem
Inherits Core.ProdItem
Public Overrides Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
Set(value As String)
If Not IsNothing(m_ProdFileVM) Then
DbControllers.m_ProdController.UpdateDescription(m_ProdFileVM.nProdId, value)
m_ProdFileVM.sName = value
m_delIsModifiedSetUp(False)
End If
End Set
End Property
Sub New(ProdFileVM As ProdFileVM, ProjFileVM As ProjFileVM)
MyBase.New(ProdFileVM, ProjFileVM)
End Sub
Sub New(ProjFileVM As ProjFileVM)
MyBase.New(ProjFileVM)
End Sub
Sub New(ProdFileVM As ProjectFileVM, ProjFileVMList As List(Of ProjectFileVM))
MyBase.New(ProdFileVM, ProjFileVMList)
End Sub
End Class
@@ -12,6 +12,7 @@ Public Class OpenProjectFileDialogVM
Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean? Public Overrides Function Init(ProjectType As ProjectType, Optional CurrProjectList As List(Of ProjectFileVM) = Nothing, Optional GoToProd As Boolean = False) As Boolean?
m_ProjectType = ProjectType m_ProjectType = ProjectType
m_GoToProd = GoToProd
' carico colonne ' carico colonne
LoadColumns(ProjectType) LoadColumns(ProjectType)
NotifyPropertyChanged(NameOf(FilterTypeList)) NotifyPropertyChanged(NameOf(FilterTypeList))
@@ -19,7 +20,7 @@ Public Class OpenProjectFileDialogVM
' carico lista progetti ' carico lista progetti
If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then If IsNothing(CurrProjectList) OrElse CurrProjectList.Count = 0 Then
SetFixedProjectList(False) SetFixedProjectList(False)
RefreshProjectList(GoToProd) RefreshProjectList()
Else Else
SetFixedProjectList(True) SetFixedProjectList(True)
m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList) m_ProjectList = New ObservableCollection(Of ProjectFileVM)(CurrProjectList)
@@ -29,7 +30,7 @@ Public Class OpenProjectFileDialogVM
m_ProjectList_View.Filter = AddressOf ProjectFilter m_ProjectList_View.Filter = AddressOf ProjectFilter
End Function End Function
Public Overrides Sub RefreshProjectList(Optional GoToProd As Boolean = False) Public Overrides Sub RefreshProjectList()
m_ProjectList.Clear() m_ProjectList.Clear()
' calcolo periodo e righe ' calcolo periodo e righe
Dim dtStart As DateTime Dim dtStart As DateTime
@@ -66,30 +67,15 @@ Public Class OpenProjectFileDialogVM
Else Else
DbProjectList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False) DbProjectList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False)
End If End If
For Each Project In DbProjectList If m_GoToProd Then
' 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 For Each Project In DbProjectList
' recupero path per verificare esista ' recupero path per verificare esista
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For 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" Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso
Project.nType = Map.refProjManagerVM.CurrProj.nType Then Project.nType = Map.refProjManagerVM.CurrProj.nType Then
If File.Exists(sPath) Then If File.Exists(sPath) Then
m_ProjectList.Add(New ProdFileVM(Project)) m_ProjectList.Add(New ProjFileVM(Project))
Else Else
DbControllers.m_ProdController.DeleteProd(Project.nProdId, True) DbControllers.m_ProdController.DeleteProd(Project.nProdId, True)
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000")) EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000"))
@@ -99,16 +85,31 @@ Public Class OpenProjectFileDialogVM
Else Else
For Each Project In DbProjectList For Each Project In DbProjectList
' recupero path per verificare esista ' recupero path per verificare esista
If IsNothing(Project.nProdId) OrElse Project.nProdId = 0 Then Continue For If IsNothing(Project.nProjId) OrElse Project.nProjId = 0 Then Continue For
Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProdsDir & "\" & Project.nProdId.ToString("0000") & "\" & Project.nProdId.ToString("0000") & ".nge" Dim sPath As String = Map.refMainWindowVM.MainWindowM.sProjsDir & "\" & Project.nProjId.ToString("0000") & "\" & Project.nProjId.ToString("0000") & ".nge"
If File.Exists(sPath) Then If File.Exists(sPath) Then
m_ProjectList.Add(New ProdFileVM(Project)) m_ProjectList.Add(New ProjFileVM(Project))
Else Else
DbControllers.m_ProdController.DeleteProd(Project.nProdId, True) ' CheckMe impostata come cancellazione FISICA dal DB...
EgtOutLog("Found project on Db without the folder and erased it! Prod number " & Project.nProdId.ToString("0000")) 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 End If
Next Next
End If End If
ElseIf 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
' 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, True)
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 End Sub
@@ -438,7 +438,7 @@ Public Class ProjManagerVM
Dim OpenFile As New NewOpenProjectFileDialogV(Application.Current.MainWindow, OpenProdFileDialogVM) Dim OpenFile As New NewOpenProjectFileDialogV(Application.Current.MainWindow, OpenProdFileDialogVM)
Dim DialogResult As Boolean? = OpenFile.EgtShowDialog(ProjectType.PROJ) Dim DialogResult As Boolean? = OpenFile.EgtShowDialog(ProjectType.PROJ)
If IsNothing(DialogResult) OrElse Not DialogResult Then Return If IsNothing(DialogResult) OrElse Not DialogResult Then Return
Dim TempProd As ProdItem = OpenProdFileDialogVM.SelProject Dim TempProd As Core.ProdItem = OpenProdFileDialogVM.SelProject
If TempProd.ProjFileList.Count > 1 Then If TempProd.ProjFileList.Count > 1 Then
' apro dialogo di scelta Proj ' apro dialogo di scelta Proj
Dim OpenProjFileDialogVM As OpenProjectFileDialogVM = Nothing Dim OpenProjFileDialogVM As OpenProjectFileDialogVM = Nothing
@@ -52,8 +52,6 @@
<EgtBEAMWALL:ViewPanelV DataContext="{StaticResource ViewPanelVM}"/> <EgtBEAMWALL:ViewPanelV DataContext="{StaticResource ViewPanelVM}"/>
<EgtBEAMWALL:InstrumentPanelV DataContext="{StaticResource InstrumentPanelVM}"/> <EgtBEAMWALL:InstrumentPanelV DataContext="{StaticResource InstrumentPanelVM}"/>
<EgtBEAMWALL:CalcPanelV DataContext="{StaticResource CALCPanelVM}"/> <EgtBEAMWALL:CalcPanelV DataContext="{StaticResource CALCPanelVM}"/>
<EgtBEAMWALL:SpecialPanelV DataContext="{StaticResource SpecialPanelVM}"
Visibility="{Binding DataContext.SpecialPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
<EgtBEAMWALL:FreeContourManagerV DataContext="{StaticResource FreeContourManagerVM}" <EgtBEAMWALL:FreeContourManagerV DataContext="{StaticResource FreeContourManagerVM}"
Visibility="{Binding DataContext.FreeContourManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/> Visibility="{Binding DataContext.FreeContourManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
</WrapPanel> </WrapPanel>
@@ -3,7 +3,6 @@ Imports EgtBEAMWALL.Core
Imports EgtWPFLib5 Imports EgtWPFLib5
Imports EgtUILib Imports EgtUILib
Imports System.Collections.ObjectModel Imports System.Collections.ObjectModel
Imports EgtBEAMWALL.DataLayer.Controllers
Public Class ProjectVM Public Class ProjectVM
Inherits VMBase Inherits VMBase
@@ -12,12 +11,6 @@ Public Class ProjectVM
Private m_Calc_Timer As New DispatcherTimer Private m_Calc_Timer As New DispatcherTimer
Friend Event OnPreControllerExec(sFilePath As String)
Friend Event OnPostControllerExec()
' Flag per non salvare Script appena eseguito in elenco MruScript
Private m_bScriptInMru As Boolean = True
Private Property m_GridDims As New ObservableCollection(Of GridDimension) Private Property m_GridDims As New ObservableCollection(Of GridDimension)
Public Property GridDims As ObservableCollection(Of GridDimension) Public Property GridDims As ObservableCollection(Of GridDimension)
Get Get
@@ -196,13 +189,6 @@ Public Class ProjectVM
NotifyPropertyChanged("FreeContourManager_Visibility") NotifyPropertyChanged("FreeContourManager_Visibility")
End Sub End Sub
Public ReadOnly Property SpecialPanel_Visibility As Visibility
Get
Return If(Map.refMainWindowVM.MainWindowM.bSpecialPanel AndAlso Map.refMainWindowVM.MainWindowM.nUserLevel > 5, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Friend Sub NotifyAllPanelVisibility() Friend Sub NotifyAllPanelVisibility()
NotifyPropertyChanged("LeftPanel_Visibility") NotifyPropertyChanged("LeftPanel_Visibility")
NotifyPropertyChanged("TopPanel_Visibility") NotifyPropertyChanged("TopPanel_Visibility")
@@ -59,8 +59,6 @@ Public Class MySceneHostVM
PostInitializeScene() PostInitializeScene()
' Imposto stato gestione mouse diretto della scena a nessuno ' Imposto stato gestione mouse diretto della scena a nessuno
MainScene.SetStatusNull() MainScene.SetStatusNull()
' Imposto focus pulsante su false
MainScene.SetFocusOnMove(False)
' Recupero e imposto handle finestra principale ' Recupero e imposto handle finestra principale
Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle
EgtSetMainWindowHandle(hMainWnd) EgtSetMainWindowHandle(hMainWnd)
@@ -1,24 +0,0 @@
<EgtFloating:EgtFloatingPanel x:Class="SpecialPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
IsTopDockable="True" IsBottomDockable="False" IsLeftDockable="False"
IsRightDockable="False" Style="{StaticResource ToolBar_EgtFloatingPanel}">
<ItemsControl ItemsSource="{Binding ButtonList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button ToolTip="{Binding ToolTip}" Command="{Binding LuaExecCommand}" Style="{StaticResource DrawPanelButton}"
Visibility="{Binding Btn_Visibility}" IsEnabled="{Binding Btn_IsEnabled}">
<Image Source="{Binding ImagePath}"/>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</EgtFloating:EgtFloatingPanel>
@@ -1,3 +0,0 @@
Public Class SpecialPanelV
End Class
@@ -1,202 +0,0 @@
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtBEAMWALL.Core
Public Class SpecialPanelVM
Private m_ButtonList As New List(Of ButtonItem)
Public ReadOnly Property ButtonList As List(Of ButtonItem)
Get
Return m_ButtonList
End Get
End Property
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefSpecialPanelVM(Me)
' se attivo, inizializzo i bottoni leggendoli da file ini
If Map.refMainWindowVM.MainWindowM.bSpecialPanel Then
Dim BtnIndex As Integer = 1
Dim CurrBtn As ButtonItem = Nothing
While GetPrivateProfileButton(S_SPECIAL, K_BUTTON & BtnIndex, "", CurrBtn)
m_ButtonList.Add(CurrBtn)
BtnIndex += 1
End While
End If
End Sub
#Region "METHODS"
Public Function SetSpecialPanelButtonsVisibility(IsMachMode As Boolean) As Boolean
Dim bSpecialPanel_Visible As Boolean = False
For Each BtnItem In m_ButtonList
' verifico il valore di nDrawMachOrBoth del bottone e IsMachMode per rendere visibile o meno il bottone in ButtonList
Select Case BtnItem.nDrawMachOrBoth
Case 0 ' bottone nascosto
BtnItem.m_Btn_Visibility = Visibility.Collapsed
Case 1 ' bottone visibile solo in Draw
BtnItem.m_Btn_Visibility = If(Not IsMachMode, Visibility.Visible, Visibility.Collapsed)
Case 2 ' bottone visibile solo in Machining
BtnItem.m_Btn_Visibility = If(IsMachMode, Visibility.Visible, Visibility.Collapsed)
Case 3 ' bottone visibile sia in Draw che in Machining
BtnItem.m_Btn_Visibility = Visibility.Visible
End Select
' se anche uno solo è visibile anche lo SpecialPanel dovrà esserlo
If BtnItem.Btn_Visibility = Visibility.Visible Then bSpecialPanel_Visible = True
'BtnItem.OnPropertyChanged(NameOf(BtnItem.Btn_Visibility))
BtnItem.NotifyPropertyChanged(NameOf(BtnItem.Btn_Visibility))
Next
Return bSpecialPanel_Visible
End Function
Friend Sub SpecialPanelIsEnabled(SpecialPanelBtn_IsEnabled As Boolean)
For Each BtnItem In m_ButtonList
BtnItem.m_Btn_IsEnabled = SpecialPanelBtn_IsEnabled
'BtnItem.OnPropertyChanged(NameOf(BtnItem.Btn_IsEnabled))
BtnItem.NotifyPropertyChanged(NameOf(BtnItem.Btn_IsEnabled))
Next
End Sub
Public Function GetPrivateProfileButton(sSection As String, sKey As String, sBaseDir As String, ByRef ReadButtonItem As ButtonItem) As Boolean
ReadButtonItem = Nothing
Dim sVal As String = String.Empty
GetMainPrivateProfileString(sSection, sKey, "", sVal)
If String.IsNullOrWhiteSpace(sVal) Then Return False
Dim sItems() As String = sVal.Split(","c)
If sItems.Count() >= 1 Then
Dim sLuaPath As String = sItems(0)
Dim sImagePath As String = If(sItems.Count() >= 2, sItems(1), "")
Dim sToolTip As String = If(sItems.Count() >= 3, sItems(2), "")
Dim sDrawMachOrBoth As String = If(sItems.Count() >= 4 AndAlso Not String.IsNullOrWhiteSpace(sItems(3)), sItems(3), "1")
If Not String.IsNullOrWhiteSpace(sBaseDir) And Not String.IsNullOrWhiteSpace(sLuaPath) Then
If sLuaPath.Contains(".lua") Then sLuaPath = sBaseDir & "\" & sLuaPath
If Not String.IsNullOrWhiteSpace(sImagePath) Then sImagePath = sBaseDir & "\" & sImagePath
End If
ReadButtonItem = New ButtonItem(sSection, sLuaPath, sImagePath, sToolTip, sDrawMachOrBoth)
Return True
End If
Return False
End Function
#End Region ' Methods
End Class
Public Class ButtonItem
Inherits VMBase
Friend Shared WithEvents m_ProjectVM As ProjectVM
Private Shared m_sCurrBarName As String
Private m_sBarName As String
Private m_sImagePath As String
Public ReadOnly Property ImagePath As String
Get
Return m_sImagePath
End Get
End Property
Private m_sLuaCmdPath As String
Private m_sToolTip As String
Public ReadOnly Property ToolTip As String
Get
Return m_sToolTip
End Get
End Property
Private m_nDrawMachOrBoth As Integer
Public ReadOnly Property nDrawMachOrBoth As Integer
Get
Return m_nDrawMachOrBoth
End Get
End Property
Friend m_Btn_Visibility As Visibility
Public ReadOnly Property Btn_Visibility As Visibility
Get
Return m_Btn_Visibility
End Get
End Property
Friend m_Btn_IsEnabled As Boolean = True
Public ReadOnly Property Btn_IsEnabled As Boolean
Get
Return m_Btn_IsEnabled
End Get
End Property
' Definizione comandi
Private m_cmdLuaExec As ICommand
Sub New( sBarName As String, sLuaCmdPath As String, sImagePath As String, sToolTip As String, sDrawMachOrBoth As String)
m_sBarName = sBarName
If File.Exists(sImagePath) Then
' per lasciare libere le immagini le copio (potrebbe fallire perchè bloccate da altro eseguibile)
Dim sNewPath As String = Path.Combine(Map.refMainWindowVM.MainWindowM.sResourcesRoot, sBarName & "_" & Path.GetFileName(sImagePath))
Try
File.Copy( sImagePath, sNewPath, True)
Catch ex As Exception
End Try
m_sImagePath = sNewPath
Else
m_sImagePath = Map.refMainWindowVM.MainWindowM.sResourcesRoot & "\" & sImagePath
End If
m_sLuaCmdPath = sLuaCmdPath
m_sToolTip = sToolTip
If Not Integer.TryParse(sDrawMachOrBoth, m_nDrawMachOrBoth) Then m_nDrawMachOrBoth = 0
End Sub
#Region "COMMANDS"
#Region "LuaExecCommand"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property LuaExecCommand As ICommand
Get
If m_cmdLuaExec Is Nothing Then
m_cmdLuaExec = New Command(AddressOf LuaExec)
End If
Return m_cmdLuaExec
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Sub LuaExec(ByVal param As Object)
If String.IsNullOrWhiteSpace(m_sLuaCmdPath) Then Return
If Not File.Exists(m_sLuaCmdPath) Then Return
If Not Path.GetExtension(m_sLuaCmdPath).ToLower = ".lua" Then Return
' Abilito eventi se comando lua termina con Beam\Process.lua
m_sCurrBarName = m_sBarName
Dim bRaiseEvent As Boolean = ( m_sBarName = "Beam" OrElse m_sBarName = "Wall")
' eseguo file Lua
EgtBEAMWALL.ViewerOptimizer.LuaExec.ExecScript(m_sLuaCmdPath, bRaiseEvent)
m_sCurrBarName = Nothing
End Sub
'Private Shared Sub OnPreControllerExec(sFilePath As String) Handles m_ProjectVM.OnPreControllerExec
' If m_sCurrBarName = "Beam" Then
' EgtLuaCreateGlobTable("BEAM")
' EgtLuaSetGlobStringVar("BEAM.BASEDIR", IniFile.m_sBeamDirPath)
' If EgtGetUserLevel() >= 9 AndAlso GetPrivateProfileInt(S_LUA, K_BWSIM, 0) = 1 then EgtLuaSetGlobBoolVar("BEAM.BW", true)
' ElseIf m_sCurrBarName = "Wall" Then
' EgtLuaCreateGlobTable("WALL")
' EgtLuaSetGlobStringVar("WALL.BASEDIR", IniFile.m_sWallDirPath)
' If EgtGetUserLevel() >= 9 AndAlso GetPrivateProfileInt(S_LUA, K_BWSIM, 0) = 1 then EgtLuaSetGlobBoolVar("WALL.BW", true)
' End If
'End Sub
'Private Shared Sub OnPostControllerExec() Handles m_ProjectVM.OnPostControllerExec
' If m_sCurrBarName = "Beam" Then
' EgtLuaResetGlobVar("BEAM")
' ElseIf m_sCurrBarName = "Wall" Then
' EgtLuaResetGlobVar("WALL")
' End If
'End Sub
#End Region ' LuaExecCommand
#End Region ' Commands
End Class
@@ -68,8 +68,6 @@ Public Module DbControllers
DataLayer.DbConfig.CheckMigrateDb() DataLayer.DbConfig.CheckMigrateDb()
DataLayer.DbConfig.CheckUser(sUser, sPwd, m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK)) DataLayer.DbConfig.CheckUser(sUser, sPwd, m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
DataLayer.DbConfig.CheckViews(sUser, sPwd) DataLayer.DbConfig.CheckViews(sUser, sPwd)
' riattivare il dump per il backup
'DataLayer.DbConfig.DumpDB("C:\Program Files\MariaDB 10.5\bin\mysqldump", "c:\Temp\Pippo.sql")
If m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then If m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
' imposto cartella condivisa ' imposto cartella condivisa
GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder) GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder)
@@ -51,7 +51,6 @@
<OmagOFFICE:MachiningTabVM x:Key="MachiningTabVM"/> <OmagOFFICE:MachiningTabVM x:Key="MachiningTabVM"/>
<OmagOFFICE:SimulTabVM x:Key="SimulTabVM"/>--> <OmagOFFICE:SimulTabVM x:Key="SimulTabVM"/>-->
<EgtBEAMWALL:MyMachGroupPanelVM x:Key="MachGroupPanelVM"/> <EgtBEAMWALL:MyMachGroupPanelVM x:Key="MachGroupPanelVM"/>
<EgtBEAMWALL:SpecialPanelVM x:Key="SpecialPanelVM"/>
<!--Colori predefiniti--> <!--Colori predefiniti-->
<SolidColorBrush x:Key="Omag_Blue" Color="#FF095CA8" /> <SolidColorBrush x:Key="Omag_Blue" Color="#FF095CA8" />
@@ -311,13 +310,6 @@
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<Style x:Key="DrawPanelButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ --> <!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- TextBlock --> <!-- TextBlock -->
@@ -1,5 +1,4 @@
Imports EgtBEAMWALL.Core Imports EgtBEAMWALL.Core
Imports EgtBEAMWALL.DataLayer.Controllers
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
@@ -204,17 +203,4 @@ Module LuaExec
Return bOk Return bOk
End Function End Function
' Special Panel
Friend Sub ExecScript(sFilePath As String, Optional bRaiseEvent As Boolean = False)
EgtLuaExecFile(sFilePath)
'Dim bMachiningMode As Boolean = EgtGetCurrMachGroup() <> GDB_ID.NULL
'If Not bMachiningMode And EgtGetCurrLayer() = GDB_ID.NULL Then
' Dim nCurrPart As Integer = EgtGetCurrPart()
' If nCurrPart = GDB_ID.NULL Or Not EgtSetCurrPartLayer(nCurrPart, EgtGetFirstLayer(nCurrPart, True)) Then
' EgtResetCurrPartLayer()
' End If
'End If
End Sub
End Module End Module
+1 -14
View File
@@ -34,7 +34,6 @@ Module Map
Private m_refFeatureManagerVM As FeatureManagerVM Private m_refFeatureManagerVM As FeatureManagerVM
Private m_refAddSectionXMaterialWndVM As AddSectionXMaterialWndVM Private m_refAddSectionXMaterialWndVM As AddSectionXMaterialWndVM
Private m_refStatisticsTimePanelVM As StatisticsTimePanelVM Private m_refStatisticsTimePanelVM As StatisticsTimePanelVM
Private m_refSpecialPanelVM As SpecialPanelVM
'Private m_refOpenProjectFileDialogVM As OpenProjectFileDialogVM 'Private m_refOpenProjectFileDialogVM As OpenProjectFileDialogVM
'Private m_refRawPartTabVM As RawPartTabVM 'Private m_refRawPartTabVM As RawPartTabVM
'Private m_refNestingTabVM As NestingTabVM 'Private m_refNestingTabVM As NestingTabVM
@@ -242,12 +241,6 @@ Module Map
End Get End Get
End Property End Property
Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM
Get
Return m_refSpecialPanelVM
End Get
End Property
'Public ReadOnly Property refOpenProjectFileDialogVM As OpenProjectFileDialogVM 'Public ReadOnly Property refOpenProjectFileDialogVM As OpenProjectFileDialogVM
' Get ' Get
' Return m_refOpenProjectFileDialogVM ' Return m_refOpenProjectFileDialogVM
@@ -460,12 +453,6 @@ Module Map
Return Not IsNothing(m_refStatisticsTimePanelVM) Return Not IsNothing(m_refStatisticsTimePanelVM)
End Function End Function
Friend Function SetRefSpecialPanelVM(SpecialPanelVM As SpecialPanelVM) As Boolean
m_refSpecialPanelVM = SpecialPanelVM
Return Not IsNothing(m_refSpecialPanelVM)
End Function
'Friend Function SetRefOpenProjectFileDialogVM(OpenProjectFileDialogVM As OpenProjectFileDialogVM) As Boolean 'Friend Function SetRefOpenProjectFileDialogVM(OpenProjectFileDialogVM As OpenProjectFileDialogVM) As Boolean
' m_refOpenProjectFileDialogVM = OpenProjectFileDialogVM ' m_refOpenProjectFileDialogVM = OpenProjectFileDialogVM
' Return Not IsNothing(m_refOpenProjectFileDialogVM) ' Return Not IsNothing(m_refOpenProjectFileDialogVM)
@@ -539,7 +526,7 @@ Module Map
Not IsNothing(m_refStatisticsVM) AndAlso Not IsNothing(m_refPParameterListVM) AndAlso Not IsNothing(m_refStatisticsVM) AndAlso Not IsNothing(m_refPParameterListVM) AndAlso
Not IsNothing(m_refQParameterListVM) AndAlso Not IsNothing(m_refFeatureManagerVM) AndAlso Not IsNothing(m_refQParameterListVM) AndAlso Not IsNothing(m_refFeatureManagerVM) AndAlso
Not IsNothing(m_refAddSectionXMaterialWndVM) AndAlso Not IsNothing(m_refStatisticsTimePanelVM) AndAlso Not IsNothing(m_refAddSectionXMaterialWndVM) AndAlso Not IsNothing(m_refStatisticsTimePanelVM) AndAlso
Not IsNothing(m_refSpecialPanelVM) AndAlso LibMap.EndInit() LibMap.EndInit()
End Function End Function
#End Region ' Init #End Region ' Init
Binary file not shown.
Binary file not shown.