diff --git a/EDMI_ClientSuite/ClassCommonCommands.vb b/EDMI_ClientSuite/ClassCommonCommands.vb
index 8f5ce4cb..004208d5 100644
--- a/EDMI_ClientSuite/ClassCommonCommands.vb
+++ b/EDMI_ClientSuite/ClassCommonCommands.vb
@@ -11,10 +11,10 @@ Public Class ClassCommonCommands
Public Async Function FNICM_RADM_NEW_USER2GROUP(UserId As Integer, GroupId As Integer) As Task(Of Integer)
Try
- Dim oSQL = "SELECT FNICM_RADM_NEW_USER2GROUP({0},{1}, '{2}') FROM RDB$DATABASE;"
+ Dim oSQL = $"SELECT FNICM_RADM_NEW_USER2GROUP({UserId},{GroupId}, '{Environment.UserName}') FROM RDB$DATABASE;"
Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Add User To Group", False)
- Dim oResult = Await My.Channel.ReturnScalarAsync(String.Format(oSQL, UserId, GroupId, Environment.UserName))
+ Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL)
Await My.Channel.CloseDatabaseRequestAsync()
If oResult.OK Then
@@ -30,11 +30,11 @@ Public Class ClassCommonCommands
Public Async Function FNICM_RADM_NEW_GROUP2GROUP(ParentGroupId As Integer, GroupId As Integer) As Task(Of Integer)
Try
- Dim oSQL = "SELECT FNICM_RADM_NEW_GROUP2GROUP({0},{1}, '{2}') FROM RDB$DATABASE;"
+ Dim oSQL = $"SELECT FNICM_RADM_NEW_GROUP2GROUP({GroupId},{ParentGroupId}, '{Environment.UserName}') FROM RDB$DATABASE;"
Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"Add Group To Group", False)
Dim oRecordIds As New List(Of Integer)
- Dim oResult = Await My.Channel.ReturnScalarAsync(String.Format(oSQL, GroupId, ParentGroupId, Environment.UserName))
+ Dim oResult = Await My.Channel.ReturnScalarAsync(oSQL)
Await My.Channel.CloseDatabaseRequestAsync()
If oResult.OK Then
diff --git a/EDMI_ClientSuite/ClassUIConfig.vb b/EDMI_ClientSuite/ClassUIConfig.vb
index 6ca092ab..5553635c 100644
--- a/EDMI_ClientSuite/ClassUIConfig.vb
+++ b/EDMI_ClientSuite/ClassUIConfig.vb
@@ -2,4 +2,13 @@
Public Property SkinName As String = "Office 2016 Colorful"
Public Property FrmEdit_Splitter As Integer = 300
+
+ Public Property EditFormConfigs As List(Of EditFormConfig) = New List(Of EditFormConfig)
+
+ Public Class EditFormConfig
+ Public Property SysKey As String
+
+ Public Property SplitterDistance As Integer
+ Public Property SplitterOrientation As Integer
+ End Class
End Class
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
index de0052b2..ca8accaf 100644
--- a/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
+++ b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
@@ -28,21 +28,22 @@ Partial Class frmEdit
Me.GridList = New DevExpress.XtraGrid.GridControl()
Me.ViewList = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
- Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
+ Me.LayoutGroup = New DevExpress.XtraLayout.LayoutControlGroup()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
- Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
+ Me.BarButtonSave = New DevExpress.XtraBars.BarButtonItem()
+ Me.BarButtonNew = New DevExpress.XtraBars.BarButtonItem()
+ Me.BarButtonDelete = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
- Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
- Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
+ Me.labelParentAttributeId = New DevExpress.XtraBars.BarStaticItem()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.SuspendLayout()
CType(Me.GridList, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ViewList, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
- CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.LayoutGroup, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
@@ -81,38 +82,54 @@ Partial Class frmEdit
Me.LayoutControl1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(-870, 211, 650, 400)
- Me.LayoutControl1.Root = Me.LayoutControlGroup1
+ Me.LayoutControl1.Root = Me.LayoutGroup
Me.LayoutControl1.Size = New System.Drawing.Size(760, 338)
Me.LayoutControl1.TabIndex = 0
Me.LayoutControl1.Text = "LayoutControl1"
'
- 'LayoutControlGroup1
+ 'LayoutGroup
'
- Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
- Me.LayoutControlGroup1.GroupBordersVisible = False
- Me.LayoutControlGroup1.Name = "Root"
- Me.LayoutControlGroup1.Size = New System.Drawing.Size(760, 338)
- Me.LayoutControlGroup1.TextVisible = False
+ Me.LayoutGroup.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
+ Me.LayoutGroup.GroupBordersVisible = False
+ Me.LayoutGroup.Name = "Root"
+ Me.LayoutGroup.Size = New System.Drawing.Size(760, 338)
+ Me.LayoutGroup.TextVisible = False
'
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
- Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3})
+ Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonSave, Me.BarButtonNew, Me.BarButtonDelete, Me.labelParentAttributeId})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
- Me.RibbonControl1.MaxItemId = 4
+ Me.RibbonControl1.MaxItemId = 6
Me.RibbonControl1.Name = "RibbonControl1"
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(1104, 146)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
'
- 'BarButtonItem1
+ 'BarButtonSave
'
- Me.BarButtonItem1.Caption = "Speichern"
- Me.BarButtonItem1.Id = 1
- Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image)
- Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image)
- Me.BarButtonItem1.Name = "BarButtonItem1"
+ Me.BarButtonSave.Caption = "Speichern"
+ Me.BarButtonSave.Id = 1
+ Me.BarButtonSave.ImageOptions.Image = CType(resources.GetObject("BarButtonSave.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonSave.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonSave.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonSave.Name = "BarButtonSave"
+ '
+ 'BarButtonNew
+ '
+ Me.BarButtonNew.Caption = "Neu"
+ Me.BarButtonNew.Id = 2
+ Me.BarButtonNew.ImageOptions.Image = CType(resources.GetObject("BarButtonNew.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonNew.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonNew.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonNew.Name = "BarButtonNew"
+ '
+ 'BarButtonDelete
+ '
+ Me.BarButtonDelete.Caption = "Löschen"
+ Me.BarButtonDelete.Id = 3
+ Me.BarButtonDelete.ImageOptions.Image = CType(resources.GetObject("BarButtonDelete.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonDelete.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonDelete.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonDelete.Name = "BarButtonDelete"
'
'RibbonPage1
'
@@ -122,15 +139,16 @@ Partial Class frmEdit
'
'RibbonPageGroup1
'
- Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
- Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2)
- Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem3)
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonSave)
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonNew)
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonDelete)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.ShowCaptionButton = False
Me.RibbonPageGroup1.Text = "Aktionen"
'
'RibbonStatusBar1
'
+ Me.RibbonStatusBar1.ItemLinks.Add(Me.labelParentAttributeId)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 484)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
@@ -141,21 +159,11 @@ Partial Class frmEdit
Me.RibbonPage2.Name = "RibbonPage2"
Me.RibbonPage2.Text = "RibbonPage2"
'
- 'BarButtonItem2
+ 'labelParentAttributeId
'
- Me.BarButtonItem2.Caption = "Neu"
- Me.BarButtonItem2.Id = 2
- Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image)
- Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image)
- Me.BarButtonItem2.Name = "BarButtonItem2"
- '
- 'BarButtonItem3
- '
- Me.BarButtonItem3.Caption = "Löschen"
- Me.BarButtonItem3.Id = 3
- Me.BarButtonItem3.ImageOptions.Image = CType(resources.GetObject("BarButtonItem3.ImageOptions.Image"), System.Drawing.Image)
- Me.BarButtonItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.LargeImage"), System.Drawing.Image)
- Me.BarButtonItem3.Name = "BarButtonItem3"
+ Me.labelParentAttributeId.Caption = "BarStaticItem1"
+ Me.labelParentAttributeId.Id = 5
+ Me.labelParentAttributeId.Name = "labelParentAttributeId"
'
'frmEdit
'
@@ -175,7 +183,7 @@ Partial Class frmEdit
CType(Me.GridList, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ViewList, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
- CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.LayoutGroup, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -186,13 +194,14 @@ Partial Class frmEdit
Friend WithEvents GridList As DevExpress.XtraGrid.GridControl
Friend WithEvents ViewList As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
- Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup
+ Friend WithEvents LayoutGroup As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
- Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents BarButtonSave As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents BarButtonNew As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents BarButtonDelete As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents labelParentAttributeId As DevExpress.XtraBars.BarStaticItem
End Class
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.resx b/EDMI_ClientSuite/UserManager/frmEdit.resx
index d8bb8005..a1f491e0 100644
--- a/EDMI_ClientSuite/UserManager/frmEdit.resx
+++ b/EDMI_ClientSuite/UserManager/frmEdit.resx
@@ -118,67 +118,64 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBTYXZlO/no
- +QkAAABYSURBVDhPY/j//z9FGExMzlq/F4j/gzCUD2ajYzS5vSA+zABcilDE0OVAfPoYAMPY1GI1AB9G
- V4shSAqmvgEgNjF41AA8BpCKkQ3Yji5JBN4ON4B8/J8BAL6u0wsmtxusAAAAAElFTkSuQmCC
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFNhdmU7+ej5CQAAAFhJREFUOE9j
+ +P//P0UYTEzOWr8XiP+DMJQPZqNjNLm9ID7MAFyKUMTQ5UB8+hgAw9jUYjUAH0ZXiyFICqa+ASA2MXjU
+ ADwGkIqRDdiOLkkE3g43gHz8nwEAvq7TCya3G6wAAAAASUVORK5CYII=
-
+
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBTYXZlO/no
- +QkAAAENSURBVFhH7ZfRCcMwDESzWaBfmaXrdJDO0T0CGcPVidicheQm0DgE8vHAlY6nI38dUkqn4g57
- 4g57Uv14Pd+j8BESgTnDuyark2dwj3zTFlgonOHjVthkddr5wjdtARsGfDzKAN2zJ3JinikP4IUFFRNe
- BuiePZET80x5AC8sqJjwMkD37ImcmGfKA3hhQcWElwG6Z0/kxDxTHsALCyomvAzQPXsiJ+aZ8gBeWFAx
- 4WVcIme+By5ZoAn7Iifvf4aPgG/eBVoFHgJmu2AfeeHaXaASb4V9jOzuAneBu8D1CkxCJd8C+8gL1+4C
- h8E3bYHZhg9g5pu2AD6V99/gX8A98c2qwBm4w564w36k4QtaC2pTkRLrNgAAAABJRU5ErkJggg==
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFNhdmU7+ej5CQAAAQ1JREFUWEft
+ l9EJwzAMRLNZoF+Zpet0kM7RPQIZw9WJ2JyF5CbQOATy8cCVjqcjfx1SSqfiDnviDntS/Xg936PwERKB
+ OcO7JquTZ3CPfNMWWCic4eNW2GR12vnCN20BGwZ8PMoA3bMncmKeKQ/ghQUVE14G6J49kRPzTHkALyyo
+ mPAyQPfsiZyYZ8oDeGFBxYSXAbpnT+TEPFMewAsLKia8DNA9eyIn5pnyAF5YUDHhZVwiZ74HLlmgCfsi
+ J+9/ho+Ab94FWgUeAma7YB954dpdoBJvhX2M7O4Cd4G7wPUKTEIl3wL7yAvX7gKHwTdtgdmGD2Dmm7YA
+ PpX33+BfwD3xzarAGbjDnrjDfqThC1oLalOREus2AAAAAElFTkSuQmCC
-
+
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1
- cztCYXJzO1JpYmJvbjuVBjMvAAAAYElEQVQ4T92MUQqAMAxDd0Ev5am8XbTSlEwyRBwIfrzRpelrAF5h
- Q7KsG5KYbceG5EeCnG3HhkQFI86HxadMFRTxJ1q85NXtAiXzEuiOzBOMOEqdQHfEhoSCOP5GcA/aDplf
- q/kc1pC+AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1
- cztCYXJzO1JpYmJvbjuVBjMvAAAAj0lEQVRYR+3OUQqEMAxFUTfoplyVu4vNhyDpRR4Sokg+DsKdafsW
- M3sVxkoYK2GshLESRsW67XYVf1dhVPSAHtAD/j0gXp4lvuOm4OhwhviOm4KjwxniO24Kjg5niO+4KaiU
- yxUYFTRgfG9dz58wKsaF3xvwBEZFD6AB44v/vYNR0QOyYKyEsRLGShjr2HIAeeWOhN7Trl4AAAAASUVO
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u
+ O5UGMy8AAABgSURBVDhP3YxRCoAwDEN3QS/lqbxdtNKUTDJEHAh+vNGl6WsAXmFDsqwbkphtx4bkR4Kc
+ bceGRAUjzofFp0wVFPEnWrzk1e0CJfMS6I7ME4w4Sp1Ad8SGhII4/kZwD9oOmV+r+RzWkL4AAAAASUVO
RK5CYII=
-
+
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAKXRFWHRUaXRsZQBSZW1vdmU7
- RGVsZXRlO0JhcnM7UmliYm9uO1N0YW5kYXJkO2NWSDAAAADCSURBVDhPjZNLCgIxEERzOGFWegkvIH4Q
- Rhyv6UkUV20VpCTpTquLB0n9GAZSzKzct6s1mHn+B2Qv7PCs8gsYuPqwB5lbzbKzoXCqgkhH4Kks9jLO
- zggj0Hz5SL0NpCM4D8vkM1CDfmQBaZl0AwQBP9LSlUl3EQiORkKZBIEg7D+bLKNsEBAclUUY6S4I+PIB
- hB/bdr6WGy8d+VkW0IYjNPgwWiOUBTw/MlOcwKMKaVkgo5EnmCRyZOfDGcjyAU5mVt7SQJzMJkqbYgAA
- AABJRU5ErkJggg==
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u
+ O5UGMy8AAACPSURBVFhH7c5RCoQwDEVRN+imXJW7i82HIOlFHhKiSD4Owp1p+xYzexXGShgrYayEsRJG
+ xbrtdhV/V2FU9IAe0AP+PSBeniW+46bg6HCG+I6bgqPDGeI7bgqODmeI77gpqJTLFRgVNGB8b13PnzAq
+ xoXfG/AERkUPoAHji/+9g1HRA7JgrISxEsZKGOvYcgB55Y6E3tOuXgAAAABJRU5ErkJggg==
-
+
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAKXRFWHRUaXRsZQBSZW1vdmU7
- RGVsZXRlO0JhcnM7UmliYm9uO1N0YW5kYXJkO2NWSDAAAAFuSURBVFhHxZZNSgQxFIRn5gIOeiU3LhxB
- j+BRRRTFWc9VXMWqJg+e6XpNXoS4+BYpUj/Q3dC7Usq/IsWZSHEmUrw83/6JJuvgzy1SrEFX4AXc1XM3
- LucevIKjz/dIEQaWf4ACvkFqRM1gOb3M+ARyxErAxQPgahqN7AhfbjBz3/b9Ohi4+ATagN4RqpznB9W1
- Egguk8dqbIO2RqTKiRRhMDIj0uVEijB5ekYMlRMpwtiyNWK4nEgRZkU0YricSBEBEWqEJ1VOpIiQLaIR
- SzmQmRFSZMgG6pnbgOXFVJkRUmRIQFRuLCNUZoQUEaKI3naldY+QIgJ6y/nMw09UZbdIEebecrszPEKK
- MGbKjaERUoSJROUn4Is96RFShGGk3EiNWAm4uAdv1egDesoNNeIddP+QXIOvasyWW4YfcQY3bQ9ZCQSX
- CUdwdaqcuByOYIYsJ1K0IMD/Q3/uosnK/5bPRIozkeJMpDgTKc6j7H4A2ecNYxfzGoMAAAAASUVORK5C
- YII=
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS
+ aWJib247U3RhbmRhcmQ7Y1ZIMAAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlO
+ q4sHSf0YBlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgP
+ y+QzUIN+ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQ
+ hiM0+DBaI5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS
+ aWJib247U3RhbmRhcmQ7Y1ZIMAAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1Vcxaom
+ D57pek1ehLj4FilSP9Dd0LtSyr8ixZlIcSZSvDzf/okm6+DPLVKsQVfgBdzVczcu5x68gqPP90gRBpZ/
+ gAK+QWpEzWA5vcz4BHLESsDFA+BqGo3sCF9uMHPf9v06GLj4BNqA3hGqnOcH1bUSCC6Tx2psg7ZGpMqJ
+ FGEwMiPS5USKMHl6RgyVEynC2LI1YricSBFmRTRiuJxIEQERaoQnVU6kiJAtohFLOZCZEVJkyAbqmduA
+ 5cVUmRFSZEhAVG4sI1RmhBQRoojedqV1j5AiAnrL+czDT1Rlt0gR5t5yuzM8QoowZsqNoRFShIlE5Sfg
+ iz3pEVKEYaTcSI1YCbi4B2/V6AN6yg014h10/5Bcg69qzJZbhh9xBjdtD1kJBJcJR3B1qpy4HI5ghiwn
+ UrQgwP9Df+6iycr/ls9EijOR4kykOBMpzqPsfgDZ5w1jF/MagwAAAABJRU5ErkJggg==
\ No newline at end of file
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.vb b/EDMI_ClientSuite/UserManager/frmEdit.vb
index 25275bfc..4a6c2a61 100644
--- a/EDMI_ClientSuite/UserManager/frmEdit.vb
+++ b/EDMI_ClientSuite/UserManager/frmEdit.vb
@@ -4,9 +4,17 @@ Imports DevExpress.XtraLayout
Public Class frmEdit
Private ReadOnly _Datatable As DataTable
+ Private _BindingSource As BindingSource
+
Private _LanguageDatatable As DataTable
Private _AttributeId As Integer
+ Private Class ControlMetadata
+ Public AttributeId As Integer
+ Public DataType As Type
+ Public ColumnName As String
+ End Class
+
Public Sub New(AttributeId As Integer, Datatable As DataTable)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
@@ -22,8 +30,11 @@ Public Class frmEdit
ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings).
ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings)
- ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- GridList.DataSource = _Datatable
+ labelParentAttributeId.Caption = $"Attribut-ID: {_AttributeId}"
+
+ _BindingSource = New BindingSource()
+ _BindingSource.DataSource = _Datatable
+ GridList.DataSource = _BindingSource
SplitContainerControl1.SplitterPosition = My.UIConfig.FrmEdit_Splitter
@@ -47,17 +58,28 @@ Public Class frmEdit
Select Case Column.DataType
Case GetType(Int64)
- Dim oTextEdit = New TextEdit()
- oTextEdit.Name = Column.ColumnName
- oTextEdit.Properties.Mask.MaskType = Mask.MaskType.Numeric
- oTextEdit.Properties.Mask.EditMask = "n"
- oEditor = oTextEdit
+ Dim oIntegerEdit = New TextEdit()
+ oIntegerEdit.Name = Column.ColumnName
+ oIntegerEdit.Properties.Mask.MaskType = Mask.MaskType.Numeric
+ oIntegerEdit.Properties.Mask.EditMask = "n"
+ oEditor = oIntegerEdit
Case Else
oEditor = New TextEdit() With {.Name = Column.ColumnName}
End Select
+ ' Set EditControl Metadata
If AttributeId > 0 Then
- oEditor.Tag = AttributeId
+ oEditor.Tag = New ControlMetadata() With {
+ .AttributeId = AttributeId,
+ .DataType = Column.DataType,
+ .ColumnName = Column.ColumnName
+ }
+ Else
+ oEditor.Tag = New ControlMetadata() With {
+ .AttributeId = Nothing,
+ .DataType = Column.DataType,
+ .ColumnName = Column.ColumnName
+ }
End If
Return oEditor
@@ -94,22 +116,45 @@ Public Class frmEdit
Dim oAttributeId As Integer = GetRowItemBySequence(oCounter, "ATTRIBUTE_ID")
Dim oCaption = GetColumnCaption(oColumn, oCounter)
Dim oEditor = GetColumnEditor(oColumn, oAttributeId)
- oEditor.DataBindings.Add(New Binding("Text", _Datatable, oColumn.ColumnName))
+ oEditor.DataBindings.Add(New Binding("Text", _BindingSource, oColumn.ColumnName))
' Add Control to Layout
- LayoutControlGroup1.AddItem(oCaption, oEditor)
+ LayoutGroup.AddItem(oCaption, oEditor)
+
+ ' Set Column Captions
ViewList.Columns.Item(oColumn.ColumnName).Caption = oCaption
oCounter = oCounter + 1
Next
' General Layout Tweaks
- LayoutControlGroup1.AddItem(New EmptySpaceItem())
- LayoutControlGroup1.LayoutMode = Utils.LayoutMode.Flow
+ LayoutGroup.AddItem(New EmptySpaceItem())
+ LayoutGroup.LayoutMode = Utils.LayoutMode.Flow
End Sub
+ Public Sub SaveRecord()
+ _BindingSource.EndEdit()
+
+ Dim oChanges As DataTable = _Datatable.GetChanges()
+ Dim oChangedRow As DataRow = oChanges.Rows.Item(0)
+
+ For Each oColumn As DataColumn In oChanges.Columns
+ Dim oAttributeId = (From oItem As LayoutControlItem In LayoutGroup.Items
+ Where oItem.Control.Name = oColumn.ColumnName
+ Select DirectCast(oItem.Control.Tag, ControlMetadata).AttributeId).FirstOrDefault()
+
+ Dim oValue = oChangedRow.Item(oColumn.ColumnName)
+ MsgBox($"Saving Value {oValue} for Attribute {oAttributeId}")
+ Next
+ End Sub
+
+
Private Sub SplitContainerControl1_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl1.SplitterPositionChanged
My.UIConfig.FrmEdit_Splitter = SplitContainerControl1.SplitterPosition
My.UIConfigManager.Save()
End Sub
+
+ Private Sub BarButtonSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonSave.ItemClick
+ SaveRecord()
+ End Sub
End Class
\ No newline at end of file
diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb b/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb
index d0a6f786..5c6b89a1 100644
--- a/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb
+++ b/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb
@@ -20,7 +20,7 @@ Partial Class frmUserManager
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmUserManager))
- Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
+ Me.UserRibbon = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.BarButtonUserEdit = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonGroupEdit = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonAssign = New DevExpress.XtraBars.BarButtonItem()
@@ -32,27 +32,27 @@ Partial Class frmUserManager
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
- Me.UCUserToGroup = New DigitalData.GUIs.ClientSuite.UserControlAssignment()
- Me.OfficeNavigationBar1 = New DevExpress.XtraBars.Navigation.OfficeNavigationBar()
+ Me.UserNavbar = New DevExpress.XtraBars.Navigation.OfficeNavigationBar()
Me.NavbarUser2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem()
Me.NavbarGroup2Group = New DevExpress.XtraBars.Navigation.NavigationBarItem()
- Me.UCGroupToGroup = New DigitalData.GUIs.ClientSuite.UserControlAssignment()
- CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
- CType(Me.OfficeNavigationBar1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.ContentPanel = New DevExpress.XtraEditors.PanelControl()
+ CType(Me.UserRibbon, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.UserNavbar, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.ContentPanel, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
- 'RibbonControl
+ 'UserRibbon
'
- Me.RibbonControl.ExpandCollapseItem.Id = 0
- Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonUserEdit, Me.BarButtonGroupEdit, Me.BarButtonAssign, Me.BarButtonItem1, Me.BarButtonRefresh})
- Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
- Me.RibbonControl.MaxItemId = 10
- Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always
- Me.RibbonControl.Name = "RibbonControl"
- Me.RibbonControl.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryUserManager})
- Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
- Me.RibbonControl.Size = New System.Drawing.Size(1070, 146)
- Me.RibbonControl.StatusBar = Me.RibbonStatusBar
+ Me.UserRibbon.ExpandCollapseItem.Id = 0
+ Me.UserRibbon.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.UserRibbon.ExpandCollapseItem, Me.BarButtonUserEdit, Me.BarButtonGroupEdit, Me.BarButtonAssign, Me.BarButtonItem1, Me.BarButtonRefresh})
+ Me.UserRibbon.Location = New System.Drawing.Point(0, 0)
+ Me.UserRibbon.MaxItemId = 10
+ Me.UserRibbon.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always
+ Me.UserRibbon.Name = "UserRibbon"
+ Me.UserRibbon.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryUserManager})
+ Me.UserRibbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
+ Me.UserRibbon.Size = New System.Drawing.Size(1070, 146)
+ Me.UserRibbon.StatusBar = Me.RibbonStatusBar
'
'BarButtonUserEdit
'
@@ -131,29 +131,18 @@ Partial Class frmUserManager
Me.RibbonStatusBar.HideWhenMerging = DevExpress.Utils.DefaultBoolean.[True]
Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 519)
Me.RibbonStatusBar.Name = "RibbonStatusBar"
- Me.RibbonStatusBar.Ribbon = Me.RibbonControl
+ Me.RibbonStatusBar.Ribbon = Me.UserRibbon
Me.RibbonStatusBar.Size = New System.Drawing.Size(1070, 21)
'
- 'UCUserToGroup
+ 'UserNavbar
'
- Me.UCUserToGroup.Location = New System.Drawing.Point(335, 163)
- Me.UCUserToGroup.Name = "UCUserToGroup"
- Me.UCUserToGroup.Size = New System.Drawing.Size(391, 271)
- Me.UCUserToGroup.TabIndex = 0
- Me.UCUserToGroup.TextAssignedToParent = "Zugeordnete Benutzer zu Gruppe:"
- Me.UCUserToGroup.TextNotAssignedToParent = "Nicht zugeordnete Benutzer:"
- Me.UCUserToGroup.TextParentList = "Verfügbare Gruppen:"
- Me.UCUserToGroup.Visible = False
- '
- 'OfficeNavigationBar1
- '
- Me.OfficeNavigationBar1.Dock = System.Windows.Forms.DockStyle.Bottom
- Me.OfficeNavigationBar1.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarUser2Group, Me.NavbarGroup2Group})
- Me.OfficeNavigationBar1.Location = New System.Drawing.Point(0, 474)
- Me.OfficeNavigationBar1.Name = "OfficeNavigationBar1"
- Me.OfficeNavigationBar1.Size = New System.Drawing.Size(1070, 45)
- Me.OfficeNavigationBar1.TabIndex = 2
- Me.OfficeNavigationBar1.Text = "OfficeNavigationBar1"
+ Me.UserNavbar.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.UserNavbar.Items.AddRange(New DevExpress.XtraBars.Navigation.NavigationBarItem() {Me.NavbarUser2Group, Me.NavbarGroup2Group})
+ Me.UserNavbar.Location = New System.Drawing.Point(0, 474)
+ Me.UserNavbar.Name = "UserNavbar"
+ Me.UserNavbar.Size = New System.Drawing.Size(1070, 45)
+ Me.UserNavbar.TabIndex = 2
+ Me.UserNavbar.Text = "OfficeNavigationBar1"
'
'NavbarUser2Group
'
@@ -166,54 +155,50 @@ Partial Class frmUserManager
Me.NavbarGroup2Group.ShowPeekFormOnItemHover = DevExpress.Utils.DefaultBoolean.[True]
Me.NavbarGroup2Group.Text = "Gruppenzuordnung"
'
- 'UCGroupToGroup
+ 'ContentPanel
'
- Me.UCGroupToGroup.Location = New System.Drawing.Point(22, 163)
- Me.UCGroupToGroup.Name = "UCGroupToGroup"
- Me.UCGroupToGroup.Size = New System.Drawing.Size(276, 234)
- Me.UCGroupToGroup.TabIndex = 5
- Me.UCGroupToGroup.TextAssignedToParent = "Zugeordnete Gruppen:"
- Me.UCGroupToGroup.TextNotAssignedToParent = "Nicht zugeordnete Gruppen:"
- Me.UCGroupToGroup.TextParentList = "Verfügbare Gruppen:"
- Me.UCGroupToGroup.Visible = False
+ Me.ContentPanel.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.ContentPanel.Location = New System.Drawing.Point(0, 146)
+ Me.ContentPanel.Name = "ContentPanel"
+ Me.ContentPanel.Size = New System.Drawing.Size(1070, 328)
+ Me.ContentPanel.TabIndex = 8
'
'frmUserManager
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1070, 540)
- Me.Controls.Add(Me.UCGroupToGroup)
- Me.Controls.Add(Me.UCUserToGroup)
- Me.Controls.Add(Me.OfficeNavigationBar1)
+ Me.Controls.Add(Me.ContentPanel)
+ Me.Controls.Add(Me.UserNavbar)
Me.Controls.Add(Me.RibbonStatusBar)
- Me.Controls.Add(Me.RibbonControl)
+ Me.Controls.Add(Me.UserRibbon)
Me.Name = "frmUserManager"
- Me.Ribbon = Me.RibbonControl
+ Me.Ribbon = Me.UserRibbon
Me.ShowIcon = False
Me.StatusBar = Me.RibbonStatusBar
Me.Text = "User Manager"
- CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit()
- CType(Me.OfficeNavigationBar1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.UserRibbon, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.UserNavbar, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.ContentPanel, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
- Friend WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl
+ Friend WithEvents UserRibbon As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPageUserManager As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents BarButtonUserEdit As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonGroupEdit As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageCategoryUserManager As DevExpress.XtraBars.Ribbon.RibbonPageCategory
- Friend WithEvents UCUserToGroup As UserControlAssignment
Friend WithEvents BarButtonAssign As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonRefresh As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
- Friend WithEvents OfficeNavigationBar1 As DevExpress.XtraBars.Navigation.OfficeNavigationBar
+ Friend WithEvents UserNavbar As DevExpress.XtraBars.Navigation.OfficeNavigationBar
Friend WithEvents NavbarUser2Group As DevExpress.XtraBars.Navigation.NavigationBarItem
Friend WithEvents NavbarGroup2Group As DevExpress.XtraBars.Navigation.NavigationBarItem
- Friend WithEvents UCGroupToGroup As UserControlAssignment
+ Friend WithEvents ContentPanel As DevExpress.XtraEditors.PanelControl
End Class
diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.vb b/EDMI_ClientSuite/UserManager/frmUserManager.vb
index dcf25353..b5cbff06 100644
--- a/EDMI_ClientSuite/UserManager/frmUserManager.vb
+++ b/EDMI_ClientSuite/UserManager/frmUserManager.vb
@@ -4,6 +4,14 @@ Public Class frmUserManager
Private _Logger As Logger
Private _CommonCommands As ClassCommonCommands
+ Private _UserTable As DataTable
+ Private _GroupTable As DataTable
+ Private _UserToGroupTable As DataTable
+ Private _GroupToGroupTable As DataTable
+
+ Private _UserToGroupControl As UserControlAssignment
+ Private _GroupToGroupControl As UserControlAssignment
+
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
@@ -14,65 +22,103 @@ Public Class frmUserManager
End Sub
Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Await InitData()
+ Await InitDataAsync()
- AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserAddedToGroup
- AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserRemovedFromGroup
-
- AddHandler UCGroupToGroup.ChildAdded, AddressOf HandleGroupAddedToGroup
- AddHandler UCGroupToGroup.ChildRemoved, AddressOf HandleGroupRemovedFromGroup
-
- RibbonControl.SelectPage(RibbonPageUserManager)
+ UserRibbon.SelectPage(RibbonPageUserManager)
+ UserNavbar.SelectedItem = NavbarUser2Group
End Sub
Private Sub frmUserManager_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
If Visible Then
- RibbonControl.SelectPage(RibbonPageUserManager)
+ UserRibbon.SelectPage(RibbonPageUserManager)
End If
End Sub
- Private Async Function InitData() As Task
- Dim oUserTable = Await GetAttributeListAsync("User")
- Dim oGroupTable = Await GetAttributeListAsync("Group")
- Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
- Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
+ Private Sub frmUserManager_Activated(sender As Object, e As EventArgs) Handles Me.Activated
+ If Visible Then
+ UserRibbon.SelectPage(RibbonPageUserManager)
+ End If
+ End Sub
- UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID")
- UCGroupToGroup.Init(oGroupTable, oGroupTable, oGroupGroupTable, "GROUP2_ID", "GROUP1_ID")
+ Private Sub ShowUserToGroupControl()
+ If _UserToGroupControl Is Nothing Then
+ _UserToGroupControl = New UserControlAssignment() With {
+ .TextAssignedToParent = "Zugeordnete Benutzer",
+ .TextNotAssignedToParent = "Nicht zugeordnete Benutzer",
+ .TextParentList = "Verfügbare Gruppen",
+ .Dock = DockStyle.Fill
+ }
+
+ AddHandler _UserToGroupControl.ChildAdded, AddressOf HandleUserAddedToGroup
+ AddHandler _UserToGroupControl.ChildRemoved, AddressOf HandleUserRemovedFromGroup
+
+ _UserToGroupControl.Init(_GroupTable, _UserTable, _UserToGroupTable, "GROUP_ID", "USER_ID")
+
+ ContentPanel.Controls.Add(_UserToGroupControl)
+ End If
+
+ _UserToGroupControl.Visible = True
+ End Sub
+
+ Private Sub ShowGroupToGroupControl()
+ If _GroupToGroupControl Is Nothing Then
+ _GroupToGroupControl = New UserControlAssignment() With {
+ .TextAssignedToParent = "Zugeordnete Gruppen",
+ .TextNotAssignedToParent = "Nicht zugeordnete Gruppen",
+ .TextParentList = "Verfügbare Gruppen",
+ .Dock = DockStyle.Fill
+ }
+
+ AddHandler _GroupToGroupControl.ChildAdded, AddressOf HandleGroupAddedToGroup
+ AddHandler _GroupToGroupControl.ChildRemoved, AddressOf HandleGroupRemovedFromGroup
+
+ _GroupToGroupControl.Init(_GroupTable, _GroupTable, _GroupToGroupTable, "GROUP2_ID", "GROUP1_ID")
+
+ _ContentPanel.Controls.Add(_GroupToGroupControl)
+ End If
+
+ _GroupToGroupControl.Visible = True
+ End Sub
+
+ Private Async Function InitDataAsync() As Task
+ _UserTable = Await GetAttributeListAsync("User")
+ _GroupTable = Await GetAttributeListAsync("Group")
+ _UserToGroupTable = Await GetAttributeListAsync("User2Group")
+ _GroupToGroupTable = Await GetAttributeListAsync("Group2Group")
End Function
- Private Async Function UpdateData() As Task
- Dim oUserTable = Await GetAttributeListAsync("User")
- Dim oGroupTable = Await GetAttributeListAsync("Group")
- Dim oUserGroupTable = Await GetAttributeListAsync("User2Group")
- Dim oGroupGroupTable = Await GetAttributeListAsync("Group2Group")
+ Private Async Function UpdateDataAsync() As Task
+ _UserTable = Await GetAttributeListAsync("User")
+ _GroupTable = Await GetAttributeListAsync("Group")
+ _UserToGroupTable = Await GetAttributeListAsync("User2Group")
+ _GroupToGroupTable = Await GetAttributeListAsync("Group2Group")
- UCUserToGroup.UpdateData(oGroupTable, oUserTable, oUserGroupTable)
- UCGroupToGroup.UpdateData(oGroupTable, oGroupTable, oGroupGroupTable)
+ _UserToGroupControl.UpdateData(_GroupTable, _UserTable, _UserToGroupTable)
+ _GroupToGroupControl.UpdateData(_GroupTable, _GroupTable, _GroupToGroupTable)
End Function
Private Async Sub HandleUserAddedToGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_USER2GROUP(UserId, GroupId)
- Await UpdateData()
+ Await UpdateDataAsync()
End Sub
Private Async Sub HandleUserRemovedFromGroup(GroupId As Integer, UserId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
- Await UpdateData()
+ Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupAddedToGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oRecordId = Await _CommonCommands.FNICM_RADM_NEW_GROUP2GROUP(GroupId, ParentGroupId)
- Await UpdateData()
+ Await UpdateDataAsync()
End Sub
Private Async Sub HandleGroupRemovedFromGroup(ParentGroupId As Integer, GroupId As Integer, RelationRecordId As Integer)
Dim oResult = Await _CommonCommands.FNICM_DELETE_RECORD_FINALLY(RelationRecordId)
- Await UpdateData()
+ Await UpdateDataAsync()
End Sub
Private Async Function GetAttributeListAsync(AttributeName As String) As Task(Of DataTable)
@@ -90,38 +136,32 @@ Public Class frmUserManager
End Try
End Function
- Private Async Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick
- Dim oDatatable = Await GetAttributeListAsync("User")
- Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, oDatatable)
- 'oForm.MdiParent = o
+ Private Sub BarButtonUserEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserEdit.ItemClick
+ Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, _UserTable)
oForm.Show()
End Sub
- Private Async Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick
- Dim oDatatable = Await GetAttributeListAsync("Group")
- Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, oDatatable)
+ Private Sub BarButtonGroupEdit_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonGroupEdit.ItemClick
+ Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, _GroupTable)
oForm.Show()
End Sub
Private Async Sub BarButtonRefresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonRefresh.ItemClick
- Await UpdateData()
+ Await UpdateDataAsync()
End Sub
- Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles OfficeNavigationBar1.SelectedItemChanged
- Select Case OfficeNavigationBar1.SelectedItem.Name
- Case "NavbarUser2Group"
- UCUserToGroup.Visible = True
- UCUserToGroup.Dock = DockStyle.Fill
+ Private Sub OfficeNavigationBar1_SelectedItemChanged(sender As Object, e As DevExpress.XtraBars.Navigation.NavigationBarItemEventArgs) Handles UserNavbar.SelectedItemChanged
+ ' Hide all UserControls
+ For Each oControl As Control In ContentPanel.Controls
+ oControl.Visible = False
+ Next
- UCGroupToGroup.Visible = False
- UCGroupToGroup.Dock = DockStyle.None
- Case "NavbarGroup2Group"
- UCGroupToGroup.Visible = True
- UCGroupToGroup.Dock = DockStyle.Fill
-
- UCUserToGroup.Visible = False
- UCUserToGroup.Dock = DockStyle.None
- End Select
+ ' Then check the currently selected navbar item and show the corresponding UserControl
+ If UserNavbar.SelectedItem.Equals(NavbarUser2Group) Then
+ ShowUserToGroupControl()
+ ElseIf UserNavbar.SelectedItem.Equals(NavbarGroup2Group) Then
+ ShowGroupToGroupControl()
+ End If
End Sub
diff --git a/EDMI_ClientSuite/Widgets/ProcessManagerWidget.vb b/EDMI_ClientSuite/Widgets/ProcessManagerWidget.vb
index 7a02571e..72b86145 100644
--- a/EDMI_ClientSuite/Widgets/ProcessManagerWidget.vb
+++ b/EDMI_ClientSuite/Widgets/ProcessManagerWidget.vb
@@ -1,4 +1,19 @@
-Public Class ProcessManagerWidget
+Imports DevExpress.XtraGrid
+
+Public Class ProcessManagerWidget
+ Public Sub New()
+ ' Dieser Aufruf ist für den Designer erforderlich.
+ InitializeComponent()
+
+ ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
+ Dim oGridPatcher = New ClassControlPatcher(Of GridControl)(Me)
+ oGridPatcher.
+ ProcessContainer(AddressOf ClassGridControl.DefaultGridSettings).
+ ProcessContainer(AddressOf ClassGridControl.ReadOnlyGridSettings)
+
+
+ End Sub
+
Public Delegate Sub RowDoubleClickedDelegate(RowView As DataRowView)
Public Event RowDoubleClicked As RowDoubleClickedDelegate