Compare commits

..

13 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 67944bfdcb Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-05-07 15:35:51 +02:00
Emmanuele Sassi e446f21069 - sistemata larghezza colonna di calcolo in BTLPartList
- gestito IsEnabled su riga della tabella BTLPartList
2026-04-22 13:45:59 +02:00
Emmanuele Sassi 2e2f2dd66d - inizio trasposizione RawPartList con GridControl 2026-04-20 14:43:45 +02:00
Emmanuele Sassi 31b379bb3d - riportato CheckGen su calcolo barre 2026-04-16 16:33:57 +02:00
Emmanuele Sassi f1a8c8912d Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-16 16:06:50 +02:00
Emmanuele Sassi 36747a9faa EgtBeamWall 3.1.4.5:
- trasformato BTLPartManager in PopupMenu
- aggiunti filtri
- aggiunto filtro SectXMat
- corrette colonne con Check
- commentato vecchio EgwDataGrid
- gestita visibilita' GroupSummary, da utilizzare correttamente
2026-04-16 16:06:08 +02:00
Emmanuele Sassi 2ae8427be4 Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-10 12:19:45 +02:00
Emmanuele Sassi 420af319a1 Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-03 10:10:57 +02:00
Emmanuele Sassi 69c58ddbd9 Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-03 10:06:51 +02:00
Emmanuele Sassi 6bc913530a Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-02 18:35:44 +02:00
Emmanuele Sassi 46548eeeb0 Merge remote-tracking branch 'origin/feature/NewGraphicsProgram' into feature/DevExpress 2026-04-02 17:08:25 +02:00
Emmanuele Sassi f605ba5b84 - aggiunte librerie DevExpress e gestione GridControl per BTLPartList 2026-04-02 17:08:07 +02:00
22 changed files with 2433 additions and 1119 deletions
+2 -2
View File
@@ -38,5 +38,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.1.5.2")>
<Assembly: AssemblyFileVersion("3.1.5.2")>
<Assembly: AssemblyVersion("3.1.4.7")>
<Assembly: AssemblyFileVersion("3.1.4.7")>
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.1.5.2")]
[assembly: AssemblyFileVersion("3.1.5.2")]
[assembly: AssemblyVersion("3.1.4.7")]
[assembly: AssemblyFileVersion("3.1.4.7")]
@@ -1,4 +1,66 @@
<Border x:Class="BTLPartManagerV"
<dxb:PopupMenu x:Class="BTLPartManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxi="http://schemas.devexpress.com/winfx/2008/xaml/core/internal"
xmlns:dxt="http://schemas.devexpress.com/winfx/2008/xaml/core/themekeys"
DataContext="{StaticResource BTLPartManagerVM}"
Background="{StaticResource Border.BTLPartManager.Background}"
BorderBrush="{StaticResource Border.BTLPartManager.Border}"
BorderThickness="2"
CornerRadius="5"
Margin="0"
Padding="0">
<dxb:BarItemMenuHeader ShowContentHeader="False"
ItemsOrientation="Horizontal"
Margin="0"
Padding="0">
<dxb:BarButtonItem Command="{Binding CopyPart_Command}"
ToolTip="{Binding CopyPart_ToolTip}"
IsEnabled="{Binding CopyPart_IsEnabled}"
Glyph="/Resources/LeftPanel/CopyPart.png"
Style="{StaticResource DropDownButton_BarButtonItem}">
<!--<Image Source="{StaticResource CopyPart_Image}"
Style="{StaticResource BTLDataWnd_Image}"/>-->
</dxb:BarButtonItem>
<dxb:BarButtonItem Command="{Binding RemovePart_Command}"
ToolTip="{Binding RemovePart_ToolTip}"
IsEnabled="{Binding RemovePart_IsEnabled}"
Glyph="/Resources/LeftPanel/RemovePart.png"
Style="{StaticResource DropDownButton_BarButtonItem}">
<!--<Image Source="{StaticResource Remove_Image}"
Style="{StaticResource BTLDataWnd_Image}"/>-->
</dxb:BarButtonItem>
<dxb:BarButtonItem ToolTip="{Binding Simulate_ToolTip}"
Command="{Binding Simulate_Command}"
IsEnabled="{Binding Simulate_IsEnabled}"
Glyph="/Resources/CALCPanel/Simulate.png"
Style="{StaticResource DropDownButton_BarButtonItem}">
<!--<Image Source="{StaticResource Simulate_Image}"
Style="{StaticResource BTLDataWnd_Image}"/>-->
</dxb:BarButtonItem>
<dxb:BarButtonItem ToolTip="{Binding Edit_ToolTip}"
Command="{Binding Edit_Command}"
IsEnabled="{Binding Edit_IsEnabled}"
Glyph="/Resources/CALCPanel/Edit.png"
Style="{StaticResource DropDownButton_BarButtonItem}">
<!--<Image Source="{StaticResource Edit_Image}"
Style="{StaticResource BTLDataWnd_Image}"/>-->
</dxb:BarButtonItem>
<dxb:BarButtonItem Command="{Binding ResetCalc_Command}"
ToolTip="{Binding ResetCalc_ToolTip}"
IsEnabled="{Binding CALCPanel_IsEnabled}"
Glyph="/Resources/CALCPanel/ResetCalc.png"
Style="{StaticResource DropDownButton_BarButtonItem}">
<!--<Image Source="{StaticResource ResetCalc_Image}"
Style="{StaticResource BTLDataWnd_Image}"/>-->
</dxb:BarButtonItem>
</dxb:BarItemMenuHeader>
</dxb:PopupMenu>
<!--<Border x:Class="BTLPartManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{StaticResource BTLPartManagerVM}"
@@ -6,7 +68,6 @@
<StackPanel Style="{StaticResource PartManager_StackPanel}">
<Button Command="{Binding CopyPart_Command}"
Click="ClosePopUp_Click"
ToolTip="{Binding CopyPart_ToolTip}"
IsEnabled="{Binding CopyPart_IsEnabled}"
Style="{StaticResource LP_Button}">
@@ -14,7 +75,6 @@
Style="{StaticResource BTLDataWnd_Image}"/>
</Button>
<Button Command="{Binding RemovePart_Command}"
Click="ClosePopUp_Click"
ToolTip="{Binding RemovePart_ToolTip}"
IsEnabled="{Binding RemovePart_IsEnabled}"
Style="{StaticResource LP_Button}">
@@ -22,7 +82,6 @@
Style="{StaticResource BTLDataWnd_Image}"/>
</Button>
<Button ToolTip="{Binding Simulate_ToolTip}"
Click="ClosePopUp_Click"
Command="{Binding Simulate_Command}"
IsEnabled="{Binding Simulate_IsEnabled}"
Style="{StaticResource LP_Button}">
@@ -30,7 +89,6 @@
Style="{StaticResource BTLDataWnd_Image}"/>
</Button>
<Button ToolTip="{Binding Edit_ToolTip}"
Click="ClosePopUp_Click"
Command="{Binding Edit_Command}"
IsEnabled="{Binding Edit_IsEnabled}"
Style="{StaticResource LP_Button}">
@@ -38,7 +96,6 @@
Style="{StaticResource BTLDataWnd_Image}"/>
</Button>
<Button Command="{Binding ResetCalc_Command}"
Click="ClosePopUp_Click"
ToolTip="{Binding ResetCalc_ToolTip}"
IsEnabled="{Binding CALCPanel_IsEnabled}"
Style="{StaticResource LP_Button}">
@@ -47,4 +104,4 @@
</Button>
</StackPanel>
</Border>
</Border>-->
@@ -391,13 +391,6 @@ Public Class BTLPartManagerVM
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
If IsNothing(SelPart) Then Return
If SelPart.nGlobalState <> CalcStates.NOTCALCULATED Then
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(SelPart.nPartId, sInfoNgePart(0))
Next
End If
SelPart.ResetCalcTotalPart()
End If
End Sub
@@ -1369,13 +1369,13 @@ Public Class BTLPartVM
Public ReadOnly Property CALC_ROT_Visibility As Visibility
Get
Return If(m_BTLPartM.nCALC_ROT <> 0, Visibility.Visible, Visibility.Collapsed)
Return If(m_BTLPartM.nCALC_ROT <> 0, Visibility.Visible, Visibility.Hidden)
End Get
End Property
Public ReadOnly Property CALC_FALL_Visibility As Visibility
Get
Return If(m_BTLPartM.nCALC_FALL <> 0, Visibility.Visible, Visibility.Collapsed)
Return If(m_BTLPartM.nCALC_FALL <> 0, Visibility.Visible, Visibility.Hidden)
End Get
End Property
@@ -1683,13 +1683,6 @@ Public Class BTLPartVM
Set(value As Boolean)
' eseguo inversione
m_BTLPartM.Inversion(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId, sInfoNgePart(0))
Next
End If
' setto part e tutte le feature da ricalcolare
ResetCalcTotalPart()
EgtDraw()
@@ -1880,16 +1873,7 @@ Public Class BTLPartVM
NotifyPropertyChanged(NameOf(sH))
NotifyPropertyChanged(NameOf(sL))
' setto part e tutte le feature da ricalcolare
If bResetCalc Then
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId, sInfoNgePart(0))
Next
End If
ResetCalcTotalPart()
End If
If Not bResetCalc Then ResetCalcTotalPart()
' aggiorno sezioni
Map.refProjectVM.BTLStructureVM.UpdateSection(Section, OldSection)
End If
@@ -996,6 +996,9 @@
<PackageReference Include="BouncyCastle">
<Version>1.8.5</Version>
</PackageReference>
<PackageReference Include="DevExpress.Wpf">
<Version>25.2.5</Version>
</PackageReference>
<PackageReference Include="EgwMultiEngineManager.Core">
<Version>3.1.1.2</Version>
</PackageReference>
@@ -1,4 +1,5 @@
Imports System.IO
Imports EgtBEAMWALL.Core.ConstBeam
Imports EgtBEAMWALL.Core.ConstIni
Imports EgtUILib
Imports EgtWPFLib5
@@ -15,13 +16,6 @@ Module MyExecProcessManager
End Get
End Property
Private m_sInfoNgePartList As New List(Of String)
Public ReadOnly Property sInfoNgePartList As List(Of String)
Get
Return m_sInfoNgePartList
End Get
End Property
Friend Function Init() As Boolean
' creazione manager dei processi
Dim sCamExePath As String = ""
@@ -74,7 +68,6 @@ Module MyExecProcessManager
End Function
Private Sub ExecProcessManager_AnswerReceived(Answer As AnswerDTO)
m_sInfoNgePartList.Clear()
Map.refMyStatusBarVM.SetLoadingProgress_Visibility(True)
Dim sBarPath As String = Answer.Args("BarPath")
Dim nProgramPage As Integer = -1
@@ -84,35 +77,19 @@ Module MyExecProcessManager
EgtOutLog("Risultato progetto " & nBarId)
CALCPanelVM.ProcessResults(sBarPath, nProgramPage, nBarId)
If Answer.Args.Count > 4 Then
Dim PartItem As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nBarId)
Dim nPreInvert As Integer = -1
Dim bPreInvert As Boolean = False
If Answer.Args.ContainsKey("PREINVERT") Then
Integer.TryParse(Answer.Args("PREINVERT"), nPreInvert)
End If
Integer.TryParse(Answer.Args("PREINVERT"), nPreInvert)
If nPreInvert = 1 Then bPreInvert = True
Dim nPreRotate As Integer = -1
If Answer.Args.ContainsKey("PREROTATE90") Then
Integer.TryParse(Answer.Args("PREROTATE90"), nPreRotate)
End If
Integer.TryParse(Answer.Args("PREROTATE90"), nPreRotate)
Dim dAng As Integer = nPreRotate * 90
Dim BTLPartItem As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nBarId)
If nPreInvert > 0 Then
If nPreInvert = 1 Then bPreInvert = True
If PartItem.IsInverted Then bPreInvert = False
PartItem.SetInverted(bPreInvert)
If BTLPartItem.IsInverted Then bPreInvert = False
BTLPartItem.SetInverted(bPreInvert)
End If
If nPreRotate > 0 Then
Dim dAng As Integer = nPreRotate * 90
PartItem.ForwardRotation(True, True, dAng, False)
End If
Dim prefix As String = "INFONGEPART_"
m_sInfoNgePartList = Answer.Args.Where(Function(k) k.Key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)).Select(Function(k) k.Value).ToList()
For Each InfoNgePartItem As String In sInfoNgePartList
Dim sKeyVal() As String = InfoNgePartItem.Trim().Split("="c)
EgtSetInfo(PartItem.nPartId, sKeyVal(0), sKeyVal(1))
Next
If nPreRotate > 0 Then BTLPartItem.ForwardRotation(True, True, dAng, False)
End If
' Gestione progressbar per verificare l'inizio e la fine della verifica
Dim BeamManager As ExecProcessManager = m_ExecProcessManagerList(EXECENVIRONMENTS.BEAM)
@@ -76,8 +76,8 @@
Style="{StaticResource ProjectParameters_UniformGrid}">
<TextBlock Text="{Binding sDescriptionShort}"
Style="{StaticResource ProjectParameters_TextBlock}"/>
<ComboBox ItemsSource="{Binding ComboList}"
SelectedItem="{Binding SelValue}"
<ComboBox ItemsSource="{Binding ComboList, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelValue, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="sValue"
Style="{StaticResource ProjectParameters_ComboBox}">
</ComboBox>
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,11 @@
Imports System.Reflection
Imports System.IO
Imports System.Reflection
Imports DevExpress.Data
Imports DevExpress.Skins
Imports DevExpress.Xpf.Bars
Imports DevExpress.Xpf.Core.Serialization
Imports DevExpress.Xpf.Grid
Imports EgtBEAMWALL.Core
Public Class BTLPartListV
@@ -8,14 +15,127 @@ Public Class BTLPartListV
Private m_isDraggingSelectionField As FieldInfo
Private m_endDraggingMethod As MethodInfo
Private m_sDataGridLayoutPath As String = ""
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
m_BTLPartListVM = DataContext
' Evita il drag sulla selezione multipla
m_isDraggingSelectionField = m_DataGridType.GetField("_isDraggingSelection", BindingFlags.Instance Or BindingFlags.NonPublic)
m_endDraggingMethod = m_DataGridType.GetMethod("EndDragging", BindingFlags.Instance Or BindingFlags.NonPublic)
'm_isDraggingSelectionField = m_DataGridType.GetField("_isDraggingSelection", BindingFlags.Instance Or BindingFlags.NonPublic)
'm_endDraggingMethod = m_DataGridType.GetMethod("EndDragging", BindingFlags.Instance Or BindingFlags.NonPublic)
m_sDataGridLayoutPath = Path.GetDirectoryName(DataGridColumnsIniFile.m_sDataGridColumnsIniFile) & "\NewDataGridLayoutFile.json"
For Each Column In BTLPart_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()
BTLPart_GridControl.SaveLayoutToJson(m_sDataGridLayoutPath)
End Sub
Public Sub IsVisibleGroupSummary(bValue As Boolean)
If bValue AndAlso BTLPart_GridControl.GroupSummary.Count = 0 Then
BTLPart_GridControl.GroupSummary.Clear()
Dim PDNGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nPDN",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Count,
.ShowInGroupColumnFooter = "nPDN"}
BTLPart_GridControl.GroupSummary.Add(PDNGroupSummaryItem)
Dim CNTGroupSummaryItem As New GridSummaryItem() With {.FieldName = "sCNT",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "sCNT"}
BTLPart_GridControl.GroupSummary.Add(CNTGroupSummaryItem)
Dim ADDEDGroupSummaryItem As New GridSummaryItem() With {.FieldName = "sADDED",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "sADDED"}
BTLPart_GridControl.GroupSummary.Add(ADDEDGroupSummaryItem)
Dim INPRODGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nINPROD",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "nINPROD"}
BTLPart_GridControl.GroupSummary.Add(INPRODGroupSummaryItem)
Dim DONEGroupSummaryItem As New GridSummaryItem() With {.FieldName = "nDONE",
.DisplayFormat = "{0}",
.SummaryType = SummaryItemType.Sum,
.ShowInGroupColumnFooter = "nDONE"}
BTLPart_GridControl.GroupSummary.Add(DONEGroupSummaryItem)
End If
BTLPart_TableView.ShowGroupFooters = bValue
End Sub
Public Sub Me_Loaded() Handles Me.Loaded
' imposto DataContext
m_BTLPartListVM = DataContext
' imposto riferimento ad action per salvataggio layout tabella
m_BTLPartListVM.refSaveBTLPartGridControlLayout = AddressOf SaveBTLPartGridControlLayout
' rispristino layout tabella
If Not IsNothing(m_sDataGridLayoutPath) AndAlso File.Exists(m_sDataGridLayoutPath) Then
BTLPart_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
' 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 = (BTLPart_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(BTLPart_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(BTLPart_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
Dim item As ColumnBase = CType(info.Column, ColumnBase)
item.Width = New GridColumnWidth(1, GridColumnUnitType.Auto)
BTLPart_TableView.UpdateLayout()
item.Width = item.ActualWidth
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
End Sub
Public Sub DataGrid_PreviewMouseMove(sender As Object, e As MouseEventArgs)
@@ -115,4 +235,5 @@ Public Class SettingsBtnVerticalOffsetMultiConverter
Public Function ConvertBack(value As Object, targetTypes() As Type, parameter As Object, culture As Globalization.CultureInfo) As Object() Implements IMultiValueConverter.ConvertBack
Throw New NotImplementedException()
End Function
End Class
@@ -9,6 +9,8 @@ Public Class BTLPartListVM
#Region "FIELDS & PROPERTIES"
Friend refSaveBTLPartGridControlLayout As Action
Private m_colPart_Do As EgwWPFBaseLib.ColumnLayout
Public ReadOnly Property colPart_Do As EgwWPFBaseLib.ColumnLayout
Get
@@ -207,6 +209,12 @@ Public Class BTLPartListVM
#End Region ' Constructor
Friend Sub Close()
If Not IsNothing(refSaveBTLPartGridControlLayout) Then
refSaveBTLPartGridControlLayout()
End If
End Sub
End Class
Class DataGridCellBorderThicknessConverter
@@ -240,7 +248,7 @@ Class ProjIdToBtlFileName
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
If TypeOf value IsNot Integer Then Return ""
If TypeOf value IsNot String Then Return ""
Dim nProjId As Integer = CInt(value)
Dim ProjModel As EgtBEAMWALL.DataLayer.DatabaseModels.ProjModel = DbControllers.m_ProjController.FindByProjId(nProjId)
If IsNothing(ProjModel) Then Return ""
@@ -141,19 +141,9 @@ Public Class PParameterListVM
End Property
Public Sub Ok()
If Map.refProjectVM.BTLStructureVM.SelBTLPart.nGlobalState <> CalcStates.NOTCALCULATED Then
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId, sInfoNgePart(0))
Next
End If
Map.refProjectVM.BTLStructureVM.SelBTLPart.ResetCalcPart()
Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.ResetCalcFeature()
End If
Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.ResetCalcFeature()
Map.refProjectVM.BTLStructureVM.SelBTLPart.ResetCalcPart()
Map.refForcedStrategyPanelVM.ForcedStrategy()
Map.refProjectVM.SetRawPartManagerVisibility(True)
Map.refProjectVM.SetStrategyManagerVisibility(False)
Map.refProjectVM.SetSelManagerTab(ProjectVM.StrategyManagerTab.RAWPARTMANAGER)
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
@@ -355,13 +355,6 @@ Public Class LeftPanelVM
Map.refCALCPanelVM.SetCalculating(False)
For Each Part In Map.refProjectVM.BTLStructureVM.BTLPartVMList
If Part.nGlobalState <> CalcStates.NOTCALCULATED Then
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(Part.nPartId, sInfoNgePart(0))
Next
End If
' resetto stato dei calcoli
Part.ResetCalcTotalPart()
End If
@@ -427,6 +427,9 @@ Public Class MainWindowVM
{S_FEATUREINPARTINRAWPARTLIST, Map.refFeatureInPartInRawPartListVM.FeatureInPartInRawPartColumns},
{S_PARAMETERLIST_P, Map.refPParameterListVM.PParameterListColumns}}
EgwWPFBaseLib.EgwDataGrid.WriteColumnLayout(DataGridColumnsIniFile.m_sDataGridColumnsIniFile, DataGridColumnDictionary)
Map.refPartListVM.Close()
Map.refRawPartListVM.Close()
End If
' Termino il Model
m_MainWindowM.Close()
@@ -67,5 +67,5 @@ Imports System.Windows
' Revision
'
<Assembly: AssemblyVersion("3.1.5.2")>
<Assembly: AssemblyFileVersion("3.1.5.2")>
<Assembly: AssemblyVersion("3.1.4.7")>
<Assembly: AssemblyFileVersion("3.1.4.7")>
+5 -26
View File
@@ -696,7 +696,7 @@ Public Class ProjectVM
EgtGetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, GeneralParameter.sNameNge, sTmpValueInfo)
DirectCast(GeneralParameter, ComboGenericParameter).SelValue = DirectCast(GeneralParameter, ComboGenericParameter).ComboList.FirstOrDefault(Function(x) x.sValue = sTmpValueInfo)
Else
DirectCast(GeneralParameter, ComboGenericParameter).SelValue = DirectCast(GeneralParameter, ComboGenericParameter).ComboList.FirstOrDefault(Function(x) x.sValue = sTmpComboValue)
DirectCast(GeneralParameter, ComboGenericParameter).SelValue.sValue = sTmpComboValue
SetGeneralParameters(False)
End If
Case GetType(StringGenericParameter)
@@ -823,12 +823,7 @@ Public Class ProjectVM
Dim sTmpStrategySetup As String = String.Empty
Dim nBTLInfoLayerId As Integer = 0
If bValuePart Then
If m_SelStrategySetup Is String.Empty Then
nBTLInfoLayerId = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
EgtGetInfo(nBTLInfoLayerId, AI_SETUP, m_SelStrategySetup)
Else
EgtGetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, AI_SETUP, m_SelStrategySetup)
End If
EgtGetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, AI_SETUP, m_SelStrategySetup)
Else
nBTLInfoLayerId = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
EgtGetInfo(nBTLInfoLayerId, AI_SETUP, sStrategyBTLSetup)
@@ -1034,14 +1029,7 @@ Public Class ProjectVM
Public Sub Ok()
NotifyPropertyChanged(NameOf(GeneralParametersList))
If m_SelStrategySetup Is String.Empty Then
Dim nBTLInfoLayerId As Integer = 0
nBTLInfoLayerId = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
EgtGetInfo(nBTLInfoLayerId, AI_SETUP, m_SelStrategySetup)
EgtSetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, AI_SETUP, m_SelStrategySetup)
Else
EgtSetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, AI_SETUP, m_SelStrategySetup)
End If
EgtSetInfo(m_BTLStructureVM.SelBTLPart.BTLPartM.nPartId, AI_SETUP, m_SelStrategySetup)
Dim sInfo As String = String.Empty
If m_bSaveGeneralParameters Then
For Each GeneralParameter In m_GeneralParametersList
@@ -1095,17 +1083,8 @@ Public Class ProjectVM
Next
m_BTLStructureVM.SelBTLPart.SetStrategyModify_Visibility(False)
End If
If Map.refProjectVM.BTLStructureVM.SelBTLPart.nGlobalState <> CalcStates.NOTCALCULATED Then
' Resetto info
If MyExecProcessManager.sInfoNgePartList.Count > 0 Then
For Each InfoNgePart As String In MyExecProcessManager.sInfoNgePartList
Dim sInfoNgePart As String() = InfoNgePart.Split("="c)
EgtRemoveInfo(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId, sInfoNgePart(0))
Next
End If
Map.refProjectVM.BTLStructureVM.SelBTLPart.ResetCalcPart()
If Not IsNothing(m_BTLStructureVM.SelBTLPart.SelBTLFeatureVM) Then m_BTLStructureVM.SelBTLPart.SelBTLFeatureVM.ResetCalcFeature()
End If
If Not IsNothing(m_BTLStructureVM.SelBTLPart.SelBTLFeatureVM) Then m_BTLStructureVM.SelBTLPart.SelBTLFeatureVM.ResetCalcFeature()
Map.refProjectVM.BTLStructureVM.SelBTLPart.ResetCalcPart()
If Map.refProdManagerVM.ListProjAsseBase.Count > 0 Then UpdatePart(m_BTLStructureVM.SelBTLPart.nPartId)
SetRawPartManagerVisibility(True)
SetStrategyManagerVisibility(False)
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtBEAMWALL.Core
Imports EgtUILib
Imports EgtWPFLib5
+10 -2
View File
@@ -3,6 +3,7 @@
xmlns:OPTIMIZER="clr-namespace:EgtBEAMWALL.Optimizer"
xmlns:EgtBEAMWALLCore="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2">
<!--#region Panel ViewModel-->
@@ -514,7 +515,6 @@
<Style x:Key="Rotate_TextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Width" Value="25"/>
<Setter Property="Margin" Value="2,0,2,0"/>
</Style>
@@ -836,6 +836,14 @@
<Setter Property="Margin" Value="2.5,2.5,2.5,2.5"/>
</Style>
<Style x:Key="DropDownButton_BarButtonItem" TargetType="{x:Type dxb:BarButtonItem}">
<Setter Property="Background" Value="{StaticResource ButtonBasic.Static.Background}"/>
<Setter Property="BorderBrush" Value="{StaticResource ButtonBasic.Static.Border}"/>
<Setter Property="BorderThickness" Value="0.5"/>
<Setter Property="CornerRadius" Value="3"/>
<Setter Property="GlyphSize" Value="Medium"/>
</Style>
<Style x:Key="MacroFeaturen_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource ProdManager_Button}">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Margin" Value="2.5,2.5,10,2.5"/>
@@ -2561,7 +2569,7 @@
<Setter Property="Background" Value="{DynamicResource Border.BTLPartManager.Background}"/>
<Setter Property="BorderBrush" Value="{DynamicResource Border.BTLPartManager.Border}"/>
<Setter Property="CornerRadius" Value="5"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style x:Key="SetUp_Border" TargetType="{x:Type Border}">
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.1.5.2")>
<Assembly: AssemblyFileVersion("3.1.5.2")>
<Assembly: AssemblyVersion("3.1.4.7")>
<Assembly: AssemblyFileVersion("3.1.4.7")>