Compare commits

...

2 Commits

Author SHA1 Message Date
Emmanuele Sassi d61104aaab Merge branch 'feature/DevExpress' into feature/DevExpress-RawPartList 2026-05-07 15:57:32 +02:00
Emmanuele Sassi 2e2f2dd66d - inizio trasposizione RawPartList con GridControl 2026-04-20 14:43:45 +02:00
6 changed files with 1105 additions and 560 deletions
@@ -2,15 +2,15 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:OPTIMIZER="clr-namespace:EgtBEAMWALL.Optimizer"
xmlns:EgwWPFBaseLib="clr-namespace:EgwWPFBaseLib;assembly=EgwWPFBaseLib"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxfui="http://schemas.devexpress.com/winfx/2008/xaml/core/filteringui"
xmlns:i="http://schemas.devexpress.com/winfx/2008/xaml/mvvm">
xmlns:i="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:OPTIMIZER="clr-namespace:EgtBEAMWALL.Optimizer"
xmlns:EgwWPFBaseLib="clr-namespace:EgwWPFBaseLib;assembly=EgwWPFBaseLib">
<UserControl.Resources>
<OPTIMIZER:DataGridCellBorderThicknessConverter x:Key="DataGridCellBorderThicknessConverter"/>
<OPTIMIZER:ProjIdToBtlFileName x:Key="ProjIdToBtlFileName"/>
@@ -34,7 +34,6 @@
</UserControl.Resources>
<Grid>
<dxg:GridControl x:Name="BTLPart_GridControl"
Grid.Column="1"
ItemsSource="{Binding Tag.BTLPartVMList,
RelativeSource={RelativeSource AncestorType={x:Type OPTIMIZER:BTLPartListV}}}"
AutoExpandAllGroups="True"
@@ -5,7 +5,6 @@ Imports DevExpress.Skins
Imports DevExpress.Xpf.Bars
Imports DevExpress.Xpf.Core.Serialization
Imports DevExpress.Xpf.Grid
Imports DevExpress.Xpf.Data.grids
Imports EgtBEAMWALL.Core
Public Class BTLPartListV
File diff suppressed because it is too large Load Diff
@@ -1,8 +1,88 @@
Imports EgtBEAMWALL.Core
Imports System.IO
Imports DevExpress.Data
Imports DevExpress.Xpf.Bars
Imports DevExpress.Xpf.Core.Serialization
Imports DevExpress.Xpf.Grid
Imports EgtBEAMWALL.Core
Imports EgtUILib.EgtInterface
Public Class RawPartListV
Private m_RawPartListVM As RawPartListVM
Private m_sDataGridLayoutPath As String = ""
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
m_sDataGridLayoutPath = Path.GetDirectoryName(DataGridColumnsIniFile.m_sDataGridColumnsIniFile) & "\NewDataGridLayoutFile2.json"
For Each Column In RawPart_GridControl.Columns
Column.[AddHandler](DXSerializer.AllowPropertyEvent,
New AllowPropertyEventHandler(AddressOf OnAllowProperty))
Next
End Sub
' imposto parametri aggiuntivi da scrivere in Json colonne tabella
Private Sub OnAllowProperty(ByVal sender As Object, ByVal e As AllowPropertyEventArgs)
If e.DependencyProperty Is GridColumn.AllowResizingProperty Then
e.Allow = True
End If
End Sub
' salvataggio del layout colonne
Public Sub SaveBTLPartGridControlLayout()
RawPart_GridControl.SaveLayoutToJson(m_sDataGridLayoutPath)
End Sub
Public Sub Me_Loaded() Handles Me.Loaded
' imposto DataContext
m_RawPartListVM = DataContext
' imposto riferimento ad action per salvataggio layout tabella
m_RawPartListVM.refSaveBTLPartGridControlLayout = AddressOf SaveBTLPartGridControlLayout
' rispristino layout tabella
If Not IsNothing(m_sDataGridLayoutPath) AndAlso File.Exists(m_sDataGridLayoutPath) Then
RawPart_GridControl.RestoreLayoutFromJson(m_sDataGridLayoutPath)
End If
' da gestire chiamandolo quando viene aperto un progetto o aggiunto/rimosso un btl, per evitare che ci sia il GroupSummary se c'e' un solo gruppo
IsVisibleGroupSummary(False)
End Sub
Public Sub IsVisibleGroupSummary(bValue As Boolean)
If bValue AndAlso RawPart_GridControl.GroupSummary.Count = 0 Then
RawPart_GridControl.GroupSummary.Clear()
Dim PDNGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nPDN",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Count,
.ShowInGroupColumnFooter = "nPDN"}
RawPart_GridControl.GroupSummary.Add(PDNGroupSummaryItem)
Dim CNTGroupSummaryItem As New GridSummaryItem() With {.FieldName = "sCNT",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "sCNT"}
RawPart_GridControl.GroupSummary.Add(CNTGroupSummaryItem)
Dim ADDEDGroupSummaryItem As New GridSummaryItem() With {.FieldName = "sADDED",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "sADDED"}
RawPart_GridControl.GroupSummary.Add(ADDEDGroupSummaryItem)
Dim INPRODGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nINPROD",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "nINPROD"}
RawPart_GridControl.GroupSummary.Add(INPRODGroupSummaryItem)
Dim DONEGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nDONE",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "nDONE"}
RawPart_GridControl.GroupSummary.Add(DONEGroupSummaryItem)
End If
RawPart_TableView.ShowGroupFooters = bValue
End Sub
' funzione che permette di selezionare un RawPart anche quando gia' selezionato
Private Sub RawPartRow_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then Map.refProjectVM.BTLStructureVM.SelBTLPart.SetOpenFeatureList(False)
@@ -81,4 +161,52 @@ Public Class RawPartListV
.Source = sender})
End Sub
' customizzazione ContextMenu del GridControl
Private Sub OnShowGridMenu(sender As Object, e As DevExpress.Xpf.Grid.GridMenuEventArgs)
If e.MenuType = GridMenuType.Column Then
' rimozione bottoni
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupBox})
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupColumn})
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.ColumnChooser})
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFit})
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFitColumns})
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.FilterEditor})
Dim info As GridColumnMenuInfo = CType(e.MenuInfo, GridColumnMenuInfo)
Dim item As ColumnBase = CType(info.Column, ColumnBase)
' aggiunta separatore
Dim separator As BarItemLinkSeparator = New BarItemLinkSeparator()
e.Customizations.Add(separator)
' aggiunta bottone AllowResize e Auto Fit
Dim AllowResize As BarCheckItem = New BarCheckItem() With {.Content = "Allow Resize", .IsChecked = (RawPart_TableView.AllowResizing AndAlso (item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default))}
AddHandler AllowResize.CheckedChanged, AddressOf AllowResize_CheckedChanged
e.Customizations.Add(AllowResize)
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default Then
Dim FixAuto As BarButtonItem = New BarCheckItem() With {.Content = "Auto Fit"}
AddHandler FixAuto.ItemClick, AddressOf FixAuto_ItemClick
e.Customizations.Add(FixAuto)
End If
End If
End Sub
' gestore evento Allow Resize
Private Sub AllowResize_CheckedChanged(sender As Object, e As ItemClickEventArgs)
Dim info As GridColumnMenuInfo = TryCast(RawPart_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
Dim item As ColumnBase = CType(info.Column, ColumnBase)
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.False Then
item.AllowResizing = DevExpress.Utils.DefaultBoolean.True
Else
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
End If
End Sub
' gestore evento Auto Fit
Private Sub FixAuto_ItemClick(sender As Object, e As ItemClickEventArgs)
Dim info As GridColumnMenuInfo = TryCast(RawPart_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
Dim item As ColumnBase = CType(info.Column, ColumnBase)
item.Width = New GridColumnWidth(1, GridColumnUnitType.Auto)
RawPart_TableView.UpdateLayout()
item.Width = item.ActualWidth
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
End Sub
End Class
@@ -8,6 +8,8 @@ Public Class RawPartListVM
#Region "FIELDS & PROPERTIES"
Friend refSaveBTLPartGridControlLayout As Action
Private m_colRawPart_StartCut As EgwWPFBaseLib.ColumnLayout
Public ReadOnly Property colRawPart_StartCut As EgwWPFBaseLib.ColumnLayout
Get
@@ -248,6 +250,12 @@ Public Class RawPartListVM
m_colPartInRawPart_PosY = PartInRawPartColumns.FirstOrDefault(Function(x) x.Key = COL_POSY)
End Sub
Friend Sub Close()
If Not IsNothing(refSaveBTLPartGridControlLayout) Then
refSaveBTLPartGridControlLayout()
End If
End Sub
#End Region ' Methods
End Class
@@ -428,6 +428,7 @@ Public Class MainWindowVM
{S_PARAMETERLIST_P, Map.refPParameterListVM.PParameterListColumns}}
EgwWPFBaseLib.EgwDataGrid.WriteColumnLayout(DataGridColumnsIniFile.m_sDataGridColumnsIniFile, DataGridColumnDictionary)
Map.refPartListVM.Close()
Map.refRawPartListVM.Close()
End If
' Termino il Model