Verbesserungen an Cockpit- und Benutzerverwaltung

- 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.
This commit is contained in:
Developer01
2026-08-26 14:50:04 +02:00
parent 15295ba3f5
commit eafd42d302
11 changed files with 2609 additions and 1190 deletions

View File

@@ -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

View File

@@ -292,7 +292,15 @@ Public Module ModuleControlProperties
Public Class ComboboxProperties
Inherits InputPropertiesWithControlData
<DisplayName("Regex Pattern")>
<Category(ClassConstants.CAT_VALIDATION)>
<Editor(GetType(ClassRegexEditor), GetType(UITypeEditor))>
Public Property Regex As String
<DisplayName("Regex Failure Message")>
<Category(ClassConstants.CAT_VALIDATION)>
<Editor(GetType(MultilineStringEditor), GetType(UITypeEditor))>
Public Property RegexMessage As String
<Category(ClassConstants.CAT_DISPLAY)>
Public Property Text() As String

View File

@@ -1304,11 +1304,11 @@
<None Include="Resources\PM_mit_slogan.JPG" />
</ItemGroup>
<ItemGroup>
<Content Include="logtaskflow.txt" />
<None Include="Changelog.md" />
<Content Include="DataColumnExpression.txt" />
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />
<Content Include="DD_taskFLOW_ICON.ico" />
<Content Include="logtaskflow.txt" />
<Content Include="MailLicense.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -318,6 +318,64 @@
MnogTTE2LDZjMS4xLDAsMiwwLjksMiwycy0wLjksMi0yLDJzLTItMC45LTItMiAgIFMxNC45LDYsMTYs
NnogTTIwLDI0aC04di0yaDJ2LThoLTJ2LTJoMmg0djEwaDJWMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAg
PC9nPg0KPC9zdmc+Cw==
</value>
</data>
<data name="bbtnitm_DeleteCockpit.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD4DAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku
WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4
N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk
aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTE4LjgsMTZsOC45
LTguOWMwLjQtMC40LDAuNC0xLDAtMS40bC0xLjQtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE2LDEz
LjJMNy4xLDQuM2MtMC40LTAuNC0xLTAuNC0xLjQsMCAgTDQuMyw1LjdjLTAuNCwwLjQtMC40LDEsMCwx
LjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSww
LjQsMS40LDBsOC45LTguOWw4LjksOC45ICBjMC40LDAuNCwxLDAuNCwxLjQsMGwxLjQtMS40YzAuNC0w
LjQsMC40LTEsMC0xLjRMMTguOCwxNnoiIGNsYXNzPSJSZWQiIC8+DQo8L3N2Zz4L
</value>
</data>
<data name="bbtnitm_AddCockpit.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
Cjwvc3ZnPgs=
</value>
</data>
<data name="bbtnitmsave_Cocpit.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMICAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku
WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4
N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk
aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTI3LDRoLTN2MTBI
OFY0SDVDNC40LDQsNCw0LjQsNCw1djIyYzAsMC42LDAuNCwxLDEsMWgyMmMwLjYsMCwxLTAuNCwxLTFW
NUMyOCw0LjQsMjcuNiw0LDI3LDR6IE0yNCwyNEg4di02ICBoMTZWMjR6IE0xMCw0djhoMTBWNEgxMHog
TTE0LDEwaC0yVjZoMlYxMHoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
</data>
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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")