From eafd42d30256aefb841e07c2de7b8de91f3994b8 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Wed, 26 Aug 2026 14:50:04 +0200 Subject: [PATCH] Verbesserungen an Cockpit- und Benutzerverwaltung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Neue Imports hinzugefügt für erweiterte Funktionalitäten. - `LoadInAction` durch `Load_CP_InAction` ersetzt. - `Load_CFG_COCKPIT` überarbeitet: Sortierung, Validierung, Logging. - `LookUpEdit1` durch `LookUpEditCockpit` ersetzt. - Neue Methode `Display_Added_Changed` für Änderungsinfos. - Methoden für Cockpit-Management hinzugefügt (Hinzufügen, Löschen, Speichern). - Verbesserte Fehlerbehandlung und Benutzerfreundlichkeit in `Add_Node`. - `bsitm_info_Display` erweitert für farbliche Statusanzeigen. - `SelectUser` hinzugefügt für vereinfachte Benutzerauswahl. - Anpassungen in `frmUserSelect`: Layout, Schriftart, Titel. - Verbesserte Logik für `ComboBox`- und `GridControl`-Updates in `frmValidator`. - Änderungen an `taskFLOW.vbproj`, um mögliche Build-Probleme zu beheben. --- app/TaskFlow/ClassControlCreator.vb | 105 +- app/TaskFlow/ModuleControlProperties.vb | 8 + app/TaskFlow/TaskFlow.vbproj | 2 +- app/TaskFlow/frmAdministration.resx | 2866 +++++++++++++-------- app/TaskFlow/frmCockpitConfig.Designer.vb | 274 +- app/TaskFlow/frmCockpitConfig.resx | 58 + app/TaskFlow/frmCockpitConfig.vb | 331 ++- app/TaskFlow/frmFormDesigner.vb | 5 + app/TaskFlow/frmUserSelect.Designer.vb | 24 +- app/TaskFlow/frmUserSelect.vb | 10 +- app/TaskFlow/frmValidator.vb | 116 +- 11 files changed, 2609 insertions(+), 1190 deletions(-) diff --git a/app/TaskFlow/ClassControlCreator.vb b/app/TaskFlow/ClassControlCreator.vb index 67acb00..2a31286 100644 --- a/app/TaskFlow/ClassControlCreator.vb +++ b/app/TaskFlow/ClassControlCreator.vb @@ -872,7 +872,7 @@ Public Class ClassControlCreator ' Schritt 1 - Sichere ALLE Lookup-Werte VOR SQL-Reload ' ============================================================================ Dim lookupBackups As New Dictionary(Of String, Object) - + Dim comboBoxBackups As New Dictionary(Of String, Object) For Each oControl As Control In pControlPanel.Controls If TypeOf oControl Is LookupControl3 Then Try @@ -886,6 +886,18 @@ Public Class ClassControlCreator Catch ex As Exception Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Backup von Lookup: {ex.Message}") End Try + ElseIf TypeOf oControl Is Windows.Forms.ComboBox Then + Try + Dim comboBox = DirectCast(oControl, Windows.Forms.ComboBox) + If comboBox.SelectedItem IsNot Nothing OrElse Not String.IsNullOrEmpty(comboBox.Text) Then + Dim controlName As String = comboBox.Name + ' Speichere sowohl SelectedItem als auch Text für Fallback + comboBoxBackups(controlName) = If(comboBox.SelectedItem, comboBox.Text) + Logger.Debug($"GridTables_HandleControlValueChange -> Backup für ComboBox [{controlName}]: [{comboBoxBackups(controlName)}]") + End If + Catch ex As Exception + Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Backup von ComboBox: {ex.Message}") + End Try End If Next @@ -964,8 +976,99 @@ Public Class ClassControlCreator End If Next End If + ' ============================================================================ + ' Schritt 4 - Prüfe und restauriere ComboBox-Werte mit SQL-Abhängigkeiten + ' ============================================================================ + If comboBoxBackups.Count > 0 Then + Logger.Debug($"GridTables_HandleControlValueChange -> Prüfe {comboBoxBackups.Count} ComboBoxes auf Wiederherstellung...") + + For Each oControl As Control In pControlPanel.Controls + If TypeOf oControl Is Windows.Forms.ComboBox Then + Try + Dim comboBox = DirectCast(oControl, Windows.Forms.ComboBox) + Dim controlName As String = comboBox.Name + + If comboBoxBackups.ContainsKey(controlName) Then + Dim oldValue = comboBoxBackups(controlName) + RestoreComboBoxValue(comboBox, oldValue, controlName) + End If + + Catch ex As Exception + Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Prüfen von ComboBox: {ex.Message}") + Logger.Error(ex) + End Try + End If + Next + End If End Sub + Private Sub RestoreComboBoxValue(comboBox As Windows.Forms.ComboBox, oldValue As Object, controlName As String) + If comboBox Is Nothing OrElse oldValue Is Nothing Then + Logger.Warn($"RestoreComboBoxValue -> [{controlName}] Ungültige Parameter") + Return + End If + + Try + Dim oldValueStr As String = oldValue.ToString() + + ' Prüfe ob der alte Wert noch in der ComboBox Items vorhanden ist + Dim itemFound As Boolean = False + + For Each item As Object In comboBox.Items + If item IsNot Nothing AndAlso item.ToString().Equals(oldValueStr, StringComparison.OrdinalIgnoreCase) Then + itemFound = True + Exit For + End If + Next + + If itemFound Then + ' Versuche den Wert wiederherzustellen + Dim currentSelection As String = If(comboBox.SelectedItem?.ToString(), comboBox.Text) + + If Not String.Equals(currentSelection, oldValueStr, StringComparison.OrdinalIgnoreCase) Then + ' Event-Guard temporär aktivieren um Endlosschleifen zu vermeiden + Dim oldGuard As Boolean = GlobalLookupEventGuard + GlobalLookupEventGuard = True + + Try + comboBox.SelectedIndex = -1 + Application.DoEvents() + + ' Suche und setze das Item + For i As Integer = 0 To comboBox.Items.Count - 1 + If comboBox.Items(i).ToString().Equals(oldValueStr, StringComparison.OrdinalIgnoreCase) Then + comboBox.SelectedIndex = i + Exit For + End If + Next + + comboBox.Refresh() + Application.DoEvents() + + ' Validierung + Dim newSelection As String = If(comboBox.SelectedItem?.ToString(), comboBox.Text) + If String.Equals(newSelection, oldValueStr, StringComparison.OrdinalIgnoreCase) Then + Logger.Debug($"RestoreComboBoxValue -> [{controlName}] ✓ erfolgreich wiederhergestellt: [{oldValueStr}]") + Else + Logger.Warn($"RestoreComboBoxValue -> [{controlName}] ✗ Fehler beim Wiederherstellen! Erwartet: [{oldValueStr}], Ist: [{newSelection}]") + End If + + Finally + ' Event-Guard wiederherstellen + GlobalLookupEventGuard = oldGuard + End Try + Else + Logger.Debug($"RestoreComboBoxValue -> [{controlName}] Wert bereits korrekt gesetzt") + End If + Else + Logger.Warn($"RestoreComboBoxValue -> [{controlName}] Wert [{oldValueStr}] ✗ nicht mehr in Items vorhanden") + End If + + Catch ex As Exception + Logger.Error($"RestoreComboBoxValue -> Fehler bei [{controlName}]: {ex.Message}") + Logger.Error(ex) + End Try + End Sub Private Sub RestoreLookupValues(lookup As LookupControl3, oldValue As Object, newDataSource As DataTable, controlName As String) If lookup Is Nothing OrElse oldValue Is Nothing OrElse newDataSource Is Nothing Then diff --git a/app/TaskFlow/ModuleControlProperties.vb b/app/TaskFlow/ModuleControlProperties.vb index 34ec7e8..e516c6e 100644 --- a/app/TaskFlow/ModuleControlProperties.vb +++ b/app/TaskFlow/ModuleControlProperties.vb @@ -292,7 +292,15 @@ Public Module ModuleControlProperties Public Class ComboboxProperties Inherits InputPropertiesWithControlData + + + + Public Property Regex As String + + + + Public Property RegexMessage As String Public Property Text() As String diff --git a/app/TaskFlow/TaskFlow.vbproj b/app/TaskFlow/TaskFlow.vbproj index 70dc920..37f97ac 100644 --- a/app/TaskFlow/TaskFlow.vbproj +++ b/app/TaskFlow/TaskFlow.vbproj @@ -1304,11 +1304,11 @@ - + PreserveNewest diff --git a/app/TaskFlow/frmAdministration.resx b/app/TaskFlow/frmAdministration.resx index 4f6564b..c4a8099 100644 --- a/app/TaskFlow/frmAdministration.resx +++ b/app/TaskFlow/frmAdministration.resx @@ -264,24 +264,6 @@ 0 - - Left - - - 0, 0 - - - 194, 25 - - - 0 - - - Zugeordnete Benutzer: - - - MiddleLeft - Label20 @@ -432,24 +414,6 @@ 0 - - Left - - - 0, 0 - - - 194, 25 - - - 0 - - - Verfügbare Benutzer: - - - MiddleLeft - Label19 @@ -519,6 +483,69 @@ 0 + + 206, 17 + + + Left + + + 0, 0 + + + 194, 25 + + + 0 + + + Zugeordnete Benutzer: + + + MiddleLeft + + + Label20 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 0 + + + Left + + + 0, 0 + + + 194, 25 + + + 0 + + + Verfügbare Benutzer: + + + MiddleLeft + + + Label19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel2 + + + 0 + Fill @@ -565,7 +592,7 @@ 58 - 1002, 203 + 1002, 202 3 @@ -582,27 +609,6 @@ 0 - - Left - - - NoControl - - - 0, 0 - - - 194, 25 - - - 0 - - - Zugeordnete Gruppen: - - - MiddleLeft - Label22 @@ -688,7 +694,7 @@ 58 - 1002, 236 + 1002, 237 0 @@ -705,27 +711,6 @@ 0 - - Left - - - NoControl - - - 0, 0 - - - 194, 25 - - - 0 - - - Verfügbare Gruppen: - - - MiddleLeft - Label23 @@ -778,7 +763,7 @@ 1002, 493 - 228 + 227 1 @@ -795,6 +780,72 @@ 0 + + Left + + + NoControl + + + 0, 0 + + + 194, 25 + + + 0 + + + Zugeordnete Gruppen: + + + MiddleLeft + + + Label22 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel3 + + + 0 + + + Left + + + NoControl + + + 0, 0 + + + 194, 25 + + + 0 + + + Verfügbare Gruppen: + + + MiddleLeft + + + Label23 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel4 + + + 0 + Fill @@ -954,41 +1005,40 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACV0RVh0VGl0 - bGUAUmVtb3ZlUGl2b3RGaWVsZDtEZWxldGU7UmVtb3ZlO3aMxpEAAAIdSURBVDhPhZJbSFRRGIUPRVMK - FZQGaghqDYWQNTVETTShSDAVQU1FMUGCTIRoF7KHsgt0Y6CLpRUm9iLUSzISBNGDJEfp8lBBJDSFUVIT - UhRS0Ntqf5s9Mk+24YPFv9ba55z5x3NnuiHwfuuGQUC7We5M6SNmjWyO+uNdVwRoZs77n+8FXsfW+9nO - lP6+HLCgmRmvEKbweROvYLBuTffnVJsm0rc00depP36/xq5d0NP6yDCgmeGRIWs6d+hyAa9SlF4Xbs+0 - NupH10n97E3p98A9jV46ZUEzwyNDlo7rejMMcwwld1evuP62OaHxq6363n1Gv9IdFjQzPDJkXYeuN83A - t8w1lPWEajpeJXfq67kmZS+2WNDM8Mi4LB269iD4nqLelaFnL5K7NHa8UZ+O7LWgmeGRcdnJMod1FPbU - LB963pRQNtWijwd368P+7RY0MzwyZF3HHrvnG9XL/KGGuL6dTmr0QFyZfVv0eGPUgmaGR4YsHdf1ApeD - 1f6THZv05dAeZRIxjcTr9LA2ohMVwZuAZoZHhiwdulxQcLZyyYNH9VG921arN7GI+teGdax8MT9YBaCZ - 4ZEhe75y6TBde4Gh+OjCRbf7wiHdXxXS4bIqVlVqmO8oZYZHpq08yI+5wGAv4DXs/6C5pKod0AZWxXcC - Ot/n8twq7TpmGmYbeNo8p3N7BnTOBx5IZ3IThPhXMQR0/p7zfd7I+Z73DxkXTSgd4+4eAAAAAElFTkSu - QmCC + bGUAUmVtb3ZlUGl2b3RGaWVsZDtEZWxldGU7UmVtb3ZlO3aMxpEAAAIeSURBVDhPhZJbSJRRFIU3RaZC + BWWCGoJaQyFoTQ1iE004iDAVQU2JMkGBTIRoF9KHsgtoxUAXSytM7EWol2QkCKIHcfiVrIcKIqEpjJKa + EKOQgt52fKfzD+OLHVg/i7XWPpd/b5F/a7GIZL3fsyMB4FZz14I+JHtyV8CZ6bumAI5mvf/5kvU6tN1J + 9cb0z8sRAziaiOSCBXxuIjmJYHX/51iHzsXv6NxQr/52hnX6xiV9VusfB3A0PDJkE8Hqe9SyAVfJi2/z + dSfbmvR731n9MRjTXyMPdOrKOQM4Gh4ZstTYWlkiIstFpOB+1aabb1siOnO9TWf7L+jPeI8BHA2PDFlb + Q60ssm9ZISJFA97KnlfRA/q1q1lTl1sN4Gh4ZGyWGmrNgvCevMHN3okX0XqdPt2kn04eNICj4dmrk00X + s2hH7kDlxrHnzRFNxVr147EG/XBknwEcDY+M7c78ObhVXuGMHQ7rt/NRnToa1uSh3fq0LmAAR8MjQ3be + HFz1lDuj+3fql+ONmoyEdDIc1Mc1fj1T4rkN4Gh4ZMhSk56DztL1j57UBvTd3hp9E/Lr8Fafthev44eV + ADgaHhmyF0s3jLtzwGf1qTVr7w75vPpwi1dPFJXRqkIRWWVRiIZHpqPYw8/MdzfgGmYOWgrKuoHtM63i + nQCe6bO520rTjqUissyettJyt8/unLg+4EBq0p0gxFQhAnhmnzN9bpT2/wIZF00oFv8vmwAAAABJRU5E + rkJggg== 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 @@ -1086,71 +1136,72 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFBlcm1pc3Npb247rGnpegAAAthJ - REFUOE9tkntMzWEch5HItbnkMsxfzCWNlW6ok+yUc3TXKY5Vi2qlVi7lGkIqjklzNtnoQhOLmogSx1Qr - FZVEhmEu2Wz+wBg65/G+OTisd3u23/t9v5/nvew3AOjDPAYKrBM27VDFp6ZXRyam9ahXrXvnszKixl0Z - 4C/WbMw9f3P/CaxTtu/dp9OfouLqDTq6HnP3/kMKS8uJT92FuzIwR/QMFwzsT2C1JjbJLzvvhPHazTpy - 84vQxm0kLCaZ3Tl5nCwpIyoxzTR3oUeI6LXuT2ATHpPcUlZZzZHjhSzyDalxcPXS2Lt4hjt7+9emZx0l - Q6fHycvvnugd3Z9glCp87ae2zm400UnYuyg0UioYNs9FsVqepORiFY5L/T+Lmt0/AjHkw4z1UGtoam3H - Xxsri1MEQwVSMj0yYSPnyquY76mWa1MFgywFVg1Zy+tbdSuQNB9U05ilon6/L7cylNSmL6N621Iupyqo - SPGgONa1SWSGWgqGyCA/euD7a/j2HL52w+cO+NgEHwzw/jL0lGJ8kU9JrJsMjbQU2LQcEoJvL+CtDl5n - wstd6HWR6HO00B0P96OhbTXGxgAKopxlqO8hfwuGN2Wr4MsDeJUBz3fC081s2RBMWnIAPBHzlpXQuAKj - wZsTWkcZsrUUjGgQ9+VjAzzbKnZMga54DKfDMBQEw2NRq/cBgyfGmoUcC50vQ2MsBaNu7VH+uuej9fBg - rTiulvQUX3YmeUNzKNS6Q/UCei/NIjfQQYbGWQpGX98hGt8UQXsEtIbReV5NWIgCTdBiOi8IQdU8TBUz - 6T03jYNqexkabymwvZLmhenZYUx3gjHVqzDeVGC8vQxTWxSm1lB6K+fSWzqZH2fGcsBntgz1/Ux/3qAk - wb2ubP1izsa5URztwqkIJ/JXOaIPXUBukAM6P3uyVXPIVM5hy5IZjXJTS4GVYKRgnMDOzAQzE81MMiO/ - bQWDgQE/AS2rGykb7R4YAAAAAElFTkSuQmCC + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAFBlcm1pc3Npb247rGnpegAAAtlJ + REFUOE9tkntMzWEch19yybW5M8xfzCUtK7qgTmqnnNOFck5xrFrIKq1cyqVCRMUxMWeTzV0TC02JEqdR + K4qoUKPFXLLZ/IEx6pzH3vzY0Xq3z/bufX/P877f7/sTgJBRRj8hxMD4zWmauJSM8qgNqZ3alWs/+q+I + rPBUhwQLIeyVb3qYHq6XYGDyjj17jaZTFN+8w9NnbTxqes6ZwmvEpezEU70sVwgxVEr6Etitjk0Myjl6 + wnLr7n3y8s9iWL+J8HVJ7Mo9ysmCIqI3pFrnzPcKkwf1JbCPWJdUX1RSzuHjZ1gYEFbh5O6jd3Tzjljg + G1yZkX2ETKMJV5+gx0KIkX0JRmgi1nxtbG5FH5OIo5tKr9Q8ZK6bapW8ScHVMlyWBH8TQoz7T6A0ZrSX + Vk9dwxOCDbFycbIQYrAimRYVv4lL18pw9tbKvSlCiP62Arua7KXVDcZAZB4e0FKbraE6K4CqTDWVGX6U + b19CaYqK4mQvzsW610m5rWCQBOnqhF/v4GcH/GiFb0/hSx18NsOnUugsxPI6n4JYDwkNtxXY1x8MhJ+v + 4YMR3u2DNzsxGaMw5RqgNQ6aYqBxFZbaEE5HL5BQTyP/CobW5Wjgewu8zYSOdHi1ha0bQ0lNCoGX6VC/ + AmoDsZh9OWFwkZCDrWBYTVYAfKmB9m3QmgzP4jCfD8d8OhTatkG1P5i9sVTM55jOWUKjbAUjqnar/9T5 + IgFa1kCjgYzkANITfeGhDio9oXwe3ddnkrfMSUJjbAUjb6f5wvuz8CQSGsJpvqwlPEyFfvkimq/ooGwu + 1uIZdF+aygGto4TG2gocbqT6YG0/hPVBKNZqDZa7Kiz3/LA2RmNt0NFdMofuwkl0XRjNfv9ZEur5mf71 + oCDe835RwiIurvfgXIwbpyJdyV/pgkk3j7zlThiDHMnRzGafejZbF0+v7d1EO/musi5pVjJeyQQlE5XI + uYMQYoBkfwMtqxspY0wXwAAAAABJRU5ErkJggg== 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 - 5QAAAABJRU5ErkJggg== + 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 + URDkRK2jQjwAAAAASUVORK5CYII= @@ -1185,66 +1236,65 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAYdEVYdFRpdGxlAERhdGFTb3VyY2U7T3B0aW9ucxj8 - wFYAAALESURBVDhPjdPrS5NRAAbwzcusoD8ioi99Ub+kQqFpF6/U0E0palOJddEyU5dWKsvKnDhrXjaw - OcfywoY6NEWdl7xskoS0zJyY5l1nXmeW0/Z0jlgfnEQHHs77vpzndw4cXsbucOqWctgGKSffKOXUGV6G - DxheRKBLwh54m3uxvi07LL/lSTCbrHMmYQJg/MlOubeAqx+uE2HmnQqLg7WwjjfDvtyLtWENLH2FGNeL - 8EElQIsoqJOu3ws4G6URgG0O2JwGfozBvj4E+1o/7EsG/FpoxfZcHbamNWjOPE8bLnsBl+48NrbIjrDN - 7yJfCDKI7ZU+rJs1WDRKsNiRgsYHAbThuhdw7RRfwKalCVsrHwmwANuMGqufbmNWfwkmcQD6s3wxo41C - vdCPNlgOQMfT0P8CdImn9gVY+seB/wDOYOR1IqyDWnxufEUbbg5AU/o5B2BtSIgFYxLMihhMt8pRU1WB - eyIVbt6Xi0mHmZChZNxJL90B3BrSAhyAjSkVJk0adNco0a5RIEWkhGloAoKk4tXrKUURgqQiNj9efIQC - B+qSfR2A75NlKJCVoVDZiIycShjfm7Fq3UBbzwDSnqmRJ9chOiG/YQfQJZ7cF9BWKpAt1WLGsgyZQoeg - 8GRIirUYGZ9HenYZwqJS0yjAKr/h9aanMAZjHSVYGjHiJylbR8ndm6vAi8vF1ykLeLfEUBUWzPLJbB6b - RTBXuE03pwCTPhRddueV8j2rVXxPkzrG09YlS4MsJ8+emaPG5Ow3lJS3IiFdgfKaLoxOWJD4UI4QjjCV - AnRQhP4obiQHSQ6RHD7LTmhOyZDhiiAL6up2mMwT0DUawOU9Qmz8c3idjmn6e597QwbzhN/Voz7+0Rwy - XwuMEForajvh7R9r9fDmCtx9uJHHPUKO7Vum2R30ZE4kLN+gOElA6F24e0dKyDs9KfnOYP4GZQd0tpFb - exUAAAAASUVORK5CYII= + wFYAAALKSURBVDhPjdP9S9NBHAfw8ykr6I+I6Jd+UX/xAQrN9eAjNdymFLmpxCq1zNTlKpVlZU6cNR8m + 2NSxfGBDHZrDZ/NhkySkZebENJ06nc2nmeW0veO7LGKT6ODgOO79uuNzd4T8aq4DYiZdI2YWacXMZs3z + qFHNMwb6RfTR1wUXW7rzIos6HoXRCSFuhBAXAOR3t4eHilmdE80CLLyRwTzWBMtMO2yrQ9iYUMA0XIKZ + TgHeybjoEIT2UesdATetmAFYF4HteeDbNGyb47BtjMC2osGP5S7sLjZjZ16B9pzzVMLdEXAfKKRjZ3UI + sC7tIZ9g2xzD7towNvUKmLUimHszoL5HoxIejoBHn/ACtk1t2Fl7D2wvw7ogx/qHmzB2XoJOSMNIbiAW + lDFo4QVRiQNOQO/jiP8CVKmn9gUOdD4M+QdwBpMvU2EZU+Kj+gWV8HQC2rLOOQEb4zwsa9Ogl8Zjvqsc + jfW1uCOQ4cbdciF1lSnZVeRWVqUd8Gzl05yArTkZDDoFBhqr0KOQIkNQBd34LLhpZevXMkoZ3LRSOidZ + eJQCDjanBzoBXw3VKJZUo6RKjez8Omjf6rFu2UL34Cj4T+QoLFchLqWo1Q6oUk/uCyjrpMgTK7FgWoVE + qkJoVDpEZUpMziwhK68akTGZfHsNaq77vRosicd0bwVWJrX4bqiGZUoEs74e7KQCfJ4zgZ0ohKyk2MhJ + FEI/bUQYi7dLbU4BLtSg9LIXu5Lj0yDj+Ojk8T7WfgkfkvxCW06+HAbjF1TUdCElS4qaxn5MzZqQer8c + 4Uxepr2Kewj1UTwJIYcIIYcJIUfO0lPaM7IluMLNhbyhBzr9LFRqDVjsB0hIfgq/0/Ftf+7TsVOob1Ds + sYDgOKZvUOzVEAbPUtvUB//gBIu3P4vrFcCKPuEdftwp+PcD2TuZK1WnwNAkES3iNrz8o0V7J6XmXX4C + ZQd0tvvdA1MAAAAASUVORK5CYII= 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 - 81ZxMKBLHu+/ieFYnJu9fywAAAAASUVORK5CYII= + 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 @@ -1253,64 +1303,64 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAC10RVh0VGl0 - bGUAREI7U291cmNlO1N0b3I7ZGF0YXNvdXJjZTtEYXRhYmFzZTtFZGl0KPa6nAAAAs5JREFUOE+Fk21I - k1EYhl8znZ9pQf5IhZAgCwlJCH9YRsvUXKn4gSRShLJQWFlqoFBjiiRDzakgzqjMWDChbGpuTTZTN2mS - +DGz4UcmLnPOTCXR6e7OeS0wyzpw/zk813Xe55znZchyIHHUlCckdEmSKnSVSc06ScKQriIRneXxQxpx - bMvrYp6kWRiVSOp203oAzK/Q5aivSm43KUQwv62HdfgFliZVsH/twaJJjllDNSbVIvTX86ESRXdSyXaB - k74yEVibAVangZUJ2JdHYF/sg31ehw1LO9ZnFLBNy6ESRlLCebvAuassHjZyIta+/JSMEckw1hcMWP4g - h1VfDqs2D68KuJTgbBdw3ohjsTqrhG1hkAgsWDM34JtRgM/qSxgQc9FXFA5zYwp0Ndcp4UZC78KRhN4f - 46It5v1XYNEKMdQiRZswpERz9zgaBUeKCetEBa7qwqh/CkyPBbD2P0NPbQYmXsZjwz6G9zIequL87rEC - 5Z1zOwpGZdmYbJdiUJaJsecXWdg2noXu/ECUcvezl+DWms/9q2CuV4RPmjr0PkiHSR7DwivGdHTkHEKH - OAw5wZ5lVOCuyA3/Q7A0XoHZYRkMBB55GsXCi4Y0aAQHoS4MhSDI4z49nBU03Qz7XWBRYmGqCX2yazA+ - 5LLwnDYJ6kx/tBaEgH/YTUI4D5JdVODSwD/R1l19FRPaOsyP6rE6/w4DXVLoxBEsbG6+ABXfF023juFK - gEsNYTwpnOpDX3PT4l6aHJQhTQtWPLocbDTIqzZyswuhqC3G9yk9lBm+kGcFItWfU0tqvSnzURbBJO2j - o7C56EDQN6U9Ubtv8Nm88QF9G56U3EbR6QCkHHCmJ7OwSXqKMUlPMnFeBNs6llvGc4+3LxeePqGTrt5H - a/z2eJwhe2zPPA8HhibGnWHO050dBLQ5L5K9JKR08zeOJt8X5cowkSRUciOAw/wAcHo+daCdVmIAAAAA - SUVORK5CYII= + bGUAREI7U291cmNlO1N0b3I7ZGF0YXNvdXJjZTtEYXRhYmFzZTtFZGl0KPa6nAAAAstJREFUOE+Fk2tI + 01EYh1+z1HkvyA+pEBJkISEJ4QfLaJkzLRUvSCJFKIbCylIDhZIpkgw1byBOqcxYMKFsaromm6mbNEm8 + ZsNLJpp5TyWZ0/3i/J1B63bgfDmc5zn83vc9RERWRGStKo6K6iyNKdGUxTRqSqMGNSXR6CiOHFSJw5ve + 5IeVNuYIooloL7sPgHY3W9ba8tg2vVyEmXe1WBx+ibVJBUzL3VjVyzCnq8CkUoS+2mQoRCEdTGIp2Kct + iwY2ZwHDNLAxAdP6CEyrvTAtabA934atWTmM0zIocoIZYWMpsOksioRxuRvY/GqWjMG0PoytFR3WP8qw + qC3GojoTr7P5jLC1FNi+FYfDMNcK48oAYJjH5kwdvg0J8UV5Bf1iPnrzAjFTHwdN5U1G2JtrYW2uH9mp + 88P+K5hX52CwSYKWHL8C1f2TqBcey2fxmYCnzBX8U6B/IsRi33N0VyVh4lUktk1j+CANQ3mExwNO0Hrv + wl8Fo9I0TLZJMCBNwdiLyxxsHE9FV5Y3CvkHuSLYN2fx/yhY6BHhs6oaPTWJ0MtCOXhjKBHt6UfQLg5A + uq9TERM4yDMCfxOsjZdgblgKXU0iRp4JOHhVlwCV8DCUuf4Q+jg+NBeUHBpuB/wqmG/FylQDeqU3MPSI + z8EL6hgoUzzRnO2H5KP2pUTkSER7uC7UJZ9q6aq4jgl1NZZGtTAsvUd/pwQacRAHzzRegiLZHQ13TuCa + l10lETkxON6NdXPH4lAY65MkSfCVP77qO6STlW9npOVCXpWP71NatCa5Q5bqjXhP2yoicmXMJ2kQxRxg + o7Cz2ECwnrJMzO7uez5zvF/bgqcFd5F31gtxh2zYyxysl5whveQ0RbhY0c+RtBhPZ1d3Ppzc/Cd5rscr + PZwdz+1mDnO0IrZDHYgushNL2Cxg4VyIaD+Lt/uNQ+yJBDyiYB5xkltetvQDcHo+dU7ROW8AAAAASUVO + RK5CYII= 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 + uXD5FUMAAAAASUVORK5CYII= @@ -1319,62 +1369,62 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABZ0RVh0VGl0 - bGUARGF0YXNvdXJjZTtEYXRhO8WNRNIAAAK3SURBVDhPbZJZSJRRFMfvWGmbreCTZARSVA9amdJThQQh - BCGUEBSIQvRYafgQGERmqbmFpbnlmCHO1OgYSpGaGSnkWs4o5BLWODKLszj7zL9zvnFSqwu/73zc757f - uffcTzSotV2N7ZNofDMJefsE5OoJNLRpg9B7fasW9SqNRLVirEcIsR6ACCF44eoRYOixlgD8RI1ynDJE - BC1ZEdSrggKXNwCn2w8nRQdFh9OHJRfh8ErR5wugsvkbCzaGkhlRrdRIVTl5pjwJM2WJmCldpuQ4kQAr - STwkqHg5+q+gqmVM2uYSVeTFf4/poqMk8MFNgjL5MAs20fSKgK0ssFGV6aIjmC4MEY+pwjhMFcRhcckL - l8eP4rpBFmxeIyh9PiQ1yU4CrmShxZzA705KcripD04SuL34MDDLgm3EOiKMEKKg9gt1GNI5m9o0eKHW - opGinBjRLmCwrwsaVRZGa89h+OlpDD45ZR54fLKzI+9EsiR6WDUAPxkWbR6YqbKZotHigcHqhcXmQkdO - Mn71N8FtM9KOAbdFj9n3FVBkHJwjQYS4V/EZPhIYrR7UKb+iRjGGampsTcso+kfmoLp6GNbhO3CZ3sIy - lAu96gJ+VCXhVfp+Ps4WkVv+CV7q8MKiW0JvcmHeTNHogsFsx+vMQ7AOBQUc51UXJYHiciwLIsXtkj5J - wEk6o0MS6FhickJvsECZfoASc1ftIChoubSPBdtFTlEvPPT32anTfJUM3wT3wmAiwZXYVQLeQfAIzWl7 - WbBDXL/b2XUrvwfZ+d3Ivt+NLOJmfheyHnSj9d04mjMS8F2RCbtOLYl+KlIxkhcPeWq0jgTbhEwmi5Ca - IcRWIjIEzXPcfe1YVNqjM9EfK1NiHM9SYlB5do+jODm690Zi1Hn6Hv7nj/ofNGTEBoLlO4ldy7A8XAgR - 9htUAczO/wG3xwAAAABJRU5ErkJggg== + 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 - o/4PCmDxqfADI0QAAAAASUVORK5CYII= + bGUARGF0YXNvdXJjZTtEYXRhO8WNRNIAAAiuSURBVFhHnZd5bFTXFcbdbM0KIYG0WUSqtqqa0rQQdrI0 + UKkSaZQElP4BDZXAdeSmgZSw2aWUADYx4H3H29gJGBtsQ81ivI53YopTm2AMLjIe2zOefXkz87Z5M197 + 7nsDtkmIlSt9c59nrPf9zrnnnvteRIQ6vqfpHk333kX3fY3u/wbRb3Q/NgDcofC4J624oymtuANpJR2g + ObWoHem6TqTpOpCq60BaUTtSde1ILWxDSmEHkgrbmJJJBa1ILmhDYl4rEvPbmA7ltSAhV6/XICi4O8zD + APTjvWT8XUYorNBtBUMhBEPAgcPN5PBAOAuTzccD3JdS3M5uqIQAJRhCIATISghSIAgpEIJIksPXQQjS + bclKECFmqhoHgyGmhBw9OTw4NYAiFYBMSWQiKlCNJYUZ0XeSHIDAvguClwIQNBEYMyaIYIgFEZ/ZSA4P + TQXg/pTCNgbAopQ1czkIQVYjJwBeDGA451UYsl+GIXMZDBlLMZS+BIb0RTCkLcRQygIGQOakuIwGcnh4 + KgAPUEHRYJFKCj6r6sZnld0oqbiEkspu6E5cYt8PpS8eVwETx2DiXPY/YYA9aQzgEW333GEeBiC67x/K + b2E3CWeARSzJLGq6Kc8yoGAoeT6Gkl7CYNJcZjh48NcYPPgiBg+8iMGEOeB4GYIchKIEsSe1duoABw+r + ALSetLY+UYJfVE0JggB8YgA+QYJPUOAXA+B4EZwQgJddy/D6JXh8Mjy+AAJKCP9MOU8Oj04F4EHaMioA + RR5EwfGLTPnlXSgo60LesS7kH+tCXildf4G8UlWHSy8g9yipAzlHOsD5CEJiO2NXYg05PBYG+KZBAA/t + z9YzAIqYIhVopugEykZAjZSnSOl7CRxdk5lXNaTIOV8Abq/MJMkKYhPOEMB0rSuyZvR1gwAejs9uZA2F + DCm9htzX7lrxqultOTwiHB6aedhdAvy8hNqWqwTwpNYLKAvkFW77twb98AhtGepinCDDKygwZC4dV98T + x1DiXLh9EtxeCU6PCNvoAIy9pzDcloKbjfG4cXozBiqi0Hf8r+iv/Ju5t/i9lu7CNQmNye+8onVG8rwF + wQD2pqkAVGAEQXv6bhXv5GTYxkYx0p6MsbbdcPVlgx8+CnG0FIqlErBXQjF+Dv56NrxXkmBu2YlrZZG4 + mLm6s3znb+eMh6CLRz9JqVUz4KN1DoDzB1g1c16qahlunwwXJ8LlVWe7k8dwcxwExw3A3wL49ABXD3jO + Ac5qwFEJWMuAsc8BYxEwkgcMZ4Pr3of2Q7+/Rjsv3KAI4LHdyTWsn9N6UmqzStqQVUInYhsyilqRVtSK + dDa3ILVQj/buQTTvXaGuifAfwNcEeDUAVzXLAAMwE4AOGCWAHMCQgdqYZeEOyXYHfUyjLUMAnF+Gh6Jk + 1UyFJcDp1YrLI7LU2908LA4fmva8jpDsVM9DxQmI1wHvBYDTA46TgKUcsJQC1krAfAKwnoViOoPz25dM + 6A90Xk+PPXCG9XFaAmbIiZqxAIdbYOYkm1uAzSXCaPOhcfdrsJ9fB//1AijcZUA2AwEboHCA4gEkK4Lu + r6BYO8H36+Bq3gZH/Uac27JoQn8ggMdjElQAFiEnILWgGSkFeqTm65Gc34ykvCYk5TWyOTG3EU2d19Gw + 61XYzq2Ds2UTvJfjII4WIsSfhWwqhrc3Dvb6KJiOrcRw/hImU9nbDODs5gUEME3zZh8zdnxafQuAIrex + iAXY3H7Y3SJsHhlWFw+rU4DZ4YfB6ELdzlcwWrUGztaN8H4VB8moAohG3Z0ABQTwFkzV0Ti96aVwg7oF + 8MT2+FPsHGdpZuYSbC6eXZOsHgkWlwiLi4fJxsNgdKAudhn6CtfgSvFaDNdvhbs/A4L1BISRQnh798FW + F4Whkt/hv5mLcCVxAb5MXIG+kkic/nAeATweBqA2+eSWPVXsCLW6edjcPBJzG3CIlNOAg9n1OJDVgINZ + DUjIqsP+9DrU6PtwfscSeC7uh+NiMkxtCTA0J8DQlYn+f8WitzgSX2auQm/6G+hJXo6BgtUYO78Dnkvp + OPWXuQQwYzzAzI8/OQlFCTFzi0u4JTPNDh5mux8muw8mux8jFjduGKyo2baY1YDrQgx8A7mQrWcB8QsE + HI3gb54A15MFe1MMLKejMVaxFuaqtbDXb0RV9K8I4AnNm33M+mhXBQOwsDUWYXHQzMPkEJjpmEOE0c6z + 6jdYvLh204wzmxdi9KRaA1zvPsjGIlYDkrEYXM8+2OuiYCobV4Tlb8FYHY2qqF+Gz4jbAB/+4zgCSpCZ + j9kFmGx+mBxemOxemGxeZj5i4zBq9cIw5kb/4BhOfzQffUVrcEW3BsN1WybVQNyEGuhLUmvgasmfcWLD + HAKYNR5g5gexKoD6AKLKT0exIDN56YGDl8H5Jbg8PEbHrKjeOA/uLqqBJBjbEjCkpxrIwtVTsejRbUB3 + 5ir0pK1ET9JyDBSuxlhtDLhL6ahY/wIBPKUdTKwZTI/8WNccvaMM0THH8P72UkRtP4qobaQjiNpWiqit + RxG55Qg2bD2C9ZtLUFrViVMfzIWtZh1cnTvgHzgM2XYOIa0GhKEKVgMOfey4Gvgj7HUbUf6nn0/IAHsk + 0/YlUf0wIiLiaU3PTNKzmmZHRET8LPvNnwwNlKyCs5Ua0T7Io1oNmHRqDTS8D+OxN1gPGKE+UP42+ovf + Q/yS5wbH74LwOyH9QSkhEdDdRM/609bPe2pp+sof9x6Pmo/OtD/A0LQb5ss58N/MYwDmmkhcyXgd3XHz + ULtpDorefQF7Fz97+d2fzlg2/jAKj/CTylRFwAQyY/Pip9+Mf312TuKK2ReTlj/fl7riR2LK8ueR9JvZ + 4qcvz+6LW/bcv/++8JnDG34x6x0t9fSkrL4zTn5K/TZNGpQ5WkcCocOF0jpTW8ofaCJD2nLU+ciYMnj7 + iWiywbdp0ghnI/xKP/5VPbycpPCrethYNf//+B8KYPGp+9wP1wAAAABJRU5ErkJggg== @@ -1383,64 +1433,64 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAC10RVh0VGl0 - bGUAREI7U291cmNlO1N0b3I7ZGF0YXNvdXJjZTtEYXRhYmFzZTtFZGl0KPa6nAAAAs5JREFUOE+Fk21I - k1EYhl8znZ9pQf5IhZAgCwlJCH9YRsvUXKn4gSRShLJQWFlqoFBjiiRDzakgzqjMWDChbGpuTTZTN2mS - +DGz4UcmLnPOTCXR6e7OeS0wyzpw/zk813Xe55znZchyIHHUlCckdEmSKnSVSc06ScKQriIRneXxQxpx - bMvrYp6kWRiVSOp203oAzK/Q5aivSm43KUQwv62HdfgFliZVsH/twaJJjllDNSbVIvTX86ESRXdSyXaB - k74yEVibAVangZUJ2JdHYF/sg31ehw1LO9ZnFLBNy6ESRlLCebvAuassHjZyIta+/JSMEckw1hcMWP4g - h1VfDqs2D68KuJTgbBdw3ohjsTqrhG1hkAgsWDM34JtRgM/qSxgQc9FXFA5zYwp0Ndcp4UZC78KRhN4f - 46It5v1XYNEKMdQiRZswpERz9zgaBUeKCetEBa7qwqh/CkyPBbD2P0NPbQYmXsZjwz6G9zIequL87rEC - 5Z1zOwpGZdmYbJdiUJaJsecXWdg2noXu/ECUcvezl+DWms/9q2CuV4RPmjr0PkiHSR7DwivGdHTkHEKH - OAw5wZ5lVOCuyA3/Q7A0XoHZYRkMBB55GsXCi4Y0aAQHoS4MhSDI4z49nBU03Qz7XWBRYmGqCX2yazA+ - 5LLwnDYJ6kx/tBaEgH/YTUI4D5JdVODSwD/R1l19FRPaOsyP6rE6/w4DXVLoxBEsbG6+ABXfF023juFK - gEsNYTwpnOpDX3PT4l6aHJQhTQtWPLocbDTIqzZyswuhqC3G9yk9lBm+kGcFItWfU0tqvSnzURbBJO2j - o7C56EDQN6U9Ubtv8Nm88QF9G56U3EbR6QCkHHCmJ7OwSXqKMUlPMnFeBNs6llvGc4+3LxeePqGTrt5H - a/z2eJwhe2zPPA8HhibGnWHO050dBLQ5L5K9JKR08zeOJt8X5cowkSRUciOAw/wAcHo+daCdVmIAAAAA - SUVORK5CYII= + bGUAREI7U291cmNlO1N0b3I7ZGF0YXNvdXJjZTtEYXRhYmFzZTtFZGl0KPa6nAAAAstJREFUOE+Fk2tI + 01EYh1+z1HkvyA+pEBJkISEJ4QfLaJkzLRUvSCJFKIbCylIDhZIpkgw1byBOqcxYMKFsaromm6mbNEm8 + ZsNLJpp5TyWZ0/3i/J1B63bgfDmc5zn83vc9RERWRGStKo6K6iyNKdGUxTRqSqMGNSXR6CiOHFSJw5ve + 5IeVNuYIooloL7sPgHY3W9ba8tg2vVyEmXe1WBx+ibVJBUzL3VjVyzCnq8CkUoS+2mQoRCEdTGIp2Kct + iwY2ZwHDNLAxAdP6CEyrvTAtabA934atWTmM0zIocoIZYWMpsOksioRxuRvY/GqWjMG0PoytFR3WP8qw + qC3GojoTr7P5jLC1FNi+FYfDMNcK48oAYJjH5kwdvg0J8UV5Bf1iPnrzAjFTHwdN5U1G2JtrYW2uH9mp + 88P+K5hX52CwSYKWHL8C1f2TqBcey2fxmYCnzBX8U6B/IsRi33N0VyVh4lUktk1j+CANQ3mExwNO0Hrv + wl8Fo9I0TLZJMCBNwdiLyxxsHE9FV5Y3CvkHuSLYN2fx/yhY6BHhs6oaPTWJ0MtCOXhjKBHt6UfQLg5A + uq9TERM4yDMCfxOsjZdgblgKXU0iRp4JOHhVlwCV8DCUuf4Q+jg+NBeUHBpuB/wqmG/FylQDeqU3MPSI + z8EL6hgoUzzRnO2H5KP2pUTkSER7uC7UJZ9q6aq4jgl1NZZGtTAsvUd/pwQacRAHzzRegiLZHQ13TuCa + l10lETkxON6NdXPH4lAY65MkSfCVP77qO6STlW9npOVCXpWP71NatCa5Q5bqjXhP2yoicmXMJ2kQxRxg + o7Cz2ECwnrJMzO7uez5zvF/bgqcFd5F31gtxh2zYyxysl5whveQ0RbhY0c+RtBhPZ1d3Ppzc/Cd5rscr + PZwdz+1mDnO0IrZDHYgushNL2Cxg4VyIaD+Lt/uNQ+yJBDyiYB5xkltetvQDcHo+dU7ROW8AAAAASUVO + RK5CYII= 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 + uXD5FUMAAAAASUVORK5CYII= @@ -1544,22 +1594,22 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAedEVYdFRpdGxlAEdyaWQ7Q2FyZDtDdXN0b21pemVH - cmlkO8HjGUYAAACuSURBVDhPzZIxDoMwDEWRegFuwBlQlC3qjHqV7sy9Qa8bqVLNf1FEM0BKytLhxfjL - 3zaBzsxOsSm2sCm2kI4QgpW0aH/S4AzpULdHSaFNohc359woovf+So5+pEEvk4lZ3MU7R3KVfW/AZIpf - GArI57XBHipibSZieoohR3L0MRWW0yFrrB8Fa2PATFMiOXqsNZi4MBX9vAHP1TsQl/V998iG+lc4ggzp - PyB+dOsWwxoaxlnf3YgAAAAASUVORK5CYII= + cmlkO8HjGUYAAACnSURBVDhPzZJNCsIwFIQLXqA38AzlI7vBdfEq7rv2Bl43IBiZkkq09I9sXHx5zNA3 + eX1tk1JqapgZR5kZRxkPSankiPcnATWMh6R7SeH1klpJV6ADYgjhYm1/T0ALJGAAbsArV+uvHSwF+GY/ + /MxBE9bDJ2CJPLZvdNMDOOdqbb9bm8Djxzy2G9zsUFdr+3EtoPfCaibY3AFwmr33L7u+wh6m/8C19N/D + GhrGm7634QAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAedEVYdFRpdGxlAEdyaWQ7Q2FyZDtDdXN0b21pemVH - cmlkO8HjGUYAAAFASURBVFhH7ZU9TgMxEIVzjChKgZC2oYmiFaQEcQfOAzVH4V70qWnM+yI/ZMMo/Nja - FdIWn2SP3848r2e9q5TSrITBKQmDUxIGp6SajOOYztFTYxYDi4HKwBxUE7l7OkdPjVkMLAYqA3NQTSK3 - Jb/U3IljhnGlMb0MPIhrccga5jfClw9jYnAQa9fsZYDiFHoRe3EpnsVbhvGFuBVo0J5M9DLArpz4J6Dd - 9DTAq70XUbGIvWtWBlpQ0m1R4FU8iqsMY2Je3/q5z0mi3X0QaNg5HU6Tcc4uQEG0JcS8jnYnhlYDNBaf - GUlpNhdg12VxIOZ1a4//3sDsR2Aw0t6ELSgpF5ALfEffz1AJN6L9IvorSrYuEvMmOA7OmWYDxsRYs9Gv - V3ELJBSnXeU5TeYd74o4byv+GfVERQbh3/EQaVJKq3fN1wu3lMNUvgAAAABJRU5ErkJggg== + cmlkO8HjGUYAAAEzSURBVFhH7ZXBSgMxEIb7GCI9iNCLl1I+tEfFd/B59Oyj+F7ee/ay8pUMZLPbVk3Y + RdjDB8lkNvNPMjtZdV23mpOBYWoGhqkZGKamNwG6c7T0WQQsAkYFzEFvArydo6XPImARMCpgDnqTUmnJ + L32egEPCcc+ntYAX4B7YJx/nD1nzcaxN9sBVawEGN9AHsANugXfgK+H4BnhMPvoeRbQSYFax8U/Q97ql + AI/2eSTQKXajV1ADsM4CfAKvwF3CsbZYX8d35SZlZpdOwMytcIvMe44ABtQ3R1us67sFNrUCLCx/Mze1 + 2CKAWZcCtMV6+B7+vYDZryAXUl+ENaQGFAEu0fY3tKk0aUR/xbaabexJeB1lK9bm2ulWXEMSccwqzS2y + yHib2T2t8ceoJVZ49hxvyvXgG83XC7fBah8nAAAAAElFTkSuQmCC @@ -1661,64 +1711,66 @@ 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 + AAAASUVORK5CYII= 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 @@ -1727,97 +1779,83 @@ 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 - +oEotzUUCQAAAABJRU5ErkJggg== + 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 + TkSuQmCC 0, 0 - - Bearbeitungs-Modus - - - Profil-Verwaltung - - - Finale Indexe - - - Dashboard - Start - - Grundeinstellungen - Grundeinstellungen @@ -1905,6 +1943,24 @@ 0 + + 819, 134 + + + Bearbeitungs-Modus + + + Profil-Verwaltung + + + Finale Indexe + + + Dashboard + + + Grundeinstellungen + False @@ -2682,6 +2738,690 @@ True + + Label15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 0 + + + TYPEComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 2 + + + lblTargetPath + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 3 + + + TARGET_PATH_BLIND_FILETextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 4 + + + lblDescription + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 5 + + + btnofbAHW + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 6 + + + lblPriority + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 7 + + + lblSearch + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 8 + + + Label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 9 + + + Label9 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 10 + + + DISPLAY_MODEComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 14 + + + cmbLOGIndex + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 15 + + + PM_VEKTOR_INDEXComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage5 + + + 16 + + + Tahoma, 9.75pt, style=Bold + + + 4, 25 + + + 3, 3, 3, 3 + + + 1000, 426 + + + 0 + + + Allgemeine Profilangaben: + + + TabPage5 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabctrl_Profilkonfig + + + 0 + + + True + + + Top, Bottom, Left, Right + + + 3, 23 + + + 977, 377 + + + 94 + + + Panel5 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage11 + + + 0 + + + Fill + + + Segoe UI, 9.75pt, style=Italic + + + 3, 3 + + + 980, 385 + + + 75 + + + Diese Indexe werden nach erfolgreicher Indexierung automatisch bei dem indexierten Dokument gesetzt. + + + Label6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage11 + + + 1 + + + Tahoma, 9pt + + + 4, 25 + + + 3, 3, 3, 3 + + + 986, 391 + + + 0 + + + Finale Indexe + + + TabPage11 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControl2 + + + 0 + + + True + + + GroupBox3 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage12 + + + 0 + + + ANNOTATE_WORK_HISTORY_ENTRYCheckBox + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage12 + + + 1 + + + ANNOTATE_ALL_WORK_HISTORY_ENTRIESCheckBox + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage12 + + + 2 + + + WORK_HISTORY_ENTRYTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage12 + + + 4 + + + 4, 25 + + + 3, 3, 3, 3 + + + 986, 394 + + + 1 + + + Nachbearbeitungsfunktionen + + + TabPage12 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControl2 + + + 1 + + + Fill + + + Tahoma, 9.75pt, style=Bold + + + 3, 3 + + + 994, 420 + + + 92 + + + TabControl2 + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPageAfterIndex + + + 0 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1000, 426 + + + 1 + + + Aktionen nach erfolgreicher Indexierung: + + + TabPageAfterIndex + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabctrl_Profilkonfig + + + 1 + + + 3, 70 + + + 1008, 455 + + + 6 + + + tabctrl_Profilkonfig + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pnlEdit + + + 2 + + + Tahoma, 9.75pt + + + 718, 40 + + + 238, 24 + + + 3 + + + Neueste Dokumente zuerst anzeigen + + + SORT_BY_LATESTCheckBox + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pnlEdit + + + 5 + + + Fill + + + 3, 3 + + + 1016, 528 + + + 28 + + + pnlEdit + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage1 + + + 0 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1022, 534 + + + 0 + + + Profil-Verwaltung + + + TabPage1 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControl1 + + + 0 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1008, 499 + + + 0 + + + Benutzer + + + TabPage7 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControlProfilZuordnung + + + 0 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1008, 499 + + + 1 + + + Gruppen + + + TabPage8 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControlProfilZuordnung + + + 1 + + + Fill + + + 3, 3 + + + 1016, 528 + + + 1 + + + TabControlProfilZuordnung + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage2 + + + 0 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1022, 534 + + + 1 + + + Profil-Zuordnung + + + TabPage2 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControl1 + + + 1 + + + GroupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage3 + + + 0 + + + GroupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage3 + + + 1 + + + 4, 25 + + + 3, 3, 3, 3 + + + 1022, 534 + + + 2 + + + Dashboard + + + TabPage3 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabControl1 + + + 2 + + + Fill + + + 276, 0 + + + 1030, 563 + + + 3 + + + TabControl1 + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pnlMain + + + 0 + True @@ -3072,126 +3812,57 @@ 16 - - Tahoma, 9.75pt, style=Bold + + MOVE2FOLDERTextBox - - 4, 25 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 3, 3, 3, 3 + + GroupBox3 - - 1000, 426 - - + 0 - - Allgemeine Profilangaben: + + btnmovetoFolderDialog - - TabPage5 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + GroupBox3 - - tabctrl_Profilkonfig - - - 0 - - - True - - - Top, Bottom, Left, Right - - - 3, 23 - - - 977, 377 - - - 94 - - - Panel5 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage11 - - - 0 - - - Fill - - - Segoe UI, 9.75pt, style=Italic - - - 3, 3 - - - 980, 385 - - - 75 - - - Diese Indexe werden nach erfolgreicher Indexierung automatisch bei dem indexierten Dokument gesetzt. - - - Label6 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage11 - - + 1 - - Tahoma, 9pt + + Tahoma, 9.75pt - - 4, 25 + + 9, 6 - - 3, 3, 3, 3 + + 941, 57 - - 986, 391 + + 74 - + + Wählen Sie hier einen Ordner, in welchen die Datei, nach erfolgreicher Indexierung verschoben werden soll: + + + GroupBox3 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage12 + + 0 - - Finale Indexe - - - TabPage11 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControl2 - - - 0 - - - True - Segoe UI, 9pt @@ -3246,33 +3917,6 @@ 1 - - Tahoma, 9.75pt - - - 9, 6 - - - 941, 57 - - - 74 - - - Wählen Sie hier einen Ordner, in welchen die Datei, nach erfolgreicher Indexierung verschoben werden soll: - - - GroupBox3 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage12 - - - 0 - Tahoma, 9.75pt @@ -3348,294 +3992,501 @@ 4 - - 4, 25 - - - 3, 3, 3, 3 - - - 986, 394 - - - 1 - - - Nachbearbeitungsfunktionen - - - TabPage12 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControl2 - - - 1 - - - Fill - - - Tahoma, 9.75pt, style=Bold - - - 3, 3 - - - 994, 420 - - - 92 - - - TabControl2 - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPageAfterIndex - - - 0 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1000, 426 - - - 1 - - - Aktionen nach erfolgreicher Indexierung: - - - TabPageAfterIndex - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabctrl_Profilkonfig - - - 1 - - - 3, 70 - - - 1008, 455 - - - 6 - - - tabctrl_Profilkonfig - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pnlEdit - - - 2 - - - Tahoma, 9.75pt - - - 718, 40 - - - 238, 24 - - - 3 - - - Neueste Dokumente zuerst anzeigen - - - SORT_BY_LATESTCheckBox - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pnlEdit - - - 5 - - - Fill - - - 3, 3 - - - 1016, 528 - - - 28 - - - pnlEdit - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage1 - - - 0 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1022, 534 - - - 0 - - - Profil-Verwaltung - - - TabPage1 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControl1 - - - 0 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1008, 499 - - - 0 - - - Benutzer - - - TabPage7 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControlProfilZuordnung - - - 0 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1008, 499 - - - 1 - - - Gruppen - - - TabPage8 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControlProfilZuordnung - - - 1 - - - Fill - - - 3, 3 - - - 1016, 528 - - - 1 - - - TabControlProfilZuordnung - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage2 - - - 0 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1022, 534 - - - 1 - - - Profil-Zuordnung - - - TabPage2 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControl1 - - - 1 - Top, Bottom, Left, Right + + Label14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 0 + + + Button4 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 1 + + + Button3 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 2 + + + Button2 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 3 + + + Button1 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 4 + + + Series4Sequence + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 5 + + + Series3Sequence + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 6 + + + Series2Sequence + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 7 + + + Series1Sequence + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 8 + + + Series4Title + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 9 + + + Series4SQL + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 10 + + + Series4Column + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 11 + + + Series4Type + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 12 + + + Series4Argument + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 13 + + + Series4GUID + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 14 + + + Series3Title + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 15 + + + Series3SQL + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 16 + + + Series3Column + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 17 + + + Series3Type + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 18 + + + Series3Argument + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 19 + + + Series3GUID + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 20 + + + Series2Title + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 21 + + + Series2SQL + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 22 + + + Series2Column + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 23 + + + Series2Type + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 24 + + + Series2Argument + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 25 + + + Series2GUID + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 26 + + + Series1Title + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 27 + + + Label13 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 28 + + + Series1SQL + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 29 + + + Series1Column + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 30 + + + Label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 31 + + + Series1Type + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 32 + + + Label11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 33 + + + Series1Argument + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 34 + + + Label10 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 35 + + + Series1GUID + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 36 + + + Label8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 37 + + + Label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox2 + + + 38 + + + 6, 89 + + + 0, 0 + + + 1 + + + Chart 1-4 + + + GroupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPage3 + + + 0 + True @@ -4626,29 +5477,65 @@ 38 - - 6, 89 + + Label5 - - 0, 0 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + GroupBox1 + + + 0 + + + Label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox1 + + 1 - - Chart 1-4 + + Label1 - - GroupBox2 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + GroupBox1 + + + 2 + + + 6, 6 + + + 984, 77 + + + 0 + + + Verteilung und Top Kreditoren + + + GroupBox1 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + TabPage3 - - 0 + + 1 True @@ -4739,81 +5626,6 @@ Top Kreditoren: 2 - - 6, 6 - - - 984, 77 - - - 0 - - - Verteilung und Top Kreditoren - - - GroupBox1 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPage3 - - - 1 - - - 4, 25 - - - 3, 3, 3, 3 - - - 1022, 534 - - - 2 - - - Dashboard - - - TabPage3 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabControl1 - - - 2 - - - Fill - - - 276, 0 - - - 1030, 563 - - - 3 - - - TabControl1 - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pnlMain - - - 0 - Left diff --git a/app/TaskFlow/frmCockpitConfig.Designer.vb b/app/TaskFlow/frmCockpitConfig.Designer.vb index 78431e8..4660d19 100644 --- a/app/TaskFlow/frmCockpitConfig.Designer.vb +++ b/app/TaskFlow/frmCockpitConfig.Designer.vb @@ -35,13 +35,18 @@ Partial Class frmCockpitConfig Me.bbtnitm_NodeProfilAdd = New DevExpress.XtraBars.BarButtonItem() Me.bbtnitmCopy = New DevExpress.XtraBars.BarButtonItem() Me.bsitm_info = New DevExpress.XtraBars.BarStaticItem() + Me.bbtnitm_DeleteCockpit = New DevExpress.XtraBars.BarButtonItem() + Me.bbtnitm_AddCockpit = New DevExpress.XtraBars.BarButtonItem() + Me.bbtnitmsave_Cocpit = New DevExpress.XtraBars.BarButtonItem() + Me.bsitm_added_Changed = New DevExpress.XtraBars.BarStaticItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl() - Me.LookUpEdit1 = New DevExpress.XtraEditors.LookUpEdit() + Me.LookUpEditCockpit = New DevExpress.XtraEditors.LookUpEdit() Me.CheckEdit_Cockpit_Active = New DevExpress.XtraEditors.CheckEdit() Me.ImageCollection1 = New DevExpress.Utils.ImageCollection(Me.components) Me.TreeList_Cockpit = New DevExpress.XtraTreeList.TreeList() @@ -74,15 +79,17 @@ Partial Class frmCockpitConfig Me.LabelControl9 = New DevExpress.XtraEditors.LabelControl() Me.LabelControl8 = New DevExpress.XtraEditors.LabelControl() Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage() + Me.GridAssignedGroups = New DevExpress.XtraGrid.GridControl() + Me.ViewAssignedGroups = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.GridAvailableGroups = New DevExpress.XtraGrid.GridControl() + Me.ViewAvailableGroups = New DevExpress.XtraGrid.Views.Grid.GridView() Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl() Me.LabelControl10 = New DevExpress.XtraEditors.LabelControl() Me.LabelControl11 = New DevExpress.XtraEditors.LabelControl() - Me.GridAvailableGroups = New DevExpress.XtraGrid.GridControl() - Me.ViewAvailableGroups = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.GridAssignedGroups = New DevExpress.XtraGrid.GridControl() - Me.ViewAssignedGroups = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.TextEditCockpit_Bez = New DevExpress.XtraEditors.TextEdit() + Me.LabelControl12 = New DevExpress.XtraEditors.LabelControl() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LookUpEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LookUpEditCockpit.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.CheckEdit_Cockpit_Active.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).BeginInit() @@ -106,12 +113,13 @@ Partial Class frmCockpitConfig CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.PanelControl1.SuspendLayout() Me.XtraTabPage2.SuspendLayout() - CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.PanelControl2.SuspendLayout() - CType(Me.GridAvailableGroups, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ViewAvailableGroups, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridAssignedGroups, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ViewAssignedGroups, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridAvailableGroups, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ViewAvailableGroups, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.PanelControl2.SuspendLayout() + CType(Me.TextEditCockpit_Bez.Properties, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'RibbonControl1 @@ -119,10 +127,10 @@ Partial Class frmCockpitConfig Me.RibbonControl1.EmptyAreaImageOptions.ImagePadding = New System.Windows.Forms.Padding(35, 39, 35, 39) Me.RibbonControl1.ExpandCollapseItem.Id = 0 Me.RibbonControl1.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.bbtnSQL_Data, Me.bbtnSQL_Count, Me.bbtnitm_Save, Me.BarButtonItem4, Me.bbtnitm_NodeOverviewAdd, Me.bbtnitm_NodeProfilAdd, Me.bbtnitmCopy, Me.bsitm_info}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.bbtnSQL_Data, Me.bbtnSQL_Count, Me.bbtnitm_Save, Me.BarButtonItem4, Me.bbtnitm_NodeOverviewAdd, Me.bbtnitm_NodeProfilAdd, Me.bbtnitmCopy, Me.bsitm_info, Me.bbtnitm_DeleteCockpit, Me.bbtnitm_AddCockpit, Me.bbtnitmsave_Cocpit, Me.bsitm_added_Changed}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) Me.RibbonControl1.Margin = New System.Windows.Forms.Padding(4) - Me.RibbonControl1.MaxItemId = 11 + Me.RibbonControl1.MaxItemId = 15 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.OptionsMenuMinWidth = 385 Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) @@ -200,9 +208,37 @@ Partial Class frmCockpitConfig Me.bsitm_info.Name = "bsitm_info" Me.bsitm_info.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph ' + 'bbtnitm_DeleteCockpit + ' + Me.bbtnitm_DeleteCockpit.Caption = "Löschen" + Me.bbtnitm_DeleteCockpit.Id = 11 + Me.bbtnitm_DeleteCockpit.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm_DeleteCockpit.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.bbtnitm_DeleteCockpit.Name = "bbtnitm_DeleteCockpit" + ' + 'bbtnitm_AddCockpit + ' + Me.bbtnitm_AddCockpit.Caption = "Hinzufügen" + Me.bbtnitm_AddCockpit.Id = 12 + Me.bbtnitm_AddCockpit.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm_AddCockpit.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.bbtnitm_AddCockpit.Name = "bbtnitm_AddCockpit" + ' + 'bbtnitmsave_Cocpit + ' + Me.bbtnitmsave_Cocpit.Caption = "Speichern" + Me.bbtnitmsave_Cocpit.Id = 13 + Me.bbtnitmsave_Cocpit.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitmsave_Cocpit.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.bbtnitmsave_Cocpit.Name = "bbtnitmsave_Cocpit" + ' + 'bsitm_added_Changed + ' + Me.bsitm_added_Changed.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right + Me.bsitm_added_Changed.Caption = "Added and Changed - Selection awaiting" + Me.bsitm_added_Changed.Id = 14 + Me.bsitm_added_Changed.Name = "bsitm_added_Changed" + ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3}) Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Text = "Start" ' @@ -227,10 +263,20 @@ Partial Class frmCockpitConfig Me.RibbonPageGroup2.Name = "RibbonPageGroup2" Me.RibbonPageGroup2.Text = "Knoten Aktionen" ' + 'RibbonPageGroup3 + ' + Me.RibbonPageGroup3.AllowTextClipping = False + Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtnitm_DeleteCockpit) + Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtnitm_AddCockpit) + Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtnitmsave_Cocpit) + Me.RibbonPageGroup3.Name = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Cockpit Aktionen" + ' 'RibbonStatusBar1 ' Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitm_info) - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 711) + Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitm_added_Changed) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 685) Me.RibbonStatusBar1.Margin = New System.Windows.Forms.Padding(4) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 @@ -245,30 +291,30 @@ Partial Class frmCockpitConfig ' Me.LabelControl1.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl1.Appearance.Options.UseFont = True - Me.LabelControl1.Location = New System.Drawing.Point(12, 167) + Me.LabelControl1.Location = New System.Drawing.Point(13, 167) Me.LabelControl1.Name = "LabelControl1" Me.LabelControl1.Size = New System.Drawing.Size(83, 17) Me.LabelControl1.TabIndex = 16 Me.LabelControl1.Text = "Wähle Cockpit" ' - 'LookUpEdit1 + 'LookUpEditCockpit ' - Me.LookUpEdit1.Location = New System.Drawing.Point(12, 190) - Me.LookUpEdit1.MenuManager = Me.RibbonControl1 - Me.LookUpEdit1.Name = "LookUpEdit1" - Me.LookUpEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.LookUpEdit1.Properties.Appearance.Options.UseFont = True - Me.LookUpEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.LookUpEdit1.Size = New System.Drawing.Size(289, 24) - Me.LookUpEdit1.TabIndex = 17 + Me.LookUpEditCockpit.Location = New System.Drawing.Point(13, 184) + Me.LookUpEditCockpit.MenuManager = Me.RibbonControl1 + Me.LookUpEditCockpit.Name = "LookUpEditCockpit" + Me.LookUpEditCockpit.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LookUpEditCockpit.Properties.Appearance.Options.UseFont = True + Me.LookUpEditCockpit.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.LookUpEditCockpit.Size = New System.Drawing.Size(312, 24) + Me.LookUpEditCockpit.TabIndex = 17 ' 'CheckEdit_Cockpit_Active ' - Me.CheckEdit_Cockpit_Active.Location = New System.Drawing.Point(320, 191) + Me.CheckEdit_Cockpit_Active.Location = New System.Drawing.Point(343, 188) Me.CheckEdit_Cockpit_Active.MenuManager = Me.RibbonControl1 Me.CheckEdit_Cockpit_Active.Name = "CheckEdit_Cockpit_Active" Me.CheckEdit_Cockpit_Active.Properties.Caption = "Active" - Me.CheckEdit_Cockpit_Active.Size = New System.Drawing.Size(64, 18) + Me.CheckEdit_Cockpit_Active.Size = New System.Drawing.Size(52, 18) Me.CheckEdit_Cockpit_Active.TabIndex = 20 ' 'ImageCollection1 @@ -282,10 +328,12 @@ Partial Class frmCockpitConfig ' 'TreeList_Cockpit ' + Me.TreeList_Cockpit.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.TreeList_Cockpit.Font = New System.Drawing.Font("Tahoma", 9.75!) Me.TreeList_Cockpit.ImageIndexFieldName = "ICON_ID" Me.TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID" - Me.TreeList_Cockpit.Location = New System.Drawing.Point(12, 220) + Me.TreeList_Cockpit.Location = New System.Drawing.Point(12, 236) Me.TreeList_Cockpit.MenuManager = Me.RibbonControl1 Me.TreeList_Cockpit.Name = "TreeList_Cockpit" Me.TreeList_Cockpit.OptionsBehavior.Editable = False @@ -304,14 +352,14 @@ Partial Class frmCockpitConfig Me.TreeList_Cockpit.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark Me.TreeList_Cockpit.ParentFieldName = "PARENT_ID" Me.TreeList_Cockpit.SelectImageList = Me.ImageCollection1 - Me.TreeList_Cockpit.Size = New System.Drawing.Size(383, 236) + Me.TreeList_Cockpit.Size = New System.Drawing.Size(383, 210) Me.TreeList_Cockpit.TabIndex = 24 ' 'LabelControl2 ' Me.LabelControl2.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl2.Appearance.Options.UseFont = True - Me.LabelControl2.Location = New System.Drawing.Point(418, 220) + Me.LabelControl2.Location = New System.Drawing.Point(418, 236) Me.LabelControl2.Name = "LabelControl2" Me.LabelControl2.Size = New System.Drawing.Size(12, 17) Me.LabelControl2.TabIndex = 27 @@ -321,7 +369,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl3.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl3.Appearance.Options.UseFont = True - Me.LabelControl3.Location = New System.Drawing.Point(495, 220) + Me.LabelControl3.Location = New System.Drawing.Point(495, 236) Me.LabelControl3.Name = "LabelControl3" Me.LabelControl3.Size = New System.Drawing.Size(49, 17) Me.LabelControl3.TabIndex = 28 @@ -331,7 +379,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl4.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl4.Appearance.Options.UseFont = True - Me.LabelControl4.Location = New System.Drawing.Point(418, 270) + Me.LabelControl4.Location = New System.Drawing.Point(418, 286) Me.LabelControl4.Name = "LabelControl4" Me.LabelControl4.Size = New System.Drawing.Size(67, 17) Me.LabelControl4.TabIndex = 29 @@ -339,7 +387,7 @@ Partial Class frmCockpitConfig ' 'TextEdit_PK_CFG_COCKPIT_DEFINITION_ID ' - Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Location = New System.Drawing.Point(418, 240) + Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Location = New System.Drawing.Point(418, 256) Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.MenuManager = Me.RibbonControl1 Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Name = "TextEdit_PK_CFG_COCKPIT_DEFINITION_ID" Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -350,7 +398,7 @@ Partial Class frmCockpitConfig ' 'TextEdit_ParentID ' - Me.TextEdit_ParentID.Location = New System.Drawing.Point(495, 240) + Me.TextEdit_ParentID.Location = New System.Drawing.Point(495, 256) Me.TextEdit_ParentID.MenuManager = Me.RibbonControl1 Me.TextEdit_ParentID.Name = "TextEdit_ParentID" Me.TextEdit_ParentID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -361,7 +409,7 @@ Partial Class frmCockpitConfig ' 'LookUpEditTypeID ' - Me.LookUpEditTypeID.Location = New System.Drawing.Point(418, 293) + Me.LookUpEditTypeID.Location = New System.Drawing.Point(418, 309) Me.LookUpEditTypeID.MenuManager = Me.RibbonControl1 Me.LookUpEditTypeID.Name = "LookUpEditTypeID" Me.LookUpEditTypeID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -372,7 +420,7 @@ Partial Class frmCockpitConfig ' 'TextEdit_Bezeichnung ' - Me.TextEdit_Bezeichnung.Location = New System.Drawing.Point(566, 240) + Me.TextEdit_Bezeichnung.Location = New System.Drawing.Point(566, 256) Me.TextEdit_Bezeichnung.MenuManager = Me.RibbonControl1 Me.TextEdit_Bezeichnung.Name = "TextEdit_Bezeichnung" Me.TextEdit_Bezeichnung.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -384,7 +432,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl5.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl5.Appearance.Options.UseFont = True - Me.LabelControl5.Location = New System.Drawing.Point(566, 220) + Me.LabelControl5.Location = New System.Drawing.Point(566, 236) Me.LabelControl5.Name = "LabelControl5" Me.LabelControl5.Size = New System.Drawing.Size(72, 17) Me.LabelControl5.TabIndex = 35 @@ -392,7 +440,7 @@ Partial Class frmCockpitConfig ' 'CheckEdit_Active ' - Me.CheckEdit_Active.Location = New System.Drawing.Point(855, 241) + Me.CheckEdit_Active.Location = New System.Drawing.Point(855, 257) Me.CheckEdit_Active.MenuManager = Me.RibbonControl1 Me.CheckEdit_Active.Name = "CheckEdit_Active" Me.CheckEdit_Active.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -403,7 +451,7 @@ Partial Class frmCockpitConfig ' 'LookUpEdit_Image ' - Me.LookUpEdit_Image.Location = New System.Drawing.Point(418, 403) + Me.LookUpEdit_Image.Location = New System.Drawing.Point(418, 419) Me.LookUpEdit_Image.MenuManager = Me.RibbonControl1 Me.LookUpEdit_Image.Name = "LookUpEdit_Image" Me.LookUpEdit_Image.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -416,7 +464,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl6.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl6.Appearance.Options.UseFont = True - Me.LabelControl6.Location = New System.Drawing.Point(418, 380) + Me.LabelControl6.Location = New System.Drawing.Point(418, 396) Me.LabelControl6.Name = "LabelControl6" Me.LabelControl6.Size = New System.Drawing.Size(47, 17) Me.LabelControl6.TabIndex = 38 @@ -424,7 +472,7 @@ Partial Class frmCockpitConfig ' 'TextEdit_Comment ' - Me.TextEdit_Comment.Location = New System.Drawing.Point(573, 403) + Me.TextEdit_Comment.Location = New System.Drawing.Point(573, 419) Me.TextEdit_Comment.MenuManager = Me.RibbonControl1 Me.TextEdit_Comment.Name = "TextEdit_Comment" Me.TextEdit_Comment.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -436,7 +484,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl7.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl7.Appearance.Options.UseFont = True - Me.LabelControl7.Location = New System.Drawing.Point(573, 380) + Me.LabelControl7.Location = New System.Drawing.Point(573, 396) Me.LabelControl7.Name = "LabelControl7" Me.LabelControl7.Size = New System.Drawing.Size(65, 17) Me.LabelControl7.TabIndex = 40 @@ -446,7 +494,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl_Profil.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl_Profil.Appearance.Options.UseFont = True - Me.LabelControl_Profil.Location = New System.Drawing.Point(566, 270) + Me.LabelControl_Profil.Location = New System.Drawing.Point(566, 286) Me.LabelControl_Profil.Name = "LabelControl_Profil" Me.LabelControl_Profil.Size = New System.Drawing.Size(30, 17) Me.LabelControl_Profil.TabIndex = 42 @@ -454,7 +502,7 @@ Partial Class frmCockpitConfig ' 'LookUpEditProfil ' - Me.LookUpEditProfil.Location = New System.Drawing.Point(566, 293) + Me.LookUpEditProfil.Location = New System.Drawing.Point(566, 309) Me.LookUpEditProfil.MenuManager = Me.RibbonControl1 Me.LookUpEditProfil.Name = "LookUpEditProfil" Me.LookUpEditProfil.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -465,7 +513,7 @@ Partial Class frmCockpitConfig ' 'LookUpEditChart ' - Me.LookUpEditChart.Location = New System.Drawing.Point(418, 350) + Me.LookUpEditChart.Location = New System.Drawing.Point(418, 366) Me.LookUpEditChart.MenuManager = Me.RibbonControl1 Me.LookUpEditChart.Name = "LookUpEditChart" Me.LookUpEditChart.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -478,7 +526,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl_Chart.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl_Chart.Appearance.Options.UseFont = True - Me.LabelControl_Chart.Location = New System.Drawing.Point(418, 327) + Me.LabelControl_Chart.Location = New System.Drawing.Point(418, 343) Me.LabelControl_Chart.Name = "LabelControl_Chart" Me.LabelControl_Chart.Size = New System.Drawing.Size(91, 17) Me.LabelControl_Chart.TabIndex = 44 @@ -486,7 +534,7 @@ Partial Class frmCockpitConfig ' 'LookUpEditMonitor ' - Me.LookUpEditMonitor.Location = New System.Drawing.Point(567, 350) + Me.LookUpEditMonitor.Location = New System.Drawing.Point(567, 366) Me.LookUpEditMonitor.MenuManager = Me.RibbonControl1 Me.LookUpEditMonitor.Name = "LookUpEditMonitor" Me.LookUpEditMonitor.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -499,7 +547,7 @@ Partial Class frmCockpitConfig ' Me.LabelControl_Monitor.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.LabelControl_Monitor.Appearance.Options.UseFont = True - Me.LabelControl_Monitor.Location = New System.Drawing.Point(567, 327) + Me.LabelControl_Monitor.Location = New System.Drawing.Point(567, 343) Me.LabelControl_Monitor.Name = "LabelControl_Monitor" Me.LabelControl_Monitor.Size = New System.Drawing.Size(107, 17) Me.LabelControl_Monitor.TabIndex = 46 @@ -510,10 +558,10 @@ Partial Class frmCockpitConfig Me.XtraTabControl1.AllowDrop = True Me.XtraTabControl1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.XtraTabControl1.Location = New System.Drawing.Point(12, 462) + Me.XtraTabControl1.Location = New System.Drawing.Point(12, 452) Me.XtraTabControl1.Name = "XtraTabControl1" Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1 - Me.XtraTabControl1.Size = New System.Drawing.Size(921, 242) + Me.XtraTabControl1.Size = New System.Drawing.Size(921, 229) Me.XtraTabControl1.TabIndex = 50 Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2}) ' @@ -523,7 +571,7 @@ Partial Class frmCockpitConfig Me.XtraTabPage1.Controls.Add(Me.gridAvailableUsers) Me.XtraTabPage1.Controls.Add(Me.PanelControl1) Me.XtraTabPage1.Name = "XtraTabPage1" - Me.XtraTabPage1.Size = New System.Drawing.Size(919, 219) + Me.XtraTabPage1.Size = New System.Drawing.Size(919, 206) Me.XtraTabPage1.Text = "User zu Cockpit" ' 'gridAssignedUsers @@ -533,7 +581,7 @@ Partial Class frmCockpitConfig Me.gridAssignedUsers.Location = New System.Drawing.Point(406, 33) Me.gridAssignedUsers.MainView = Me.viewAssignedUsers Me.gridAssignedUsers.Name = "gridAssignedUsers" - Me.gridAssignedUsers.Size = New System.Drawing.Size(513, 186) + Me.gridAssignedUsers.Size = New System.Drawing.Size(513, 173) Me.gridAssignedUsers.TabIndex = 7 Me.gridAssignedUsers.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.viewAssignedUsers}) ' @@ -552,7 +600,7 @@ Partial Class frmCockpitConfig Me.gridAvailableUsers.Location = New System.Drawing.Point(0, 33) Me.gridAvailableUsers.MainView = Me.viewAvailableUsers Me.gridAvailableUsers.Name = "gridAvailableUsers" - Me.gridAvailableUsers.Size = New System.Drawing.Size(406, 186) + Me.gridAvailableUsers.Size = New System.Drawing.Size(406, 173) Me.gridAvailableUsers.TabIndex = 6 Me.gridAvailableUsers.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.viewAvailableUsers}) ' @@ -602,9 +650,49 @@ Partial Class frmCockpitConfig Me.XtraTabPage2.Controls.Add(Me.GridAvailableGroups) Me.XtraTabPage2.Controls.Add(Me.PanelControl2) Me.XtraTabPage2.Name = "XtraTabPage2" - Me.XtraTabPage2.Size = New System.Drawing.Size(919, 219) + Me.XtraTabPage2.Size = New System.Drawing.Size(919, 206) Me.XtraTabPage2.Text = "Gruppe zu Cockpit" ' + 'GridAssignedGroups + ' + Me.GridAssignedGroups.AllowDrop = True + Me.GridAssignedGroups.Dock = System.Windows.Forms.DockStyle.Fill + Me.GridAssignedGroups.Location = New System.Drawing.Point(406, 33) + Me.GridAssignedGroups.MainView = Me.ViewAssignedGroups + Me.GridAssignedGroups.Name = "GridAssignedGroups" + Me.GridAssignedGroups.Size = New System.Drawing.Size(513, 173) + Me.GridAssignedGroups.TabIndex = 8 + Me.GridAssignedGroups.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAssignedGroups}) + ' + 'ViewAssignedGroups + ' + Me.ViewAssignedGroups.DetailHeight = 295 + Me.ViewAssignedGroups.GridControl = Me.GridAssignedGroups + Me.ViewAssignedGroups.Name = "ViewAssignedGroups" + Me.ViewAssignedGroups.OptionsView.ShowAutoFilterRow = True + Me.ViewAssignedGroups.OptionsView.ShowGroupPanel = False + ' + 'GridAvailableGroups + ' + Me.GridAvailableGroups.AllowDrop = True + Me.GridAvailableGroups.Dock = System.Windows.Forms.DockStyle.Left + Me.GridAvailableGroups.Location = New System.Drawing.Point(0, 33) + Me.GridAvailableGroups.MainView = Me.ViewAvailableGroups + Me.GridAvailableGroups.Name = "GridAvailableGroups" + Me.GridAvailableGroups.Size = New System.Drawing.Size(406, 173) + Me.GridAvailableGroups.TabIndex = 7 + Me.GridAvailableGroups.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAvailableGroups}) + ' + 'ViewAvailableGroups + ' + Me.ViewAvailableGroups.DetailHeight = 295 + Me.ViewAvailableGroups.GridControl = Me.GridAvailableGroups + Me.ViewAvailableGroups.Name = "ViewAvailableGroups" + Me.ViewAvailableGroups.OptionsBehavior.Editable = False + Me.ViewAvailableGroups.OptionsBehavior.ReadOnly = True + Me.ViewAvailableGroups.OptionsView.ShowAutoFilterRow = True + Me.ViewAvailableGroups.OptionsView.ShowGroupPanel = False + ' 'PanelControl2 ' Me.PanelControl2.Controls.Add(Me.LabelControl10) @@ -635,53 +723,36 @@ Partial Class frmCockpitConfig Me.LabelControl11.TabIndex = 0 Me.LabelControl11.Text = "Nicht zugeordnete Gruppen" ' - 'GridAvailableGroups + 'TextEditCockpit_Bez ' - Me.GridAvailableGroups.AllowDrop = True - Me.GridAvailableGroups.Dock = System.Windows.Forms.DockStyle.Left - Me.GridAvailableGroups.Location = New System.Drawing.Point(0, 33) - Me.GridAvailableGroups.MainView = Me.ViewAvailableGroups - Me.GridAvailableGroups.Name = "GridAvailableGroups" - Me.GridAvailableGroups.Size = New System.Drawing.Size(406, 186) - Me.GridAvailableGroups.TabIndex = 7 - Me.GridAvailableGroups.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAvailableGroups}) + Me.TextEditCockpit_Bez.Location = New System.Drawing.Point(418, 187) + Me.TextEditCockpit_Bez.MenuManager = Me.RibbonControl1 + Me.TextEditCockpit_Bez.Name = "TextEditCockpit_Bez" + Me.TextEditCockpit_Bez.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.TextEditCockpit_Bez.Properties.Appearance.Options.UseFont = True + Me.TextEditCockpit_Bez.Size = New System.Drawing.Size(431, 24) + Me.TextEditCockpit_Bez.TabIndex = 55 ' - 'ViewAvailableGroups + 'LabelControl12 ' - Me.ViewAvailableGroups.DetailHeight = 295 - Me.ViewAvailableGroups.GridControl = Me.GridAvailableGroups - Me.ViewAvailableGroups.Name = "ViewAvailableGroups" - Me.ViewAvailableGroups.OptionsBehavior.Editable = False - Me.ViewAvailableGroups.OptionsBehavior.ReadOnly = True - Me.ViewAvailableGroups.OptionsView.ShowAutoFilterRow = True - Me.ViewAvailableGroups.OptionsView.ShowGroupPanel = False - ' - 'GridAssignedGroups - ' - Me.GridAssignedGroups.AllowDrop = True - Me.GridAssignedGroups.Dock = System.Windows.Forms.DockStyle.Fill - Me.GridAssignedGroups.Location = New System.Drawing.Point(406, 33) - Me.GridAssignedGroups.MainView = Me.ViewAssignedGroups - Me.GridAssignedGroups.Name = "GridAssignedGroups" - Me.GridAssignedGroups.Size = New System.Drawing.Size(513, 186) - Me.GridAssignedGroups.TabIndex = 8 - Me.GridAssignedGroups.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAssignedGroups}) - ' - 'ViewAssignedGroups - ' - Me.ViewAssignedGroups.DetailHeight = 295 - Me.ViewAssignedGroups.GridControl = Me.GridAssignedGroups - Me.ViewAssignedGroups.Name = "ViewAssignedGroups" - Me.ViewAssignedGroups.OptionsView.ShowAutoFilterRow = True - Me.ViewAssignedGroups.OptionsView.ShowGroupPanel = False + Me.LabelControl12.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelControl12.Appearance.Options.UseFont = True + Me.LabelControl12.Location = New System.Drawing.Point(418, 167) + Me.LabelControl12.Name = "LabelControl12" + Me.LabelControl12.Size = New System.Drawing.Size(120, 17) + Me.LabelControl12.TabIndex = 54 + Me.LabelControl12.Text = "Bezeichnung ändern:" ' 'frmCockpitConfig ' Me.Appearance.Options.UseFont = True Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(974, 733) + Me.ClientSize = New System.Drawing.Size(974, 707) + Me.Controls.Add(Me.TextEditCockpit_Bez) + Me.Controls.Add(Me.LabelControl12) Me.Controls.Add(Me.XtraTabControl1) + Me.Controls.Add(Me.LabelControl1) Me.Controls.Add(Me.LookUpEditMonitor) Me.Controls.Add(Me.LabelControl_Monitor) Me.Controls.Add(Me.LookUpEditChart) @@ -703,8 +774,7 @@ Partial Class frmCockpitConfig Me.Controls.Add(Me.LabelControl2) Me.Controls.Add(Me.TreeList_Cockpit) Me.Controls.Add(Me.CheckEdit_Cockpit_Active) - Me.Controls.Add(Me.LookUpEdit1) - Me.Controls.Add(Me.LabelControl1) + Me.Controls.Add(Me.LookUpEditCockpit) Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonControl1) Me.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) @@ -715,7 +785,7 @@ Partial Class frmCockpitConfig Me.StatusBar = Me.RibbonStatusBar1 Me.Text = "Cockpit Config" CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LookUpEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LookUpEditCockpit.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.CheckEdit_Cockpit_Active.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).EndInit() @@ -740,13 +810,14 @@ Partial Class frmCockpitConfig Me.PanelControl1.ResumeLayout(False) Me.PanelControl1.PerformLayout() Me.XtraTabPage2.ResumeLayout(False) + CType(Me.GridAssignedGroups, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ViewAssignedGroups, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridAvailableGroups, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ViewAvailableGroups, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).EndInit() Me.PanelControl2.ResumeLayout(False) Me.PanelControl2.PerformLayout() - CType(Me.GridAvailableGroups, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewAvailableGroups, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.GridAssignedGroups, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ViewAssignedGroups, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextEditCockpit_Bez.Properties, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -761,7 +832,7 @@ Partial Class frmCockpitConfig Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl - Friend WithEvents LookUpEdit1 As DevExpress.XtraEditors.LookUpEdit + Friend WithEvents LookUpEditCockpit As DevExpress.XtraEditors.LookUpEdit Friend WithEvents CheckEdit_Cockpit_Active As DevExpress.XtraEditors.CheckEdit Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection Friend WithEvents TreeList_Cockpit As DevExpress.XtraTreeList.TreeList @@ -809,4 +880,11 @@ Partial Class frmCockpitConfig Friend WithEvents ViewAssignedGroups As DevExpress.XtraGrid.Views.Grid.GridView Friend WithEvents GridAvailableGroups As DevExpress.XtraGrid.GridControl Friend WithEvents ViewAvailableGroups As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents bbtnitm_DeleteCockpit As DevExpress.XtraBars.BarButtonItem + Friend WithEvents bbtnitm_AddCockpit As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents bbtnitmsave_Cocpit As DevExpress.XtraBars.BarButtonItem + Friend WithEvents TextEditCockpit_Bez As DevExpress.XtraEditors.TextEdit + Friend WithEvents LabelControl12 As DevExpress.XtraEditors.LabelControl + Friend WithEvents bsitm_added_Changed As DevExpress.XtraBars.BarStaticItem End Class diff --git a/app/TaskFlow/frmCockpitConfig.resx b/app/TaskFlow/frmCockpitConfig.resx index cf193e2..27ab102 100644 --- a/app/TaskFlow/frmCockpitConfig.resx +++ b/app/TaskFlow/frmCockpitConfig.resx @@ -318,6 +318,64 @@ MnogTTE2LDZjMS4xLDAsMiwwLjksMiwycy0wLjksMi0yLDJzLTItMC45LTItMiAgIFMxNC45LDYsMTYs NnogTTIwLDI0aC04di0yaDJ2LThoLTJ2LTJoMmg0djEwaDJWMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAg PC9nPg0KPC9zdmc+Cw== + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD4DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku + WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4 + N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk + aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTE4LjgsMTZsOC45 + LTguOWMwLjQtMC40LDAuNC0xLDAtMS40bC0xLjQtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE2LDEz + LjJMNy4xLDQuM2MtMC40LTAuNC0xLTAuNC0xLjQsMCAgTDQuMyw1LjdjLTAuNCwwLjQtMC40LDEsMCwx + LjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSww + LjQsMS40LDBsOC45LTguOWw4LjksOC45ICBjMC40LDAuNCwxLDAuNCwxLjQsMGwxLjQtMS40YzAuNC0w + LjQsMC40LTEsMC0xLjRMMTguOCwxNnoiIGNsYXNzPSJSZWQiIC8+DQo8L3N2Zz4L + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0 + QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0 + LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N + Cjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMICAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku + WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4 + N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk + aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTI3LDRoLTN2MTBI + OFY0SDVDNC40LDQsNCw0LjQsNCw1djIyYzAsMC42LDAuNCwxLDEsMWgyMmMwLjYsMCwxLTAuNCwxLTFW + NUMyOCw0LjQsMjcuNiw0LDI3LDR6IE0yNCwyNEg4di02ICBoMTZWMjR6IE0xMCw0djhoMTBWNEgxMHog + TTE0LDEwaC0yVjZoMlYxMHoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs= diff --git a/app/TaskFlow/frmCockpitConfig.vb b/app/TaskFlow/frmCockpitConfig.vb index 76856c6..33533be 100644 --- a/app/TaskFlow/frmCockpitConfig.vb +++ b/app/TaskFlow/frmCockpitConfig.vb @@ -1,10 +1,11 @@ Imports DevExpress.XtraBars.Ribbon Imports DigitalData.GUIs.Common +Imports OracleInternal Imports taskFLOW.DD_DMSLiteDataSetTableAdapters Public Class frmCockpitConfig Private Selected_Cockpit_ID As Integer - Private LoadInAction As Boolean = False + Private Load_CP_InAction As Boolean = False Private _treeNodeCounts As New Dictionary(Of Integer, Integer) Private _currentCockpitDefinition As CockpitDefinitionData ' <-- NEU ' ===== NESTED CLASS FÜR COCKPIT-DEFINITION ===== @@ -79,39 +80,87 @@ Public Class frmCockpitConfig End Sub Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick - Load_TBTF_CFG_COCKPIT_DEFINITION() + Load_CFG_COCKPIT() End Sub Sub Load_CFG_COCKPIT() Try - LoadInAction = True - Dim oSQL = "SELECT PK_CFG_COCKPIT_ID, ACTIVE, NAME, COMMENT FROM TBTF_CFG_COCKPIT WITH (NOLOCK)" + Load_CP_InAction = True + Dim oSQL = "SELECT PK_CFG_COCKPIT_ID, ACTIVE, NAME, COMMENT FROM TBTF_CFG_COCKPIT WITH (NOLOCK) ORDER BY NAME" Dim DT_CONFIG = DatabaseFallback.GetDatatableECM(oSQL) - If Not IsNothing(DT_CONFIG) Then + If Not IsNothing(DT_CONFIG) AndAlso DT_CONFIG.Rows.Count > 0 Then ' DataBindings.Clear() ist nur für Two-Way-Binding notwendig - LookUpEdit1.Properties.DataSource = DT_CONFIG - LookUpEdit1.Properties.DisplayMember = "NAME" - LookUpEdit1.Properties.ValueMember = "PK_CFG_COCKPIT_ID" + LookUpEditCockpit.Properties.DataSource = DT_CONFIG + LookUpEditCockpit.Properties.DisplayMember = "NAME" + LookUpEditCockpit.Properties.ValueMember = "PK_CFG_COCKPIT_ID" ' Spalten automatisch aus DataSource generieren - LookUpEdit1.Properties.PopulateColumns() + LookUpEditCockpit.Properties.PopulateColumns() ' Jetzt können Sie die Spalten konfigurieren - LookUpEdit1.Properties.Columns("PK_CFG_COCKPIT_ID").Visible = False - LookUpEdit1.Properties.Columns("ACTIVE").Visible = False - LookUpEdit1.Properties.Columns("COMMENT").Visible = False + LookUpEditCockpit.Properties.Columns("PK_CFG_COCKPIT_ID").Visible = False + LookUpEditCockpit.Properties.Columns("ACTIVE").Visible = False + LookUpEditCockpit.Properties.Columns("COMMENT").Visible = False ' Optional: Erste Element auswählen - LookUpEdit1.EditValue = DT_CONFIG.Rows(0)("PK_CFG_COCKPIT_ID") + LookUpEditCockpit.EditValue = DT_CONFIG.Rows(0)("PK_CFG_COCKPIT_ID") ' Optional: Dropdown-Style festlegen - LookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor + LookUpEditCockpit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor Else MsgBox("No cockpit config found.", MsgBoxStyle.Exclamation) + LOGGER.Warn($"Load_CFG_COCKPIT: No rows returned from database query: {oSQL}") End If Catch ex As Exception LOGGER.Error($"Error in Load_CFG_COCKPIT: {ex.Message}") + LOGGER.Error(ex) Finally - LoadInAction = False - + Load_CP_InAction = False End Try + End Sub + Sub Display_Added_Changed(myentity As String, Optional pkValue As Integer = 0) + Dim oSQL = String.Empty + Dim oTable As String + Dim oPKName As String + Dim oPK As String + Select Case myentity + Case "Cockpit" + oTable = "TBTF_CFG_COCKPIT" + oPKName = "PK_CFG_COCKPIT_ID" + oPK = Selected_Cockpit_ID + Case "CockpitDefinition" + oTable = "TBTF_CFG_COCKPIT_DEFINITION" + oPKName = "PK_CFG_COCKPIT_DEFINITION_ID" + If _currentCockpitDefinition IsNot Nothing Then + oPK = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID + Else + bsitm_info_Display("Display_Added_Changed: _currentCockpitDefinition is Nothing", True) + Exit Sub + End If + Case "MapConfig" + oTable = "TBTF_MAP_COCKPIT" + oPKName = "PK_MAP_COCKPIT_ID" + oPK = pkValue ' Übergebener Wert verwenden + End Select + If IsNothing(oTable) Or IsNothing(oPKName) Or IsNothing(oPK) Then + bsitm_info_Display("No definition found for entity: " & myentity, True) + bsitm_added_Changed.Caption = "" + Exit Sub + End If + oSQL = $"SELECT ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN" & vbCrLf & + $"FROM {oTable} With (NOLOCK) WHERE {oPKName} = {oPK}" + Dim oDT As DataTable = DatabaseFallback.GetDatatableECM(oSQL) + If oDT IsNot Nothing AndAlso oDT.Rows.Count > 0 Then + Dim row = oDT.Rows(0) + ' ===== ODER IN INFO-BAR ANZEIGEN ===== + Dim infoText = $"Gewählte Einheit: {myentity} - Erstellt: {If(IsDBNull(row("ADDED_WHO")), "N/A", row("ADDED_WHO").ToString())} " & + $"am {If(IsDBNull(row("ADDED_WHEN")), "N/A", CDate(row("ADDED_WHEN")).ToString("dd.MM.yyyy HH:mm"))} | " & + $"Geändert: {If(IsDBNull(row("CHANGED_WHO")), "N/A", row("CHANGED_WHO").ToString())} " & + $"am {If(IsDBNull(row("CHANGED_WHEN")), "N/A", CDate(row("CHANGED_WHEN")).ToString("dd.MM.yyyy HH:mm"))}" + + bsitm_added_Changed.Caption = infoText + LOGGER.Debug($"Display_Added_Changed: {infoText}") + Else + LOGGER.Warn($"Display_Added_Changed: No data found for {myentity} with PK={oPK}") + bsitm_info_Display($"Keine Informationen gefunden für {myentity}", True) + End If End Sub Sub Load_TBTF_CFG_COCKPIT_DEFINITION() Try @@ -198,14 +247,16 @@ Public Class frmCockpitConfig End Try End Sub - Private Sub LookUpEdit1_EditValueChanged(sender As Object, e As EventArgs) Handles LookUpEdit1.EditValueChanged - If Not IsNothing(LookUpEdit1.EditValue) Then + Private Sub LookUpEdit1_EditValueChanged(sender As Object, e As EventArgs) Handles LookUpEditCockpit.EditValueChanged + If Not IsNothing(LookUpEditCockpit.EditValue) Then Try - Selected_Cockpit_ID = LookUpEdit1.EditValue - CheckEdit_Cockpit_Active.Checked = LookUpEdit1.Properties.GetDataSourceValue("ACTIVE", LookUpEdit1.ItemIndex) + Selected_Cockpit_ID = LookUpEditCockpit.EditValue + CheckEdit_Cockpit_Active.Checked = LookUpEditCockpit.Properties.GetDataSourceValue("ACTIVE", LookUpEditCockpit.ItemIndex) + TextEditCockpit_Bez.Text = LookUpEditCockpit.Properties.GetDataSourceValue("NAME", LookUpEditCockpit.ItemIndex).ToString() Load_TBTF_CFG_COCKPIT_DEFINITION() Load_Free_User_2_Cockpit() Load_Assigned_User_2_Cockpit() + Display_Added_Changed("Cockpit") Catch ex As Exception LOGGER.Error($"Error in LookUpEdit1_EditValueChanged: {ex.Message}") End Try @@ -222,15 +273,6 @@ Public Class frmCockpitConfig Load_Monitor_LookUp() Load_CFG_COCKPIT() End Sub - Private Sub CheckEdit_Cockpit_Active_CheckedChanged(sender As Object, e As EventArgs) Handles CheckEdit_Cockpit_Active.CheckedChanged - If LoadInAction Then - Exit Sub - End If - Dim updateSQL = $"UPDATE TBTF_CFG_COCKPIT SET ACTIVE = {(If(CheckEdit_Cockpit_Active.Checked, 1, 0))}, - CHANGED_WHO = '{Environment.UserName}', CHANGED_WHEN = GETDATE() - WHERE PK_CFG_COCKPIT_ID = {Selected_Cockpit_ID}" - Dim result = DatabaseFallback.ExecuteNonQueryECM(updateSQL) - End Sub Private Sub Load_TreeView_CONFIG(pDTNodes As DataTable) Try LOGGER.Debug("=== TreeView Data Analysis ===") @@ -388,7 +430,7 @@ Public Class frmCockpitConfig Exit Sub End If - If LoadInAction = True Then + If Load_CP_InAction = True Then LOGGER.Debug("TreeList1_FocusedNodeChanged: Form not shown - skipping") Exit Sub End If @@ -411,7 +453,7 @@ Public Class frmCockpitConfig LOGGER.Debug("ProcessTreeListNodeAsync: TYPE_ID is Nothing - Folder node, skipping") Exit Function End If - + Display_Added_Changed("CockpitDefinition") ' Jetzt können Sie überall im Formular auf _currentCockpitDefinition zugreifen ' z.B. _currentCockpitDefinition.SQL_Query, _currentCockpitDefinition.TypeID.Value etc. TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Text = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID.ToString() @@ -431,8 +473,31 @@ Public Class frmCockpitConfig LookUpEditChart.EditValue = 0 End If If _currentCockpitDefinition.FK_MonitorID.HasValue Then + 'LOGGER.Debug($"Attempting to set FK_MonitorID to: {_currentCockpitDefinition.FK_MonitorID.Value}") + 'LOGGER.Debug($"FK_MonitorID Value Type: {_currentCockpitDefinition.FK_MonitorID.Value.GetType().Name}") + + ' Prüfen, ob der Wert in der DataSource existiert + 'Dim dt As DataTable = TryCast(LookUpEditMonitor.Properties.DataSource, DataTable) + 'If dt IsNot Nothing Then + ' ' ===== EXAKTE TYPPRÜFUNG ===== + ' For Each row As DataRow In dt.Rows + ' Dim idValue = row("ID") + ' LOGGER.Debug($"Comparing: FK_MonitorID={_currentCockpitDefinition.FK_MonitorID.Value} ({_currentCockpitDefinition.FK_MonitorID.Value.GetType().Name}) with DataSource ID={idValue} ({idValue.GetType().Name}), Equal={idValue.Equals(_currentCockpitDefinition.FK_MonitorID.Value)}") + ' Next + + ' Dim exists = dt.AsEnumerable().Any(Function(r) CInt(r("ID")) = _currentCockpitDefinition.FK_MonitorID.Value) + ' LOGGER.Debug($"Value {_currentCockpitDefinition.FK_MonitorID.Value} exists in DataSource: {exists}") + + ' If Not exists Then + ' LOGGER.Warn($"FK_MonitorID value {_currentCockpitDefinition.FK_MonitorID.Value} not found in TBPM_MONITOR_KONFIG!") + ' End If + 'End If + LookUpEditMonitor.EditValue = _currentCockpitDefinition.FK_MonitorID.Value + 'LOGGER.Debug($"LookUpEditMonitor.EditValue after set: {LookUpEditMonitor.EditValue}") + 'LOGGER.Debug($"LookUpEditMonitor.Text after set: {LookUpEditMonitor.Text}") Else + LOGGER.Debug("FK_MonitorID is Nothing - setting LookUpEditMonitor.EditValue to 0") LookUpEditMonitor.EditValue = 0 End If @@ -511,10 +576,6 @@ Public Class frmCockpitConfig Initialize_DragDrop_User() Initialize_DragDrop_Groups() End Sub - - Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) - - End Sub Private Sub Load_TypeID_LookUp() Try Dim typeList As New List(Of Object) From { @@ -571,9 +632,25 @@ Public Class frmCockpitConfig End Sub Private Sub Load_Monitor_LookUp() Try - Dim oSQL = "SELECT 0 ID UNION SELECT DISTINCT COCKPIT_ID ID FROM TBPM_MONITOR_KONFIG WITH (NOLOCK) ORDER BY ID" + Dim oSQL = "SELECT CAST(0 AS INT) ID UNION SELECT DISTINCT CAST(COCKPIT_ID AS INT) ID FROM TBPM_MONITOR_KONFIG WITH (NOLOCK) ORDER BY ID" Dim oDT = DatabaseFallback.GetDatatableECM(oSQL) + ' ===== DEBUG: DATENTYP DER SPALTE PRÜFEN ===== + 'If oDT IsNot Nothing AndAlso oDT.Rows.Count > 0 Then + ' LOGGER.Debug($"Monitor DataTable - Column 'ID' DataType: {oDT.Columns("ID").DataType.Name}") + ' ' Erste Zeile Datentyp prüfen + ' If oDT.Rows.Count > 0 Then + ' Dim firstValue = oDT.Rows(0)("ID") + ' LOGGER.Debug($"First value type: {firstValue.GetType().Name}, Value: {firstValue}") + ' End If + 'End If + + ' ===== DEBUG: VERFÜGBARE WERTE LOGGEN ===== + 'LOGGER.Debug("=== MONITOR LOOKUP VALUES ===") + 'For Each row As DataRow In oDT.Rows + ' LOGGER.Debug($"Available Monitor ID: {row("ID")} (Type: {row("ID").GetType().Name})") + 'Next + ' LOGGER.Debug($"Total Monitor IDs loaded: {oDT.Rows.Count}") LookUpEditMonitor.Properties.DataSource = oDT LookUpEditMonitor.Properties.DisplayMember = "ID" LookUpEditMonitor.Properties.ValueMember = "ID" @@ -789,18 +866,23 @@ Public Class frmCockpitConfig End Sub Private Function Add_Node(oVariant As String) - Dim oParentID As Integer = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID - Dim oType As Integer = 0 - Dim oIcon As Integer = 0 - If oVariant = "Overview" Then - oParentID = 0 - oType = 0 - oIcon = 0 - ElseIf oVariant = "Profil" Then - oType = 1 - oIcon = 1 - End If - Dim oInsert = $"INSERT INTO TBTF_CFG_COCKPIT_DEFINITION ( + Try + If IsNothing(_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID) Then + MsgBox("Kein Knoten ausgewählt. Bitte wählen Sie einen Knoten aus, unter dem der neue Knoten hinzugefügt werden soll.", MsgBoxStyle.Exclamation) + Exit Function + End If + Dim oParentID As Integer = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID + Dim oType As Integer = 0 + Dim oIcon As Integer = 0 + If oVariant = "Overview" Then + oParentID = 0 + oType = 0 + oIcon = 0 + ElseIf oVariant = "Profil" Then + oType = 1 + oIcon = 1 + End If + Dim oInsert = $"INSERT INTO TBTF_CFG_COCKPIT_DEFINITION ( FK_CFG_COCKPIT_ID, [ACTIVE] ,[PARENT_ID] @@ -826,11 +908,16 @@ Public Class frmCockpitConfig '', '', '')" - If DatabaseFallback.ExecuteNonQueryECM(oInsert) Then - Load_TBTF_CFG_COCKPIT_DEFINITION() - Else - MsgBox("Fehler beim Anlegen des Knotens. Prüfen Sie Ihr Log", MsgBoxStyle.Exclamation) - End If + If DatabaseFallback.ExecuteNonQueryECM(oInsert) Then + Load_TBTF_CFG_COCKPIT_DEFINITION() + Else + MsgBox($"Fehler beim Anlegen eines {oVariant}-Knotens. Prüfen Sie Ihr Log", MsgBoxStyle.Exclamation) + End If + Catch ex As Exception + MsgBox($"Unerwarteter Fehler beim Anlegen eines {oVariant}-Knotens." & vbNewLine & vbNewLine & ex.Message, MsgBoxStyle.Critical) + LOGGER.Error(ex) + End Try + End Function @@ -1162,6 +1249,14 @@ Public Class frmCockpitConfig bsitm_info.Caption = msg bsitm_info.Visibility = DevExpress.XtraBars.BarItemVisibility.Always bsitm_info.ItemAppearance.Normal.ForeColor = Color.White + If err = True Then + bsitm_info.ItemAppearance.Normal.BackColor = Color.Red + bsitm_info.ItemAppearance.Normal.ForeColor = Color.White + Else + bsitm_info.ItemAppearance.Normal.BackColor = Color.Green + bsitm_info.ItemAppearance.Normal.ForeColor = Color.Black + + End If Else bsitm_info.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End If @@ -1435,4 +1530,134 @@ Public Class frmCockpitConfig End Select bsitm_info_Display("") End Sub + + Private Sub bbtnitm_DeleteCockpit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm_DeleteCockpit.ItemClick + Dim Msgboxresult = MsgBox("Wollen Sie das ausgewählte Cockpit wirklich löschen?" & vbCrLf & + "Alle Rechte und Definitionen werden entgültig gelöscht!" & vbCrLf & + "Dieser Schritt lässt sich nicht rückgängig machen!", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Löschen bestätigen") + If Msgboxresult = MsgBoxResult.Yes Then + Try + Dim oDelete = $"EXEC PRTF_DEL_COCKPIT_DEFINITION {Selected_Cockpit_ID}" + If DatabaseFallback.ExecuteNonQueryECM(oDelete) Then + MsgBox("Cockpit erfolgreich gelöscht.", MsgBoxStyle.Information) + Load_CFG_COCKPIT() + Else + MsgBox("Kein Cockpit wurde gelöscht. Bitte überprüfen Sie, ob das ausgewählte Cockpit existiert.", MsgBoxStyle.Exclamation) + End If + Catch ex As Exception + MsgBox("Fehler beim Löschen des Cockpits: " & vbNewLine & vbNewLine & ex.Message, MsgBoxStyle.Critical) + LOGGER.Error(ex) + End Try + End If + End Sub + + Private Sub bbtnitm_AddCockpit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm_AddCockpit.ItemClick + Try + Dim oInsert = $"INSERT INTO TBTF_CFG_COCKPIT ( + [ACTIVE] + ,[NAME] + ,[COMMENT] + ,[ADDED_WHO] + ,[ADDED_WHEN]) + OUTPUT INSERTED.PK_CFG_COCKPIT_ID + VALUES (0, 'New Cockpit', '', '{Environment.UserName}', GETDATE())" + + Dim newCockpitID As Object = DatabaseFallback.GetScalarValueECM(oInsert) + + If newCockpitID IsNot Nothing AndAlso IsNumeric(newCockpitID) Then + Selected_Cockpit_ID = CInt(newCockpitID) + Add_Node("Overview") + Load_CFG_COCKPIT() + MsgBox("Neues Cockpit erfolgreich angelegt und inaktiviert. Bitte wählen Sie es aus, um weitere Einstellungen vorzunehmen." & vbCrLf & + "Ein Overview-Knoten wurde ebenso angelegt!", MsgBoxStyle.Information) + Else + MsgBox("Fehler beim Anlegen des Cockpits. Prüfen Sie Ihr Log", MsgBoxStyle.Exclamation) + LOGGER.Error("bbtnitm_AddCockpit_ItemClick: Insert returned no ID or invalid ID") + LOGGER.Warn($"Check the Insert SQL: {oInsert}") + End If + Catch ex As Exception + MsgBox($"Fehler beim Anlegen des Cockpits:{vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical) + LOGGER.Error($"Error in bbtnitm_AddCockpit_ItemClick: {ex.Message}") + LOGGER.Error(ex) + End Try + End Sub + + Private Sub bbtnitmsave_Cocpit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmsave_Cocpit.ItemClick + Try + Dim updateSQL = $"UPDATE TBTF_CFG_COCKPIT SET ACTIVE = {(If(CheckEdit_Cockpit_Active.Checked, 1, 0))}, + NAME = '{TextEditCockpit_Bez.Text.Replace("'", "''")}', + CHANGED_WHO = '{Environment.UserName}', CHANGED_WHEN = GETDATE() + WHERE PK_CFG_COCKPIT_ID = {Selected_Cockpit_ID}" + If DatabaseFallback.ExecuteNonQueryECM(updateSQL) Then + bsitm_info_Display("Cockpit-Daten erfolgreich gespeichert.") + Else + bsitm_info_Display("Fehler beim Speichern der Cockpit-Daten. Prüfen Sie Ihr Log.", True) + End If + Catch ex As Exception + LOGGER.Error(ex) + bsitm_info_Display($"Fehler beim Speichern der Cockpit-Daten: {ex.Message}", True) + End Try + End Sub + + Private Sub viewAssignedUsers_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles viewAssignedUsers.FocusedRowChanged + Try + ' ===== PRÜFEN OB EINE GÜLTIGE ZEILE FOKUSSIERT IST ===== + If e.FocusedRowHandle < 0 Then + LOGGER.Debug("viewAssignedUsers_FocusedRowChanged: Invalid row handle") + Exit Sub + End If + + ' ===== WERT SICHER AUSLESEN ===== + Dim mapIdValue As Object = viewAssignedUsers.GetFocusedRowCellValue("PK_MAP_COCKPIT_ID") + + If mapIdValue Is Nothing OrElse IsDBNull(mapIdValue) Then + LOGGER.Warn("viewAssignedUsers_FocusedRowChanged: PK_MAP_COCKPIT_ID is NULL") + Exit Sub + End If + + Dim mapId As Integer + If Not Integer.TryParse(mapIdValue.ToString(), mapId) Then + LOGGER.Error($"viewAssignedUsers_FocusedRowChanged: Cannot convert '{mapIdValue}' to Integer") + Exit Sub + End If + + ' ===== MIT PK-WERT AUFRUFEN ===== + Display_Added_Changed("MapConfig", mapId) + + Catch ex As Exception + LOGGER.Error($"Error in viewAssignedUsers_FocusedRowChanged: {ex.Message}") + LOGGER.Error(ex) + End Try + End Sub + Private Sub ViewAssignedGroups_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles ViewAssignedGroups.FocusedRowChanged + Try + If e.FocusedRowHandle < 0 Then + LOGGER.Debug("ViewAssignedGroups_FocusedRowChanged: Invalid row handle") + Exit Sub + End If + + Dim mapIdValue As Object = ViewAssignedGroups.GetFocusedRowCellValue("PK_MAP_COCKPIT_ID") + + If mapIdValue Is Nothing OrElse IsDBNull(mapIdValue) Then + LOGGER.Warn("ViewAssignedGroups_FocusedRowChanged: PK_MAP_COCKPIT_ID is NULL") + Exit Sub + End If + + Dim mapId As Integer + If Not Integer.TryParse(mapIdValue.ToString(), mapId) Then + LOGGER.Error($"ViewAssignedGroups_FocusedRowChanged: Cannot convert '{mapIdValue}' to Integer") + Exit Sub + End If + + Display_Added_Changed("MapConfig", mapId) + + Catch ex As Exception + LOGGER.Error($"Error in ViewAssignedGroups_FocusedRowChanged: {ex.Message}") + LOGGER.Error(ex) + End Try + End Sub + + Private Sub viewAvailableUsers_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles viewAvailableUsers.FocusedRowChanged + bsitm_added_Changed.Caption = "" + End Sub End Class \ No newline at end of file diff --git a/app/TaskFlow/frmFormDesigner.vb b/app/TaskFlow/frmFormDesigner.vb index 39e155a..6fa0e44 100644 --- a/app/TaskFlow/frmFormDesigner.vb +++ b/app/TaskFlow/frmFormDesigner.vb @@ -730,6 +730,8 @@ Public Class frmFormDesigner Dim cmb As Windows.Forms.ComboBox = sender Dim cmbProps As ComboboxProperties = CreatePropsObjectWithIndicies(New ComboboxProperties, oRow, Source_AllIndicies) cmbProps.ChoiceLists = Windream_ChoiceLists + cmbProps.Regex = ClassAllgemeineFunktionen.NotNullString(oRow.Item("REGEX_MATCH"), String.Empty) + cmbProps.RegexMessage = ClassAllgemeineFunktionen.NotNullString(oRow.Item("REGEX_MESSAGE_DE"), String.Empty) cmbProps.ChoiceList = ClassAllgemeineFunktionen.NotNullString(oRow.Item("CHOICE_LIST"), String.Empty) cmbProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) cmbProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) @@ -1001,6 +1003,9 @@ Public Class frmFormDesigner If columnName.ToUpper = "CTRL_TEXT" Then Dim oSQL = $"EXEC PRPM_CHANGE_CONTROL_CAPTION {guid},{escapedValue},'{USER_USERNAME}','{USER_LANGUAGE}'" DatabaseFallback.ExecuteNonQueryECM(oSQL) + ElseIf columnName.ToUpper = "SQL_UEBERPRUEFUNG" Then + Dim oSQL = $"UPDATE TBPM_PROFILE_CONTROLS SET CONNECTION_ID = 1 WHERE GUID = {guid} AND CONNECTION_ID IS NULL" + DatabaseFallback.ExecuteNonQueryECM(oSQL) End If CHANGES_FORM_DESIGN = True Return True diff --git a/app/TaskFlow/frmUserSelect.Designer.vb b/app/TaskFlow/frmUserSelect.Designer.vb index 482d00c..09e3ef8 100644 --- a/app/TaskFlow/frmUserSelect.Designer.vb +++ b/app/TaskFlow/frmUserSelect.Designer.vb @@ -39,14 +39,17 @@ Partial Class frmUserSelect ' 'RibbonControl1 ' + Me.RibbonControl1.EmptyAreaImageOptions.ImagePadding = New System.Windows.Forms.Padding(35, 39, 35, 39) Me.RibbonControl1.ExpandCollapseItem.Id = 0 Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem2}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.RibbonControl1.MaxItemId = 2 Me.RibbonControl1.Name = "RibbonControl1" + Me.RibbonControl1.OptionsMenuMinWidth = 385 Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.Size = New System.Drawing.Size(800, 158) + Me.RibbonControl1.Size = New System.Drawing.Size(933, 158) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 ' 'BarButtonItem2 @@ -70,10 +73,11 @@ Partial Class frmUserSelect ' 'RibbonStatusBar1 ' - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 428) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 566) + Me.RibbonStatusBar1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 22) + Me.RibbonStatusBar1.Size = New System.Drawing.Size(933, 22) ' 'RibbonPage2 ' @@ -83,11 +87,13 @@ Partial Class frmUserSelect 'GridControl1 ' Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.GridControl1.EmbeddedNavigator.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.GridControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.GridControl1.Location = New System.Drawing.Point(0, 158) Me.GridControl1.MainView = Me.GridView1 + Me.GridControl1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(800, 270) + Me.GridControl1.Size = New System.Drawing.Size(933, 408) Me.GridControl1.TabIndex = 10 Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) ' @@ -95,6 +101,7 @@ Partial Class frmUserSelect ' Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True + Me.GridView1.DetailHeight = 458 Me.GridView1.GridControl = Me.GridControl1 Me.GridView1.Name = "GridView1" Me.GridView1.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False] @@ -119,17 +126,20 @@ Partial Class frmUserSelect ' 'frmUserSelect ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.Appearance.Options.UseFont = True + Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(800, 450) + Me.ClientSize = New System.Drawing.Size(933, 588) Me.Controls.Add(Me.GridControl1) Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonControl1) + Me.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.IconOptions.SvgImage = CType(resources.GetObject("frmUserSelect.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Name = "frmUserSelect" Me.Ribbon = Me.RibbonControl1 Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "frmUserSelect" + Me.Text = "Test-User auswählen" CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/app/TaskFlow/frmUserSelect.vb b/app/TaskFlow/frmUserSelect.vb index ba37b5e..135f67e 100644 --- a/app/TaskFlow/frmUserSelect.vb +++ b/app/TaskFlow/frmUserSelect.vb @@ -34,6 +34,14 @@ End Sub Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick + SelectUser() + End Sub + + Private Sub GridView1_DoubleClick(sender As Object, e As EventArgs) Handles GridView1.DoubleClick + SelectUser() + End Sub + Private Sub SelectUser() + Dim oFocusedUserName Try oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("UserName")) @@ -67,7 +75,7 @@ Me.Close() Else - MsgBox("Please choose an user for ghostmode!", MsgBoxStyle.Information) + MsgBox("Please choose an user for Testing!", MsgBoxStyle.Information) End If End Sub End Class \ No newline at end of file diff --git a/app/TaskFlow/frmValidator.vb b/app/TaskFlow/frmValidator.vb index ddf6d61..5523058 100644 --- a/app/TaskFlow/frmValidator.vb +++ b/app/TaskFlow/frmValidator.vb @@ -3009,8 +3009,120 @@ Public Class frmValidator oDependingLookup.Properties.ValueMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName oDependingLookup.Properties.DisplayMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName + Case oControl.GetType() = GetType(Windows.Forms.ComboBox) + Try + Dim oDependingComboBox As Windows.Forms.ComboBox = DirectCast(oControl, Windows.Forms.ComboBox) + + ' Sichere aktuellen Wert VOR Items-Update + Dim previousValue As String = If(oDependingComboBox.SelectedItem?.ToString(), oDependingComboBox.Text) + + MyValidationLogger.Debug($"ComboBox [{oDEPENDING_CtrlName}] wird aktualisiert - vorheriger Wert: [{previousValue}]") + ' *** WICHTIG: DataSource MUSS auf Nothing gesetzt werden vor Items.Clear() *** + oDependingComboBox.DataSource = Nothing + ' Beginne Update-Modus um Flackern zu vermeiden + oDependingComboBox.BeginUpdate() + Try + ' Lösche alte Items + oDependingComboBox.Items.Clear() + + ' Füge neue Items hinzu + For Each row As DataRow In oDTDEPENDING_RESULT.Rows + If Not IsDBNull(row(0)) Then + Dim itemValue As String = row(0).ToString() + + ' Optional: Zweite Spalte anhängen falls vorhanden + If oDTDEPENDING_RESULT.Columns.Count > 1 AndAlso Not IsDBNull(row(1)) Then + itemValue &= $" | {row(1)}" + End If + + oDependingComboBox.Items.Add(itemValue) + End If + Next + + MyValidationLogger.Debug($"ComboBox [{oDEPENDING_CtrlName}] mit {oDependingComboBox.Items.Count} Items aktualisiert") + + Finally + oDependingComboBox.EndUpdate() + End Try + + ' Versuche vorherigen Wert wiederherzustellen + If Not String.IsNullOrEmpty(previousValue) Then + Dim itemFound As Boolean = False + + For i As Integer = 0 To oDependingComboBox.Items.Count - 1 + If oDependingComboBox.Items(i).ToString().Equals(previousValue, StringComparison.OrdinalIgnoreCase) Then + oDependingComboBox.SelectedIndex = i + itemFound = True + MyValidationLogger.Debug($"✓ ComboBox [{oDEPENDING_CtrlName}] Wert [{previousValue}] wiederhergestellt") + Exit For + End If + Next + + If Not itemFound Then + MyValidationLogger.Debug($"✗ ComboBox [{oDEPENDING_CtrlName}] Wert [{previousValue}] nicht mehr verfügbar") + oDependingComboBox.SelectedIndex = -1 + End If + End If + + Catch ex As Exception + MyValidationLogger.Debug($"⚠️ Unexpected error updating ComboBox [{oDEPENDING_CtrlName}]: {ex.Message}") + MyValidationLogger.Warn($"⚠️ Unexpected error updating ComboBox [{oDEPENDING_CtrlName}]: {ex.Message}") + End Try + Case oControl.GetType() = GetType(GridControl) - ' GridControl-Handling (unverändert) + Try + Dim oDependingGrid As GridControl = DirectCast(oControl, GridControl) + Dim oGridView As GridView = Nothing + + If oDependingGrid.FocusedView IsNot Nothing AndAlso TypeOf oDependingGrid.FocusedView Is GridView Then + oGridView = DirectCast(oDependingGrid.FocusedView, GridView) + ElseIf oDependingGrid.MainView IsNot Nothing AndAlso TypeOf oDependingGrid.MainView Is GridView Then + oGridView = DirectCast(oDependingGrid.MainView, GridView) + End If + + If oGridView Is Nothing Then + MyValidationLogger.Warn($"⚠️ GridView nicht gefunden für Grid [{oDEPENDING_CtrlName}]") + Exit Select + End If + + MyValidationLogger.Debug($"GridControl [{oDEPENDING_CtrlName}] wird aktualisiert mit {oDTDEPENDING_RESULT.Rows.Count} Zeilen") + + ' Sichere aktuelle Daten (optional, falls Wiederherstellung gewünscht) + Dim previousDataSource As DataTable = Nothing + If TypeOf oDependingGrid.DataSource Is DataTable Then + previousDataSource = DirectCast(oDependingGrid.DataSource, DataTable) + End If + + ' Update GridControl DataSource + oGridView.BeginDataUpdate() + Try + ' Setze neue DataSource + oDependingGrid.DataSource = oDTDEPENDING_RESULT + + ' Optional: Spalten-Konfiguration falls benötigt + If oGridView.Columns.Count = 0 Then + oGridView.PopulateColumns() + End If + + ' Refresh Grid + oDependingGrid.RefreshDataSource() + oGridView.BestFitColumns() + + MyValidationLogger.Debug($"✓ GridControl [{oDEPENDING_CtrlName}] erfolgreich aktualisiert") + + Finally + oGridView.EndDataUpdate() + End Try + + ' Fokussiere erste Zeile falls Daten vorhanden + If oDTDEPENDING_RESULT.Rows.Count > 0 Then + oGridView.FocusedRowHandle = 0 + End If + + Catch ex As Exception + MyValidationLogger.Warn($"⚠️ Unexpected error updating GridControl [{oDEPENDING_CtrlName}]: {ex.Message}") + MyValidationLogger.Error(ex) + End Try Case oControl.GetType() = GetType(CheckBox) Try @@ -3026,6 +3138,7 @@ Public Class frmValidator Catch ex As Exception MyValidationLogger.Warn($"⚠️ Unexpected error in Checking oCheckBoxDependingControlLOOKUP: {ex.Message}") End Try + End Select Catch ex As Exception @@ -6927,7 +7040,6 @@ Public Class frmValidator Continue For End If - ' ========== AB HIER: Bestehender Validierungs-Code ========== Dim oMyInput As String = "" Dim oSQLCheckCommand As String = IIf(IsDBNull(oControlRow.Item("SQL_UEBERPRUEFUNG")), "", oControlRow.Item("SQL_UEBERPRUEFUNG")) Dim oControlType As String = oControlRow.Item("CTRL_TYPE")