- aggiunta gestione nome progetto

- miglioramenti filtri data
This commit is contained in:
Emmanuele Sassi
2023-08-24 11:27:02 +02:00
parent 5d42576da1
commit ec6c44d036
8 changed files with 207 additions and 50 deletions
@@ -17,5 +17,6 @@
Public Const COL_DESCRIPTION As String = "colDESCRIPTION"
Public Const COL_SUPERVISORID As String = "colSUPERVISORID"
Public Const COL_PRIORITY As String = "colPRIORITY"
Public Const COL_NAME As String = "colNAME"
End Module
@@ -84,7 +84,8 @@
</Grid>
</GroupBox>
<EgtBEAMWALL:EgtDataGrid Grid.Row="1"
<EgtBEAMWALL:EgtDataGrid x:Name="MainDataGrid"
Grid.Row="1"
ItemsSource="{Binding ProjectList}"
SelectedItem="{Binding SelProject}"
CanUserAddRows="False"
@@ -96,6 +97,7 @@
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Margin="5"
RowDetailsVisibilityMode="Visible"
CellEditEnding="MainDataGrid_CellEditEnding"
BindingColumns="{Binding ProdColumns}">
<DataGrid.Resources>
<!-- ProdId -->
@@ -106,12 +108,54 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<!-- Name -->
<!--Name-->
<DataGridTextColumn x:Key="colNAME" Binding="{Binding sName}">
<DataGridTextColumn.Header>
<TextBlock Text="{Binding Path=DataContext.Name_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=DataContext.Name_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
<ToggleButton Grid.Column="1"
Margin="5,0,0,0"
IsChecked="{Binding Path=DataContext.bIsEditNameActive,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"
Style="{StaticResource ToolBar_SmallToggleButton}">
<Image Source="\Resources\CalcPanel\Edit.png"
Style="{StaticResource LockImage}"/>
</ToggleButton>
</Grid>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<!-- Name -->
<!--<DataGridTemplateColumn x:Key="colNAME">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding sName}"/>
<Button Grid.Column="1"
Margin="5,0,0,0"
Click="ModifyNameButton_Click"
Style="{StaticResource ToolBar_SmallButton}">
<Image Source="\Resources\CalcPanel\Edit.png"
Style="{StaticResource LockImage}"/>
</Button>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding sName}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.Name_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
</DataGridTemplateColumn.Header>
</DataGridTemplateColumn>-->
<!-- Creation date -->
<DataGridTextColumn x:Key="colCRTDATE" Binding="{Binding dtCreateDate}">
<DataGridTextColumn.Header>
@@ -129,6 +173,7 @@
<Style TargetType="DataGridRow">
<!--<Setter Property="IsEnabled" Value="{Binding bIsEnabled}"/>-->
<Setter Property="FontWeight" Value="DemiBold"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<EventSetter Event="MouseDoubleClick" Handler="ProjectList_MouseDoubleClick"/>
</Style>
</DataGrid.RowStyle>
@@ -136,7 +181,7 @@
<DataTemplate>
<ItemsControl ItemsSource="{Binding ProjFileList}"
BorderThickness="0"
Margin="0,0,0,-2"
Margin="0,-1,0,0"
Padding="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
@@ -147,10 +192,15 @@
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0"
Grid.ColumnSpan="2"
Background="Gray"
Margin="40,0,40,0"/>
<Grid Grid.Column="1"
Grid.Row="1"
Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
@@ -185,10 +235,6 @@
Grid.Row="1"
Text="{Binding dtCreateDate}"/>-->
</Grid>
<Grid Grid.Row="1"
Grid.ColumnSpan="2"
Background="Gray"
Margin="40,0,40,0"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -205,7 +251,9 @@
Margin="0"
BindingColumns="{Binding Path=DataContext.ProjColumns, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}">
<DataGrid.Resources>
--><!-- ProjId --><!--
-->
<!-- ProjId -->
<!--
<DataGridTextColumn x:Key="colPROJID" Binding="{Binding sProjId}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
@@ -213,7 +261,9 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
--><!-- Project Name --><!--
-->
<!-- Project Name -->
<!--
<DataGridTextColumn x:Key="colPROJNAME" Binding="{Binding sDescription}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
@@ -221,7 +271,9 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
--><!-- BTL FileName --><!--
-->
<!-- BTL FileName -->
<!--
<DataGridTextColumn x:Key="colBTLNAME" Binding="{Binding sBTLFileName}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
@@ -229,7 +281,9 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
--><!-- ListName --><!--
-->
<!-- ListName -->
<!--
<DataGridTextColumn x:Key="colLISTNAME" Binding="{Binding sListName}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
@@ -237,7 +291,9 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
--><!-- Exported date --><!--
-->
<!-- Exported date -->
<!--
<DataGridTextColumn x:Key="colEXPDATE" Binding="{Binding dtExportDate}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
@@ -245,7 +301,9 @@
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
--><!-- Creation date --><!--
-->
<!-- Creation date -->
<!--
<DataGridTextColumn x:Key="colCRTDATE" Binding="{Binding dtCreateDate}">
<DataGridTextColumn.Header>
<TextBlock Text="{Binding Path=DataContext.CreateDate_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:NewOpenProjectFileDialogV}}}"/>
@@ -7,6 +7,7 @@ Imports EgtBEAMWALL.Core.ConstBeam
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtBEAMWALL
Imports System.Windows.Media
Public Class NewOpenProjectFileDialogV
@@ -78,4 +79,8 @@ Public Class NewOpenProjectFileDialogV
Me.DialogResult = bDialogResult
End Sub
Private Sub MainDataGrid_CellEditEnding(sender As Object, e As DataGridCellEditEndingEventArgs)
m_OpenProjFileDialogVM.SetIsEditNameActive(False)
End Sub
End Class
@@ -52,6 +52,13 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Set
End Property
Private m_colProdFile_Name As EgtDataGridColumn
Public ReadOnly Property colProdFile_Name As EgtDataGridColumn
Get
Return m_colProdFile_Name
End Get
End Property
Protected m_ProjColumns As New ObservableCollection(Of EgtDataGridColumn)
Public Property ProjColumns As ObservableCollection(Of EgtDataGridColumn)
Get
@@ -179,19 +186,21 @@ Public MustInherit Class NewOpenProjectFileDialogVM
m_SelDayType = value
WriteMainPrivateProfileString(S_OPENFILEDIALOG, K_DAYTYPE, Convert.ToInt32(m_SelDayType))
m_Date_Visibility = If(m_SelDayType = DayTypes.PERIOD, Visibility.Visible, Visibility.Collapsed)
'If m_SelDayType = DayTypes.PERIOD Then
' Select Case PrevSelDayType
' Case DayTypes.LASTMONTH
' m_dtStartDate = DateTime.Today + TimeSpan.FromDays(1)
' m_dtEndDate = m_dtStartDate - TimeSpan.FromDays(31)
' Case DayTypes.LAST3MONTHS
' Case DayTypes.LAST6MONTHS
' End Select
' NotifyPropertyChanged(NameOf(dtStartDate))
' NotifyPropertyChanged(NameOf(dtEndDate))
'End If
If m_SelDayType = DayTypes.PERIOD Then
Select Case PrevSelDayType
Case DayTypes.LASTMONTH
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31)
Case DayTypes.LAST3MONTHS
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31 * 3)
Case DayTypes.LAST6MONTHS
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31 * 6)
End Select
NotifyPropertyChanged(NameOf(dtStartDate))
NotifyPropertyChanged(NameOf(dtEndDate))
End If
NotifyPropertyChanged(NameOf(Date_Visibility))
' aggiorno lista da Db
RefreshProjectList()
@@ -333,6 +342,23 @@ Public MustInherit Class NewOpenProjectFileDialogVM
End Set
End Property
Public Property bIsEditNameActive As Boolean
Get
Return Not m_colProdFile_Name.IsReadOnly
End Get
Set(value As Boolean)
If Not IsNothing(m_colProdFile_Name) Then
m_colProdFile_Name.IsReadOnly = Not value
End If
End Set
End Property
Public Sub SetIsEditNameActive(value As Boolean)
If Not IsNothing(m_colProdFile_Name) Then
m_colProdFile_Name.IsReadOnly = Not value
End If
NotifyPropertyChanged(NameOf(bIsEditNameActive))
End Sub
#Region "Messages"
Public ReadOnly Property Title As String
@@ -420,17 +446,26 @@ Public MustInherit Class NewOpenProjectFileDialogVM
' Definizione comandi
Private m_cmdProjectDoubleClick As ICommand
Private m_cmdDelete As ICommand
Private m_cmdModifyName As ICommand
#End Region ' FIELDS & PROPERTIES
Sub New()
' carico colonne
LoadColumns()
m_colProdFile_Name = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_NAME)
' leggo valori per filtri
m_SelDayType = GetMainPrivateProfileInt(S_OPENFILEDIALOG, K_DAYTYPE, 0)
Select Case m_SelDayType
Case DayTypes.LASTMONTH
m_dtStartDate = DateTime.Today
m_dtEndDate = DateTime.Today
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31)
Case DayTypes.LAST3MONTHS
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31 * 3)
Case DayTypes.LAST6MONTHS
m_dtEndDate = DateTime.Today + TimeSpan.FromDays(1)
m_dtStartDate = m_dtEndDate - TimeSpan.FromDays(31 * 6)
Case DayTypes.PERIOD
Dim sStartDate As String = "0"
Dim lStartDate As Long = 0
@@ -452,10 +487,10 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Public Overridable Sub RefreshProjectList(Optional GoToProd As Boolean = False)
End Sub
Protected Sub LoadColumns(ProjectType As ProjectType)
Protected Sub LoadColumns()
'If ProjectType = ProjectType.PROJ Then
' carico le colonne della datagrid
GetPrivateProfileColumns(S_OPENPROJFILEDLG_PROJ, ProjColumns)
' GetPrivateProfileColumns(S_OPENPROJFILEDLG_PROJ, ProjColumns)
' ' carico campi su cui eseguire il filtro di ricerca
' m_BTLDateTypeList = New List(Of String)({CreateDate_Msg, ExportDate_Msg})
' m_SelBTLDateType = BTLDateTypes.CREATEDATE
@@ -558,6 +593,9 @@ Public MustInherit Class NewOpenProjectFileDialogVM
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Friend Sub ProjDoubleClick()
' verifico se non e' attivo edit del nome
If bIsEditNameActive Then Return
' verifico validita' selezionato
If VerifySelected() Then
RaiseEvent m_CloseWindow(True)
End If
@@ -585,7 +623,33 @@ Public MustInherit Class NewOpenProjectFileDialogVM
Public Overridable Sub Delete()
End Sub
#End Region ' Delete
#End Region ' ModifyName
#Region "ModifyName"
''' <summary>
''' Returns a command that do New.
''' </summary>
Public ReadOnly Property ModifyName_Command As ICommand
Get
If m_cmdModifyName Is Nothing Then
m_cmdModifyName = New Command(AddressOf ModifyName)
End If
Return m_cmdModifyName
End Get
End Property
''' <summary>
''' Execute the New. This method is invoked by the NewCommand.
''' </summary>
Public Sub ModifyName()
Dim NameColumn As EgtDataGridColumn = m_ProdColumns.FirstOrDefault(Function(x) x.Name = COL_NAME)
If Not IsNothing(NameColumn) Then
NameColumn.IsReadOnly = False
End If
End Sub
#End Region ' ModifyName
#End Region ' Commands
@@ -593,7 +657,7 @@ End Class
Public Class ProdItem
Private m_ProdFileVM As ProdFileVM
Protected m_ProdFileVM As ProdFileVM
Public ReadOnly Property ProdFileVM As ProdFileVM
Get
Return m_ProdFileVM
@@ -612,7 +676,8 @@ Public Class ProdItem
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sProdId, "")
End Get
End Property
Public Property sName As String
Public Overridable Property sName As String
Get
Return If(Not IsNothing(m_ProdFileVM), m_ProdFileVM.sName, "")
End Get
@@ -21,7 +21,6 @@ Public Class ProdFileM
End Get
Set(value As String)
m_sName = value
' DbControllers.m_ProdController.UpdateDescription(ProdFileM.nProdId, TempProj.sBTLFileName)
End Set
End Property
@@ -12,8 +12,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?
m_ProjectType = ProjectType
' carico colonne
LoadColumns(ProjectType)
NotifyPropertyChanged(NameOf(FilterTypeList))
m_SelFilterType = m_FilterTypeList(0)
' carico lista progetti
@@ -62,7 +61,7 @@ Public Class NewOpenProjectFileDialogVM
If m_SelBTLDateType = BTLDateTypes.CREATEDATE Then
DbProjList = DbControllers.m_ProjController.GetLastDesc(dtStart, dtEnd, nRowQuantity, True)
Else
DbProjList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, False)
DbProjList = DbControllers.m_ProjController.GetLastByExpDesc(dtStart, dtEnd, nRowQuantity, True)
End If
For Each Project In DbProjList
' recupero path per verificare esista
@@ -247,20 +246,23 @@ Public Class NewOpenProjectFileDialogVM
'Dim ProjListIndex As Integer = m_ProjectList.IndexOf(SelProject)
'If m_ProjectType = ProjectType.PROJ Then
' ' verifico se proj selezionato e' il corrente
' If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso SelProject.nProjId = Map.refProjManagerVM.CurrProj.nProjId Then
' If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso SelProject.ProjFileList.Any(Function(x) x.nProjId = Map.refProjManagerVM.CurrProj.nProjId) Then
' MessageBox.Show(EgtMsg(61872), EgtMsg(30009), MessageBoxButton.OK, MessageBoxImage.Warning)
' Return
' End If
' ' verifico se proj selezionato ha prod
' If SelProject.nProdId > 0 Then
' If Not IsNothing(SelProject.ProdFileVM) AndAlso SelProject.ProdFileVM.nProdId > 0 Then
' MessageBox.Show(EgtMsg(61873), EgtMsg(30009), MessageBoxButton.OK, MessageBoxImage.Warning)
' Return
' End If
' Map.refProjManagerVM.m_MruFiles.Remove(SelProject.sProjPath)
' ' rimuovo dai progetti correnti
' For Each Project In SelProject.ProjFileList
' Map.refProjManagerVM.m_MruFiles.Remove(Project.sProjPath)
' Next
' Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
' ' cancello progetto
' ' CheckMe impostata come cancellazione FISICA dal DB...
' DbControllers.m_ProjController.DeleteProj(SelProject.nProjId, False)
' DbControllers.m_ProjController.DeleteProj(SelProject.nProjId, True)
' ' cancello cartella del Proj
' Try
' Directory.Delete(SelProject.sProjDirPath, True)
@@ -268,12 +270,13 @@ Public Class NewOpenProjectFileDialogVM
' EgtOutLog("Error in deleting directory " & SelProject.sProjDirPath)
' End Try
' ' aggiorno lista progetti
' m_ProjectList.Clear()
' Dim DbProjectList As New List(Of ProjFileM)
' DbProjectList = DbControllers.m_ProjController.GetLastDesc(50, False)
' For Each Project In DbProjectList
' m_ProjectList.Add(New ProjFileVM(Project))
' Next
' RefreshProjectList()
' 'm_ProjectList.Clear()
' 'Dim DbProjectList As New List(Of ProjFileM)
' 'DbProjectList = DbControllers.m_ProjController.GetLastDesc(50, False)
' 'For Each Project In DbProjectList
' ' m_ProjectList.Add(New ProjFileVM(Project))
' 'Next
'ElseIf m_ProjectType = ProjectType.PROD Then
' ' verifico se prod selezionato e' il corrente
' If Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso SelProject.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
@@ -366,3 +369,24 @@ Public Class NewOpenProjectFileDialogVM
#End Region ' METHODS
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
End If
End Set
End Property
Sub New(ProdFileVM As ProjectFileVM, ProjFileVM As ProjectFileVM)
MyBase.New(ProdFileVM, ProjFileVM)
End Sub
End Class
@@ -21,7 +21,7 @@ Public Class ProdFileVM
For Each CurrProj In nProjIdList
Dim TempProj As ProjFileM = DbControllers.m_ProjController.FindByProjIdConv(CurrProj)
If Not IsNothing(TempProj) AndAlso Not String.IsNullOrWhiteSpace(TempProj.sBTLFileName) Then
' DbControllers.m_ProdController.UpdateDescription(ProdFileM.nProdId, TempProj.sBTLFileName)
DbControllers.m_ProdController.UpdateDescription(ProdFileM.nProdId, TempProj.sBTLFileName)
ProdFileM.sName = TempProj.sBTLFileName
End If
Next
@@ -242,6 +242,11 @@
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
</Style>
<Style x:Key="ToolBar_SmallToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="20"/>
<Setter Property="Width" Value="20"/>
</Style>
<Style x:Key="ToolBar_TextToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="30"/>