From ce50bc2964747d873ae57b634ae3fda70aab19b3 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Wed, 28 Jan 2026 21:47:49 +0100 Subject: [PATCH] Vererbung Werte 1 --- app/TaskFlow/App.config | 3 +- app/TaskFlow/ClassConfig.vb | 6 + app/TaskFlow/ClassParamRefresh.vb | 19 + app/TaskFlow/ControlCreator/GridControl.vb | 70 +- app/TaskFlow/ModuleRuntimeVariables.vb | 1 + app/TaskFlow/TaskFlow.vbproj | 98 +- .../frmValidator_Strings.Designer.vb | 27 + .../Translations/frmValidator_Strings.en.resx | 12 +- .../Translations/frmValidator_Strings.fr.resx | 12 +- .../Translations/frmValidator_Strings.resx | 9 + app/TaskFlow/frmValidator.Designer.vb | 10 +- app/TaskFlow/frmValidator.resx | 406 +++-- app/TaskFlow/frmValidator.vb | 16 +- app/TaskFlow/packages.config | 8 +- app/TaskFlow/taskFLOW.vbproj.backup | 1352 +++++++++++++++++ app/update_devexpress.ps1 | 35 + app/update_devexpress_refs.py | 28 + 17 files changed, 1896 insertions(+), 216 deletions(-) create mode 100644 app/TaskFlow/taskFLOW.vbproj.backup create mode 100644 app/update_devexpress.ps1 create mode 100644 app/update_devexpress_refs.py diff --git a/app/TaskFlow/App.config b/app/TaskFlow/App.config index 6b99ad9..7f1f817 100644 --- a/app/TaskFlow/App.config +++ b/app/TaskFlow/App.config @@ -102,8 +102,7 @@ - + diff --git a/app/TaskFlow/ClassConfig.vb b/app/TaskFlow/ClassConfig.vb index f60faf7..70b53ac 100644 --- a/app/TaskFlow/ClassConfig.vb +++ b/app/TaskFlow/ClassConfig.vb @@ -22,6 +22,7 @@ Public Class ClassConfig ' Digital Data Settings Public Property UserManagerPath As String = "" + Public Property UserInheritance_ConfirmationByColumn As New List(Of UserInheritanceConfirmation) ' File Settings Public Property VersionDelimiter As String = "~" @@ -51,4 +52,9 @@ Public Class ClassConfig Public Property ShowFile As Boolean = True Public Property ShowSearchesDirect As Boolean = True End Class + + Public Class UserInheritanceConfirmation + Public Property ColumnName As String = "" + Public Property Count As Integer + End Class End Class diff --git a/app/TaskFlow/ClassParamRefresh.vb b/app/TaskFlow/ClassParamRefresh.vb index 04efa2c..042aaf4 100644 --- a/app/TaskFlow/ClassParamRefresh.vb +++ b/app/TaskFlow/ClassParamRefresh.vb @@ -219,6 +219,25 @@ Public Class ClassParamRefresh Catch ex As Exception TITLE_NOTIFICATIONS = "" End Try + ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") Then + Dim oParam = oMode.Replace("TF.InheritanceMsgAmount=", "") + Try + InheritanceMsgAmount = oParam + Catch ex As Exception + + End Try + ElseIf oMode.StartsWith("TF.InheritanceCalcReset") Then + Dim oParam = oMode.Replace("TF.InheritanceCalcReset=", "") + Try + If CBool(oParam) = True Then + LOGGER.Info("InheritanceMsgAmount wird auf 0 zurückgesetzt") + + CONFIG.Config.UserInheritance_ConfirmationByColumn = Nothing + CONFIG.Save() + End If + Catch ex As Exception + + End Try ElseIf oMode.StartsWith("PM.START_CW") Then Dim oAfterReplace = oMode.Replace("PM.START_CW=", "") Try diff --git a/app/TaskFlow/ControlCreator/GridControl.vb b/app/TaskFlow/ControlCreator/GridControl.vb index 10bece9..7e679f6 100644 --- a/app/TaskFlow/ControlCreator/GridControl.vb +++ b/app/TaskFlow/ControlCreator/GridControl.vb @@ -15,6 +15,7 @@ Imports System.Text.RegularExpressions Imports System.Globalization Imports DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper Imports DevExpress.XtraEditors.Mask +Imports System.Windows.Forms Namespace ControlCreator Public Class GridControl @@ -377,10 +378,48 @@ Namespace ControlCreator Return End If + ' Benutzerbestätigung für Wertvererbung + Dim valueToApply = pArgs.Value + Dim affectedRowsCount = pView.DataRowCount - listIndex - 1 + + Dim confirmationEntry = GetInheritanceConfirmationEntry(pArgs.Column.FieldName) + + If affectedRowsCount > 0 AndAlso confirmationEntry.Count < InheritanceMsgAmount Then + Dim confirmMessage As String = String.Format( + "Möchten Sie den Wert '{0}' an {1} nachfolgende Zeile(n) vererben?", + valueToApply, + affectedRowsCount) + If USER_LANGUAGE <> "de-DE" Then + confirmMessage = String.Format( + "Do you want to inherit the value '{0}' to {1} subsequent row(s)?", + valueToApply, + affectedRowsCount) + End If + Dim confirmTitle As String = "Wertevererbung bestätigen" + If USER_LANGUAGE <> "de-DE" Then + confirmTitle = "Confirm Value Inheritance" + End If + Dim result = MessageBox.Show( + confirmMessage, + confirmTitle, + MessageBoxButtons.YesNo, + MessageBoxIcon.Question, + MessageBoxDefaultButton.Button1) + + If result <> DialogResult.Yes Then + _Logger.Debug("User cancelled value inheritance") + Return + End If + + confirmationEntry.Count += 1 + CONFIG.Save() + _Logger.Info("User confirmed value inheritance. Confirmation count: {0}", confirmationEntry.Count) + ElseIf affectedRowsCount > 0 Then + _Logger.Info("Skipping confirmation dialog (already confirmed {0} times)", confirmationEntry.Count) + End If isApplyingInheritedValue = True Try - Dim valueToApply = pArgs.Value - _Logger.Debug(String.Format("Inherit Value is active for column. So inheritting the value [{0}]...", valueToApply)) + _Logger.Info(String.Format("Inherit Value is active for column. So inheritting the value [{0}]...", valueToApply)) For dataIndex As Integer = listIndex + 1 To pView.DataRowCount - 1 Dim targetHandle = pView.GetRowHandle(dataIndex) If targetHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle OrElse pView.IsGroupRow(targetHandle) Then @@ -402,6 +441,25 @@ Namespace ControlCreator isApplyingInheritedValue = False End Try End Sub + + Private Function GetInheritanceConfirmationEntry(columnName As String) As ClassConfig.UserInheritanceConfirmation + Dim entries = CONFIG.Config.UserInheritance_ConfirmationByColumn + If entries Is Nothing Then + entries = New List(Of ClassConfig.UserInheritanceConfirmation)() + CONFIG.Config.UserInheritance_ConfirmationByColumn = entries + End If + + Dim entry = entries.FirstOrDefault(Function(item) String.Equals(item.ColumnName, columnName, StringComparison.OrdinalIgnoreCase)) + If entry Is Nothing Then + entry = New ClassConfig.UserInheritanceConfirmation With { + .ColumnName = columnName, + .Count = 0 + } + entries.Add(entry) + End If + + Return entry + End Function Private Sub View_CustomColumnDisplayText(ByVal eSender As Object, ByVal e As CustomColumnDisplayTextEventArgs) If IsNothing(e.Value) Then Exit Sub @@ -423,21 +481,21 @@ Namespace ControlCreator Dim oColumnName As String = oFocusedColumn.FieldName If e.MenuType = GridMenuType.Column AndAlso oColumnType Is GetType(Boolean) Then - e.Menu.Items.Add(New Menu.DXMenuItem( + e.Menu.Items.Add(New DevExpress.Utils.Menu.DXMenuItem( "Alle Zeilen anhaken", Sub(_sender As Object, _e As EventArgs) SetCellValuesForBooleanColumn(view, oColumnName, True) End Sub, My.Resources.itemtypechecked, - Menu.DXMenuItemPriority.Normal)) + DevExpress.Utils.Menu.DXMenuItemPriority.Normal)) - e.Menu.Items.Add(New Menu.DXMenuItem( + e.Menu.Items.Add(New DevExpress.Utils.Menu.DXMenuItem( "Alle Zeilen abhaken", Sub(_sender As Object, _e As EventArgs) SetCellValuesForBooleanColumn(view, oColumnName, False) End Sub, My.Resources.itemtypechecked, - Menu.DXMenuItemPriority.Normal)) + DevExpress.Utils.Menu.DXMenuItemPriority.Normal)) End If End Sub diff --git a/app/TaskFlow/ModuleRuntimeVariables.vb b/app/TaskFlow/ModuleRuntimeVariables.vb index d7a7a27..4c5bd05 100644 --- a/app/TaskFlow/ModuleRuntimeVariables.vb +++ b/app/TaskFlow/ModuleRuntimeVariables.vb @@ -94,6 +94,7 @@ Module ModuleRuntimeVariables Public Property POPUP_REMINDER_ACTIVE As Boolean = True Public Property INACTIVITY_DURATION As Integer = 0 Public Property INACTIVITYRecognized As Boolean = False + Public Property InheritanceMsgAmount As Integer = 5 Public Property LAST_EDITED_COLUMN As String = "NONE" Public Property LAST_ADDED_COLUMN As String = "NONE" Public Property MON_EDITED_COLUMN As String = "NONE" diff --git a/app/TaskFlow/TaskFlow.vbproj b/app/TaskFlow/TaskFlow.vbproj index ba80ec5..12fafb7 100644 --- a/app/TaskFlow/TaskFlow.vbproj +++ b/app/TaskFlow/TaskFlow.vbproj @@ -1,5 +1,5 @@  - + Debug @@ -151,9 +151,9 @@ False - + False - ..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll + ..\..\..\..\2_DLL Projekte\Controls.DocumentViewer\obj\Debug\DigitalData.Controls.DocumentViewer.dll ..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll @@ -178,7 +178,7 @@ ..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll - ..\..\..\..\2_DLL Projekte\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll + P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.EDMI.API.dll False @@ -189,12 +189,15 @@ P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.Interfaces.dll - ..\..\..\..\2_DLL Projekte\DDModules\License\bin\Debug\DigitalData.Modules.License.dll + P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\11_2025\DigitalData.Modules.License.dll False ..\..\..\..\2_DLL Projekte\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll + + ..\..\..\..\2_DLL Projekte\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + False ..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll @@ -231,68 +234,95 @@ P:\Visual Studio Projekte\Bibliotheken\FormsUtils.dll - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.DWG.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Common.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Document.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Email.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.HTML.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll + True + + + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Markdown.dll - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenDocument.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.PDF.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.RTF.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.SVG.dll + True - ..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll + ..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.wia.gateway.dll True + True + + + ..\packages\Google.Protobuf.3.33.2\lib\net45\Google.Protobuf.dll P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll @@ -326,6 +356,15 @@ ..\packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Exceptions.dll + + + ..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.dll + + + ..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.Edition.dll + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -417,6 +456,9 @@ ..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll + + ..\packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll @@ -1338,10 +1380,10 @@ - + - + + \ No newline at end of file diff --git a/app/update_devexpress.ps1 b/app/update_devexpress.ps1 new file mode 100644 index 0000000..149569a --- /dev/null +++ b/app/update_devexpress.ps1 @@ -0,0 +1,35 @@ +$vbprojPath = "TaskFlow\taskFLOW.vbproj" +$devExpressBasePath = "D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework" +$content = Get-Content $vbprojPath -Raw + +# Liste aller DevExpress-Referenzen, die aktualisiert werden müssen +$replacements = @( + @{ + Old = ' + False + ' + New = ' + False + D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.Charts.v21.2.Core.dll + ' + }, + @{ + Old = ' ' + New = ' + D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.CodeParser.v21.2.dll + ' + }, + @{ + Old = ' ' + New = ' + D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.Data.v21.2.dll + ' + } +) + +foreach ($replacement in $replacements) { + $content = $content.Replace($replacement.Old, $replacement.New) +} + +Set-Content $vbprojPath $content -NoNewline +Write-Host "Updated DevExpress references" diff --git a/app/update_devexpress_refs.py b/app/update_devexpress_refs.py new file mode 100644 index 0000000..13df2ec --- /dev/null +++ b/app/update_devexpress_refs.py @@ -0,0 +1,28 @@ +import re + +vbproj_path = r"TaskFlow\taskFLOW.vbproj" +devexpress_base_path = r"D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework" + +with open(vbproj_path, 'r', encoding='utf-8') as f: + content = f.read() + +# Pattern for DevExpress references without HintPath +pattern = r'(]*>)\s*(False)?\s*()' + +def replace_func(match): + full_ref = match.group(1) + dll_name = re.sub(r',.*$', '', match.group(2)) + specific_version = match.group(3) + dll_filename = f"{dll_name}.dll" + + if specific_version: + return f"{full_ref}\r\n {specific_version}\r\n {devexpress_base_path}\\{dll_filename}\r\n " + else: + return f"{full_ref}\r\n {devexpress_base_path}\\{dll_filename}\r\n " + +new_content = re.sub(pattern, replace_func, content) + +with open(vbproj_path, 'w', encoding='utf-8') as f: + f.write(new_content) + +print("DevExpress references updated successfully")