From 86ade712c9f39db7e1f35ce743f1c8501cedade5 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 25 Feb 2019 16:40:52 +0100 Subject: [PATCH] EditForm Tweaks, Other Tweaks --- EDMI_ClientSuite/ClassCommonCommands.vb | 8 +- EDMI_ClientSuite/ClassUIConfig.vb | 9 ++ .../UserManager/frmEdit.Designer.vb | 93 ++++++------ EDMI_ClientSuite/UserManager/frmEdit.resx | 87 ++++++----- EDMI_ClientSuite/UserManager/frmEdit.vb | 69 +++++++-- .../UserManager/frmUserManager.Designer.vb | 99 ++++++------- .../UserManager/frmUserManager.vb | 140 +++++++++++------- .../Widgets/ProcessManagerWidget.vb | 17 ++- 8 files changed, 311 insertions(+), 211 deletions(-) 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 - ' - 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 + 'labelParentAttributeId ' - 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 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u + O5UGMy8AAABgSURBVDhP3YxRCoAwDEN3QS/lqbxdtNKUTDJEHAh+vNGl6WsAXmFDsqwbkphtx4bkR4Kc + bceGRAUjzofFp0wVFPEnWrzk1e0CJfMS6I7ME4w4Sp1Ad8SGhII4/kZwD9oOmV+r+RzWkL4AAAAASUVO + RK5CYII= - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1 - cztCYXJzO1JpYmJvbjuVBjMvAAAAj0lEQVRYR+3OUQqEMAxFUTfoplyVu4vNhyDpRR4Sokg+DsKdafsW - M3sVxkoYK2GshLESRsW67XYVf1dhVPSAHtAD/j0gXp4lvuOm4OhwhviOm4KjwxniO24Kjg5niO+4KaiU - yxUYFTRgfG9dz58wKsaF3xvwBEZFD6AB44v/vYNR0QOyYKyEsRLGShjr2HIAeeWOhN7Trl4AAAAASUVO - RK5CYII= + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u + O5UGMy8AAACPSURBVFhH7c5RCoQwDEVRN+imXJW7i82HIOlFHhKiSD4Owp1p+xYzexXGShgrYayEsRJG + xbrtdhV/V2FU9IAe0AP+PSBeniW+46bg6HCG+I6bgqPDGeI7bgqODmeI77gpqJTLFRgVNGB8b13PnzAq + xoXfG/AERkUPoAHji/+9g1HRA7JgrISxEsZKGOvYcgB55Y6E3tOuXgAAAABJRU5ErkJggg== - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAKXRFWHRUaXRsZQBSZW1vdmU7 - RGVsZXRlO0JhcnM7UmliYm9uO1N0YW5kYXJkO2NWSDAAAADCSURBVDhPjZNLCgIxEERzOGFWegkvIH4Q - Rhyv6UkUV20VpCTpTquLB0n9GAZSzKzct6s1mHn+B2Qv7PCs8gsYuPqwB5lbzbKzoXCqgkhH4Kks9jLO - zggj0Hz5SL0NpCM4D8vkM1CDfmQBaZl0AwQBP9LSlUl3EQiORkKZBIEg7D+bLKNsEBAclUUY6S4I+PIB - hB/bdr6WGy8d+VkW0IYjNPgwWiOUBTw/MlOcwKMKaVkgo5EnmCRyZOfDGcjyAU5mVt7SQJzMJkqbYgAA - AABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS + aWJib247U3RhbmRhcmQ7Y1ZIMAAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlO + q4sHSf0YBlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgP + y+QzUIN+ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQ + hiM0+DBaI5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC - + - 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= + 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() - - AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserAddedToGroup - AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserRemovedFromGroup + Await InitDataAsync() - 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 Sub frmUserManager_Activated(sender As Object, e As EventArgs) Handles Me.Activated + If Visible Then + UserRibbon.SelectPage(RibbonPageUserManager) + End If + End Sub + + 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 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 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") - UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID") - UCGroupToGroup.Init(oGroupTable, oGroupTable, oGroupGroupTable, "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 - - 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 + 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 + + ' 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