Imports DevExpress.XtraEditors.DXErrorProvider Imports DevExpress.XtraLayout Public Class frmAdmin_SourceSQL Implements frmAdmin_Interface Public Property PrimaryKey As Integer Implements frmAdmin_Interface.PrimaryKey Public Property HasChanges As Boolean Implements frmAdmin_Interface.HasChanges Public Property IsInsert As Boolean Implements frmAdmin_Interface.IsInsert Public Sub New(PrimaryKey As Integer) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.PrimaryKey = PrimaryKey End Sub Private Sub frmAdmin_SourceSQL_Load(sender As Object, e As EventArgs) Handles Me.Load Try If IsInsert Then TBZF_ADMIN_SOURCE_SQLBindingSource.AddNew() Else TBZF_ADMIN_SOURCE_SQLTableAdapter.Fill(DSIDB_Stammdaten.TBZF_ADMIN_SOURCE_SQL, PrimaryKey) End If ValidationHelper() Catch ex As Exception ShowError(ex) End Try End Sub Public Sub ValidationHelper() Dim oTable As DataTable = DSIDB_Stammdaten.TBZF_ADMIN_SOURCE_SQL Dim oProvider As DXValidationProvider = DxValidationProvider1 Dim oRootControl As Control = LayoutControl1 Dim oControls As List(Of Control) = oRootControl.Controls. OfType(Of Control). ToList() Dim oBoundControls = ListBoundControls(oControls) Console.WriteLine(oBoundControls.Count) For Each oControl As Control In oBoundControls Dim oBinding As Binding = oControl.DataBindings.Item(0) Next End Sub Public Function ListBoundControls(Controls As List(Of Control)) As List(Of Control) Dim oControlList As New List(Of Control) For Each oControl As Control In Controls If oControl.DataBindings IsNot Nothing AndAlso oControl.DataBindings.Count > 0 Then oControlList.Add(oControl) End If If oControl.Controls IsNot Nothing AndAlso oControl.Controls.Count > 0 Then Dim oControls As New List(Of Control) oControls.AddRange(oControl.Controls.OfType(Of Control)) oControlList.AddRange(ListBoundControls(oControls)) End If Next Return oControlList End Function Public Function SaveData() As Boolean Implements frmAdmin_Interface.SaveData Try TBZF_ADMIN_SOURCE_SQLBindingSource.EndEdit() If DSIDB_Stammdaten.TBZF_ADMIN_SOURCE_SQL.GetChanges() IsNot Nothing Then HasChanges = True If IsInsert Then txtAddedWho.EditValue = My.Application.User.UserName Else txtChangedWho.EditValue = My.Application.User.UserName End If TBZF_ADMIN_SOURCE_SQLBindingSource.EndEdit() TBZF_ADMIN_SOURCE_SQLTableAdapter.Update(DSIDB_Stammdaten.TBZF_ADMIN_SOURCE_SQL) End If Return True Catch ex As Exception ShowError(ex) Return False End Try End Function Public Function DeleteData() As Boolean Implements frmAdmin_Interface.DeleteData Try TBZF_ADMIN_SOURCE_SQLTableAdapter.Delete(PrimaryKey) Return True Catch ex As Exception ShowError(ex) Return False End Try End Function Private Sub ResetMessages() labelStatus.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End Sub Private Sub ShowStatus(Message As String) labelStatus.Caption = Message labelStatus.Visibility = DevExpress.XtraBars.BarItemVisibility.Always End Sub Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick ResetMessages() If SaveData() And HasChanges Then ShowStatus("Attribute gespeichert!") End If End Sub Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick ResetMessages() If SaveData() Then Close() End If End Sub Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick If MsgBox($"Wollen Sie den SourceSQL [{PrimaryKey}] wirklich löschen?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.Yes Then If DeleteData() Then Close() End If End If End Sub End Class