diff --git a/EDMI_ClientSuite/ClassConstants.vb b/EDMI_ClientSuite/ClassConstants.vb
index df542a90..7921d995 100644
--- a/EDMI_ClientSuite/ClassConstants.vb
+++ b/EDMI_ClientSuite/ClassConstants.vb
@@ -7,4 +7,6 @@
Public Const SERVICE_OPEN_TIMEOUT = 3
Public Const FOLDER_NAME_LAYOUT = "Layout"
+
+ Public Const ATTRIBUTE_ID_COLUMN = "RECORD_ID"
End Class
diff --git a/EDMI_ClientSuite/ClassDragDrop.vb b/EDMI_ClientSuite/ClassDragDrop.vb
new file mode 100644
index 00000000..9c729fd3
--- /dev/null
+++ b/EDMI_ClientSuite/ClassDragDrop.vb
@@ -0,0 +1,83 @@
+Imports DevExpress.XtraGrid.Views.Grid
+Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
+
+Public Class ClassDragDrop
+ Private downHitInfo As GridHitInfo = Nothing
+
+ Public Sub New()
+ End Sub
+
+ Public Sub AddGridView(view As GridView)
+ AddHandler view.MouseDown, AddressOf view_MouseDown
+ AddHandler view.MouseMove, AddressOf view_MouseMove
+ AddHandler view.GridControl.DragOver, AddressOf grid_DragOver
+ End Sub
+
+ Private Sub view_MouseDown(sender As Object, e As MouseEventArgs)
+ Dim view As GridView = sender
+ downHitInfo = Nothing
+ Dim hitInfo As GridHitInfo = view.CalcHitInfo(New Point(e.X, e.Y))
+
+ If Control.ModifierKeys <> Keys.None Then
+ Return
+ End If
+
+ If e.Button = MouseButtons.Left And hitInfo.RowHandle >= 0 Then
+ downHitInfo = hitInfo
+ End If
+ End Sub
+
+ Private Sub view_MouseMove(sender As Object, e As MouseEventArgs)
+ Dim view As GridView = sender
+ Dim hitInfo As GridHitInfo = view.CalcHitInfo(New Point(e.X, e.Y))
+
+ If e.Button = MouseButtons.Left And Not IsNothing(downHitInfo) Then
+ Dim dragSize As Size = SystemInformation.DragSize
+ Dim dragRect As New Rectangle(New Point(downHitInfo.HitPoint.X - dragSize.Width / 2, downHitInfo.HitPoint.Y - dragSize.Height / 2), dragSize)
+
+ ' DragRect ist ein kleines Rechteck, dessen Mitte der Punkt ist, wo die Maus geklickt wurde.
+ ' Es soll verhindern, dass durch schnelles Klicken unbeabsichtigt Drag'n'Drop Operationen initiiert werden
+ ' Siehe: https://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation.dragsize(v=vs.110).aspx
+ If Not dragRect.Contains(New Point(e.X, e.Y)) Then
+ ' dragDropData enhält eine einzelne Row oder den kompletten View,
+ ' jenachdem, wie die Drag'n'Drop Operation gestartet wurde.
+ Dim dragDropData As Object
+
+ ' Wenn keine Zeile markiert ist
+ If downHitInfo.RowHandle < 0 Then
+ Exit Sub
+ End If
+
+ ' Wenn zwar eine Zeile markiert ist, aber keine über die Checkbox angehakt wurde,
+ ' wird die markierte Zeile übergeben.
+ ' Wenn 1 oder n Zeilen über die Checkbox angehakt wurde, werden diese übergeben
+ If view.GetSelectedRows().Length = 0 Then
+ Dim row As DataRow = view.GetDataRow(downHitInfo.RowHandle)
+ dragDropData = row
+ Else
+ dragDropData = view
+ End If
+
+ view.GridControl.DoDragDrop(dragDropData, DragDropEffects.Move)
+ downHitInfo = Nothing
+
+ DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = True
+ End If
+ End If
+ End Sub
+
+ Private Sub grid_DragOver(sender As Object, e As DragEventArgs)
+ Dim multipleDropped As Boolean = e.Data.GetDataPresent(GetType(GridView))
+
+ ' TODO: Check which kind of record was dragged
+ 'Dim singleUserDropped As Boolean = e.Data.GetDataPresent(GetType(TBDD_USERRow))
+ 'Dim singleGroupDropped As Boolean = e.Data.GetDataPresent(GetType(DS_ChangeS.TBDD_GROUPSRow))
+
+ 'If multipleDropped Or singleUserDropped Or singleGroupDropped Then
+ If multipleDropped Then
+ e.Effect = DragDropEffects.Move
+ Else
+ e.Effect = DragDropEffects.None
+ End If
+ End Sub
+End Class
\ No newline at end of file
diff --git a/EDMI_ClientSuite/ClassUIUtils.vb b/EDMI_ClientSuite/ClassUIUtils.vb
new file mode 100644
index 00000000..2145f3a7
--- /dev/null
+++ b/EDMI_ClientSuite/ClassUIUtils.vb
@@ -0,0 +1,38 @@
+Imports DevExpress.XtraGrid
+Imports DevExpress.XtraGrid.Views.Grid
+
+Public Class ClassUIUtils
+
+ Public Shared Function ConfigureGridVieDefaults(View As GridView)
+ View.OptionsView.ShowAutoFilterRow = True
+ View.OptionsView.EnableAppearanceEvenRow = True
+
+ With View.Appearance
+ .EvenRow.BackColor = Color.Aquamarine
+ .FilterPanel.BackColor = Color.Orange
+ End With
+
+ Return View
+ End Function
+
+ Public Shared Function ConfigureGridViewReadOnly(View As GridView)
+ View.OptionsBehavior.Editable = False
+ View.OptionsBehavior.ReadOnly = True
+ View.OptionsSelection.MultiSelectMode = GridMultiSelectMode.RowSelect
+ End Function
+
+ Public Shared Function ConfigureGridControlDefaults(Grid As GridControl, Optional [ReadOnly] As Boolean = False) As GridControl
+ For Each oView In Grid.Views
+ Select Case oView.GetType
+ Case GetType(GridView)
+ oView = ConfigureGridVieDefaults(oView)
+
+ If [ReadOnly] Then
+ oView = ConfigureGridViewReadOnly(oView)
+ End If
+ End Select
+ Next
+
+ Return Grid
+ End Function
+End Class
diff --git a/EDMI_ClientSuite/ClientSuite.vbproj b/EDMI_ClientSuite/ClientSuite.vbproj
index b961e407..acb820ef 100644
--- a/EDMI_ClientSuite/ClientSuite.vbproj
+++ b/EDMI_ClientSuite/ClientSuite.vbproj
@@ -89,6 +89,7 @@
+
@@ -117,9 +118,11 @@
+
+
DockManagerTest.vb
@@ -191,6 +194,18 @@
Form
+
+ frmEdit.vb
+
+
+ Form
+
+
+ frmUserManager.vb
+
+
+ Form
+
True
@@ -219,6 +234,12 @@
True
ControlProperties.en.resx
+
+ UserControlAssignment.vb
+
+
+ UserControl
+
ProcessManagerWidget.vb
@@ -257,6 +278,12 @@
frmConfigUser.vb
+
+ frmEdit.vb
+
+
+ frmUserManager.vb
+
VbMyResourcesResXFileCodeGenerator
@@ -274,6 +301,9 @@
ControlProperties.Designer.vb
My.Resources
+
+ UserControlAssignment.vb
+
ProcessManagerWidget.vb
@@ -349,8 +379,6 @@
Logging
-
-
-
+
\ No newline at end of file
diff --git a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb
index 9b1d1aa7..1883c034 100644
--- a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb
+++ b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.Designer.vb
@@ -1,6 +1,6 @@
Partial Class frmEntityDesigner
- Inherits DevExpress.XtraEditors.XtraForm
+ Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -23,16 +23,24 @@ Partial Class frmEntityDesigner
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
- Me.PanelMain = New ClientSuite.ControlSnapPanel(Me.components)
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmEntityDesigner))
+ Me.PanelMain = New DigitalData.GUIs.ClientSuite.ControlSnapPanel(Me.components)
Me.TabControlMain = New DevExpress.XtraTab.XtraTabControl()
Me.TabPageControls = New DevExpress.XtraTab.XtraTabPage()
+ Me.Label1 = New System.Windows.Forms.Label()
Me.btnCombobox = New System.Windows.Forms.Button()
Me.btnTextbox = New System.Windows.Forms.Button()
Me.btnLabel = New System.Windows.Forms.Button()
Me.TabPageProperties = New DevExpress.XtraTab.XtraTabPage()
Me.PropertyGridMain = New DevExpress.XtraVerticalGrid.PropertyGridControl()
Me.SplitContainerControlMain = New DevExpress.XtraEditors.SplitContainerControl()
- Me.Label1 = New System.Windows.Forms.Label()
+ Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
+ Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
+ Me.RibbonPageCategory1 = New DevExpress.XtraBars.Ribbon.RibbonPageCategory()
+ Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage()
+ Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
+ Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
CType(Me.TabControlMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabControlMain.SuspendLayout()
Me.TabPageControls.SuspendLayout()
@@ -40,6 +48,7 @@ Partial Class frmEntityDesigner
CType(Me.PropertyGridMain, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControlMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControlMain.SuspendLayout()
+ CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'PanelMain
@@ -50,7 +59,7 @@ Partial Class frmEntityDesigner
Me.PanelMain.Location = New System.Drawing.Point(0, 0)
Me.PanelMain.Name = "PanelMain"
Me.PanelMain.ShowGrid = True
- Me.PanelMain.Size = New System.Drawing.Size(564, 450)
+ Me.PanelMain.Size = New System.Drawing.Size(564, 283)
Me.PanelMain.TabIndex = 0
'
'TabControlMain
@@ -59,7 +68,7 @@ Partial Class frmEntityDesigner
Me.TabControlMain.Location = New System.Drawing.Point(0, 0)
Me.TabControlMain.Name = "TabControlMain"
Me.TabControlMain.SelectedTabPage = Me.TabPageControls
- Me.TabControlMain.Size = New System.Drawing.Size(224, 450)
+ Me.TabControlMain.Size = New System.Drawing.Size(224, 283)
Me.TabControlMain.TabIndex = 0
Me.TabControlMain.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabPageControls, Me.TabPageProperties})
'
@@ -70,9 +79,18 @@ Partial Class frmEntityDesigner
Me.TabPageControls.Controls.Add(Me.btnTextbox)
Me.TabPageControls.Controls.Add(Me.btnLabel)
Me.TabPageControls.Name = "TabPageControls"
- Me.TabPageControls.Size = New System.Drawing.Size(222, 425)
+ Me.TabPageControls.Size = New System.Drawing.Size(222, 258)
Me.TabPageControls.Text = "Controls"
'
+ 'Label1
+ '
+ Me.Label1.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label1.Location = New System.Drawing.Point(0, 0)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(222, 31)
+ Me.Label1.TabIndex = 2
+ Me.Label1.Text = "Ziehen Sie zum Erstellen einen Controll-Button auf das Panel"
+ '
'btnCombobox
'
Me.btnCombobox.Location = New System.Drawing.Point(3, 92)
@@ -104,7 +122,7 @@ Partial Class frmEntityDesigner
'
Me.TabPageProperties.Controls.Add(Me.PropertyGridMain)
Me.TabPageProperties.Name = "TabPageProperties"
- Me.TabPageProperties.Size = New System.Drawing.Size(222, 425)
+ Me.TabPageProperties.Size = New System.Drawing.Size(222, 258)
Me.TabPageProperties.Text = "Properties"
'
'PropertyGridMain
@@ -112,32 +130,72 @@ Partial Class frmEntityDesigner
Me.PropertyGridMain.Dock = System.Windows.Forms.DockStyle.Fill
Me.PropertyGridMain.Location = New System.Drawing.Point(0, 0)
Me.PropertyGridMain.Name = "PropertyGridMain"
- Me.PropertyGridMain.Size = New System.Drawing.Size(222, 425)
+ Me.PropertyGridMain.Size = New System.Drawing.Size(222, 258)
Me.PropertyGridMain.TabIndex = 0
'
'SplitContainerControlMain
'
Me.SplitContainerControlMain.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControlMain.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2
- Me.SplitContainerControlMain.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainerControlMain.Location = New System.Drawing.Point(0, 146)
Me.SplitContainerControlMain.Name = "SplitContainerControlMain"
Me.SplitContainerControlMain.Panel1.Controls.Add(Me.PanelMain)
Me.SplitContainerControlMain.Panel1.Text = "Panel1"
Me.SplitContainerControlMain.Panel2.Controls.Add(Me.TabControlMain)
Me.SplitContainerControlMain.Panel2.Text = "Panel2"
- Me.SplitContainerControlMain.Size = New System.Drawing.Size(800, 450)
+ Me.SplitContainerControlMain.Size = New System.Drawing.Size(800, 283)
Me.SplitContainerControlMain.SplitterPosition = 224
Me.SplitContainerControlMain.TabIndex = 1
Me.SplitContainerControlMain.Text = "SplitContainerControl1"
'
- 'Label1
+ 'RibbonControl1
'
- Me.Label1.Dock = System.Windows.Forms.DockStyle.Top
- Me.Label1.Location = New System.Drawing.Point(0, 0)
- Me.Label1.Name = "Label1"
- Me.Label1.Size = New System.Drawing.Size(222, 31)
- Me.Label1.TabIndex = 2
- Me.Label1.Text = "Ziehen Sie zum Erstellen einen Controll-Button auf das Panel"
+ Me.RibbonControl1.ExpandCollapseItem.Id = 0
+ Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.BarButtonItem1})
+ Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
+ Me.RibbonControl1.MaxItemId = 2
+ Me.RibbonControl1.Name = "RibbonControl1"
+ Me.RibbonControl1.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategory1})
+ Me.RibbonControl1.Size = New System.Drawing.Size(800, 146)
+ Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
+ '
+ 'BarButtonItem1
+ '
+ Me.BarButtonItem1.Caption = "Control Löschen"
+ 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"
+ '
+ 'RibbonPageCategory1
+ '
+ Me.RibbonPageCategory1.Name = "RibbonPageCategory1"
+ Me.RibbonPageCategory1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage3})
+ Me.RibbonPageCategory1.Text = "Entitäten Designer"
+ '
+ 'RibbonPage3
+ '
+ Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3})
+ Me.RibbonPage3.Name = "RibbonPage3"
+ Me.RibbonPage3.Text = "Control Actions"
+ '
+ 'RibbonPageGroup3
+ '
+ Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem1)
+ Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
+ Me.RibbonPageGroup3.Text = "RibbonPageGroup3"
+ '
+ 'RibbonStatusBar1
+ '
+ Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 429)
+ Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
+ Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
+ Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 21)
+ '
+ 'RibbonPage2
+ '
+ Me.RibbonPage2.Name = "RibbonPage2"
+ Me.RibbonPage2.Text = "RibbonPage2"
'
'frmEntityDesigner
'
@@ -145,7 +203,11 @@ Partial Class frmEntityDesigner
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.SplitContainerControlMain)
+ Me.Controls.Add(Me.RibbonStatusBar1)
+ Me.Controls.Add(Me.RibbonControl1)
Me.Name = "frmEntityDesigner"
+ Me.Ribbon = Me.RibbonControl1
+ Me.StatusBar = Me.RibbonStatusBar1
Me.Text = "Entitäten Designer"
CType(Me.TabControlMain, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabControlMain.ResumeLayout(False)
@@ -154,7 +216,9 @@ Partial Class frmEntityDesigner
CType(Me.PropertyGridMain, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControlMain, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControlMain.ResumeLayout(False)
+ CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
+ Me.PerformLayout()
End Sub
Friend WithEvents TabControlMain As DevExpress.XtraTab.XtraTabControl
@@ -167,4 +231,11 @@ Partial Class frmEntityDesigner
Friend WithEvents SplitContainerControlMain As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents btnCombobox As Button
Friend WithEvents Label1 As Label
+ Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
+ Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
+ Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
+ Friend WithEvents RibbonPageCategory1 As DevExpress.XtraBars.Ribbon.RibbonPageCategory
+ Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage
+ Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
+ Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
End Class
diff --git a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.resx b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.resx
index 1af7de15..89f848de 100644
--- a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.resx
+++ b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.resx
@@ -117,4 +117,28 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAjdEVYdFRpdGxlAENhbmNlbDtTdG9wO0V4aXQ7QmFy
+ cztSaWJib247TJaWsgAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlOq4sHSf0Y
+ BlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgPy+QzUIN+
+ ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQhiM0+DBa
+ I5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAjdEVYdFRpdGxlAENhbmNlbDtTdG9wO0V4aXQ7QmFy
+ cztSaWJib247TJaWsgAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1VcxaomD57pek1e
+ hLj4FilSP9Dd0LtSyr8ixZlIcSZSnIkUL8+3f6LJOvhzixRr0BV4AXf13I3LuQev4OjzPVKEgeUfoIBv
+ kBpRM1hOLzM+gRyxEnDxALiaRiM7wpcbzNy3fb8OBi4+gTagd4Qq5/lBda0EgsvksRrboK0RqXIiRRiM
+ zIh0OZEiTJ6eEUPlRIowtmyNGC4nUoRZEY0YLidSRECEGuFJlRMpImSLaMRSDmRmhBQZsoF65jZgeTFV
+ ZoQUGRIQlRvLCJUZIUWEKKK3XWndI6SIgN5yPvPwE1XZLVKEubfc7gyPkCKMmXJjaIQUYSJR+Qn4Yk96
+ hBRhGCk3UiNWAi7uwVs1+oCeckONeAfdPyTX4Ksas+WW4UecwU3bQ1YCwWXCEVydKicuhyOYIcuJFC0I
+ 8P/Qn7tosvK/5TOR4kykOBMpzqPsfgBphQ1j4i+mWAAAAABJRU5ErkJggg==
+
+
\ No newline at end of file
diff --git a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.vb b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.vb
index 3510d287..01632f45 100644
--- a/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.vb
+++ b/EDMI_ClientSuite/EntityDesigner/frmEntityDesigner.vb
@@ -255,8 +255,4 @@ Public Class frmEntityDesigner
End If
End Select
End Sub
-
- Private Sub frmEntityDesigner_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
- My.MainForm.RibbonPageCategoryEntityDesigner.Visible = False
- End Sub
End Class
\ No newline at end of file
diff --git a/EDMI_ClientSuite/My Project/licenses.licx b/EDMI_ClientSuite/My Project/licenses.licx
index ccd2d2a4..8c918bc0 100644
--- a/EDMI_ClientSuite/My Project/licenses.licx
+++ b/EDMI_ClientSuite/My Project/licenses.licx
@@ -1,8 +1,9 @@
-DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb b/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb
new file mode 100644
index 00000000..b024815b
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/UserControlAssignment.Designer.vb
@@ -0,0 +1,234 @@
+
+Partial Class UserControlAssignment
+ Inherits System.Windows.Forms.UserControl
+
+ 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Wird vom Windows Form-Designer benötigt.
+ Private components As System.ComponentModel.IContainer
+
+ 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+ 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
+ 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+
+ Private Sub InitializeComponent()
+ Me.SplitterMain = New DevExpress.XtraEditors.SplitContainerControl()
+ Me.GridNotAssignedToParent = New DevExpress.XtraGrid.GridControl()
+ Me.ViewNotAssignedToParent = New DevExpress.XtraGrid.Views.Grid.GridView()
+ Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl()
+ Me.labelNotAssignedToParent = New System.Windows.Forms.Label()
+ Me.SplitterInner = New DevExpress.XtraEditors.SplitContainerControl()
+ Me.GridParentList = New DevExpress.XtraGrid.GridControl()
+ Me.ViewParentList = New DevExpress.XtraGrid.Views.Grid.GridView()
+ Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
+ Me.labelParentList = New System.Windows.Forms.Label()
+ Me.GridAssignedToParent = New DevExpress.XtraGrid.GridControl()
+ Me.ViewAssignedToParent = New DevExpress.XtraGrid.Views.Grid.GridView()
+ Me.PanelControl3 = New DevExpress.XtraEditors.PanelControl()
+ Me.labelAssignedToParent = New System.Windows.Forms.Label()
+ CType(Me.SplitterMain, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitterMain.SuspendLayout()
+ CType(Me.GridNotAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.ViewNotAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.PanelControl2.SuspendLayout()
+ CType(Me.SplitterInner, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitterInner.SuspendLayout()
+ CType(Me.GridParentList, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.ViewParentList, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.PanelControl1.SuspendLayout()
+ CType(Me.GridAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.ViewAssignedToParent, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.PanelControl3, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.PanelControl3.SuspendLayout()
+ Me.SuspendLayout()
+ '
+ 'SplitterMain
+ '
+ Me.SplitterMain.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitterMain.Location = New System.Drawing.Point(0, 0)
+ Me.SplitterMain.Name = "SplitterMain"
+ Me.SplitterMain.Panel1.Controls.Add(Me.GridNotAssignedToParent)
+ Me.SplitterMain.Panel1.Controls.Add(Me.PanelControl2)
+ Me.SplitterMain.Panel1.Text = "Panel1"
+ Me.SplitterMain.Panel2.Controls.Add(Me.SplitterInner)
+ Me.SplitterMain.Panel2.Text = "Panel2"
+ Me.SplitterMain.Size = New System.Drawing.Size(892, 447)
+ Me.SplitterMain.SplitterPosition = 284
+ Me.SplitterMain.TabIndex = 0
+ Me.SplitterMain.Text = "SplitContainerControl1"
+ '
+ 'GridNotAssignedToParent
+ '
+ Me.GridNotAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.GridNotAssignedToParent.Location = New System.Drawing.Point(0, 41)
+ Me.GridNotAssignedToParent.MainView = Me.ViewNotAssignedToParent
+ Me.GridNotAssignedToParent.Name = "GridNotAssignedToParent"
+ Me.GridNotAssignedToParent.Size = New System.Drawing.Size(284, 406)
+ Me.GridNotAssignedToParent.TabIndex = 2
+ Me.GridNotAssignedToParent.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewNotAssignedToParent})
+ '
+ 'ViewNotAssignedToParent
+ '
+ Me.ViewNotAssignedToParent.GridControl = Me.GridNotAssignedToParent
+ Me.ViewNotAssignedToParent.Name = "ViewNotAssignedToParent"
+ '
+ 'PanelControl2
+ '
+ Me.PanelControl2.Controls.Add(Me.labelNotAssignedToParent)
+ Me.PanelControl2.Dock = System.Windows.Forms.DockStyle.Top
+ Me.PanelControl2.Location = New System.Drawing.Point(0, 0)
+ Me.PanelControl2.Name = "PanelControl2"
+ Me.PanelControl2.Size = New System.Drawing.Size(284, 41)
+ Me.PanelControl2.TabIndex = 1
+ '
+ 'labelNotAssignedToParent
+ '
+ Me.labelNotAssignedToParent.BackColor = System.Drawing.Color.Transparent
+ Me.labelNotAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.labelNotAssignedToParent.Location = New System.Drawing.Point(2, 2)
+ Me.labelNotAssignedToParent.Name = "labelNotAssignedToParent"
+ Me.labelNotAssignedToParent.Size = New System.Drawing.Size(280, 37)
+ Me.labelNotAssignedToParent.TabIndex = 0
+ Me.labelNotAssignedToParent.Text = "Bitte anpassen!"
+ Me.labelNotAssignedToParent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'SplitterInner
+ '
+ Me.SplitterInner.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitterInner.Location = New System.Drawing.Point(0, 0)
+ Me.SplitterInner.Name = "SplitterInner"
+ Me.SplitterInner.Panel1.Controls.Add(Me.GridParentList)
+ Me.SplitterInner.Panel1.Controls.Add(Me.PanelControl1)
+ Me.SplitterInner.Panel1.Text = "Panel1"
+ Me.SplitterInner.Panel2.Controls.Add(Me.GridAssignedToParent)
+ Me.SplitterInner.Panel2.Controls.Add(Me.PanelControl3)
+ Me.SplitterInner.Panel2.Text = "Panel2"
+ Me.SplitterInner.Size = New System.Drawing.Size(596, 447)
+ Me.SplitterInner.SplitterPosition = 302
+ Me.SplitterInner.TabIndex = 0
+ Me.SplitterInner.Text = "SplitContainerControl2"
+ '
+ 'GridParentList
+ '
+ Me.GridParentList.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.GridParentList.Location = New System.Drawing.Point(0, 41)
+ Me.GridParentList.MainView = Me.ViewParentList
+ Me.GridParentList.Name = "GridParentList"
+ Me.GridParentList.Size = New System.Drawing.Size(302, 406)
+ Me.GridParentList.TabIndex = 1
+ Me.GridParentList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewParentList})
+ '
+ 'ViewParentList
+ '
+ Me.ViewParentList.GridControl = Me.GridParentList
+ Me.ViewParentList.Name = "ViewParentList"
+ '
+ 'PanelControl1
+ '
+ Me.PanelControl1.Controls.Add(Me.labelParentList)
+ Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Top
+ Me.PanelControl1.Location = New System.Drawing.Point(0, 0)
+ Me.PanelControl1.Name = "PanelControl1"
+ Me.PanelControl1.Size = New System.Drawing.Size(302, 41)
+ Me.PanelControl1.TabIndex = 0
+ '
+ 'labelParentList
+ '
+ Me.labelParentList.BackColor = System.Drawing.Color.Transparent
+ Me.labelParentList.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.labelParentList.Location = New System.Drawing.Point(2, 2)
+ Me.labelParentList.Name = "labelParentList"
+ Me.labelParentList.Size = New System.Drawing.Size(298, 37)
+ Me.labelParentList.TabIndex = 0
+ Me.labelParentList.Text = "Bitte anpassen!"
+ Me.labelParentList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'GridAssignedToParent
+ '
+ Me.GridAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.GridAssignedToParent.Location = New System.Drawing.Point(0, 41)
+ Me.GridAssignedToParent.MainView = Me.ViewAssignedToParent
+ Me.GridAssignedToParent.Name = "GridAssignedToParent"
+ Me.GridAssignedToParent.Size = New System.Drawing.Size(282, 406)
+ Me.GridAssignedToParent.TabIndex = 2
+ Me.GridAssignedToParent.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewAssignedToParent})
+ '
+ 'ViewAssignedToParent
+ '
+ Me.ViewAssignedToParent.GridControl = Me.GridAssignedToParent
+ Me.ViewAssignedToParent.Name = "ViewAssignedToParent"
+ '
+ 'PanelControl3
+ '
+ Me.PanelControl3.Controls.Add(Me.labelAssignedToParent)
+ Me.PanelControl3.Dock = System.Windows.Forms.DockStyle.Top
+ Me.PanelControl3.Location = New System.Drawing.Point(0, 0)
+ Me.PanelControl3.Name = "PanelControl3"
+ Me.PanelControl3.Size = New System.Drawing.Size(282, 41)
+ Me.PanelControl3.TabIndex = 1
+ '
+ 'labelAssignedToParent
+ '
+ Me.labelAssignedToParent.BackColor = System.Drawing.Color.Transparent
+ Me.labelAssignedToParent.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.labelAssignedToParent.Location = New System.Drawing.Point(2, 2)
+ Me.labelAssignedToParent.Name = "labelAssignedToParent"
+ Me.labelAssignedToParent.Size = New System.Drawing.Size(278, 37)
+ Me.labelAssignedToParent.TabIndex = 0
+ Me.labelAssignedToParent.Text = "Bitte anpassen!"
+ Me.labelAssignedToParent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'UserControlAssignment
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.Controls.Add(Me.SplitterMain)
+ Me.Name = "UserControlAssignment"
+ Me.Size = New System.Drawing.Size(892, 447)
+ CType(Me.SplitterMain, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitterMain.ResumeLayout(False)
+ CType(Me.GridNotAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.ViewNotAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PanelControl2, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.PanelControl2.ResumeLayout(False)
+ CType(Me.SplitterInner, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitterInner.ResumeLayout(False)
+ CType(Me.GridParentList, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.ViewParentList, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.PanelControl1.ResumeLayout(False)
+ CType(Me.GridAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.ViewAssignedToParent, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PanelControl3, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.PanelControl3.ResumeLayout(False)
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents SplitterMain As DevExpress.XtraEditors.SplitContainerControl
+ Friend WithEvents GridNotAssignedToParent As DevExpress.XtraGrid.GridControl
+ Friend WithEvents ViewNotAssignedToParent As DevExpress.XtraGrid.Views.Grid.GridView
+ Friend WithEvents PanelControl2 As DevExpress.XtraEditors.PanelControl
+ Friend WithEvents SplitterInner As DevExpress.XtraEditors.SplitContainerControl
+ Friend WithEvents GridParentList As DevExpress.XtraGrid.GridControl
+ Friend WithEvents ViewParentList As DevExpress.XtraGrid.Views.Grid.GridView
+ Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl
+ Friend WithEvents GridAssignedToParent As DevExpress.XtraGrid.GridControl
+ Friend WithEvents ViewAssignedToParent As DevExpress.XtraGrid.Views.Grid.GridView
+ Friend WithEvents PanelControl3 As DevExpress.XtraEditors.PanelControl
+ Friend WithEvents labelNotAssignedToParent As Label
+ Friend WithEvents labelParentList As Label
+ Friend WithEvents labelAssignedToParent As Label
+End Class
diff --git a/EDMI_ClientSuite/UserManager/UserControlAssignment.resx b/EDMI_ClientSuite/UserManager/UserControlAssignment.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/UserControlAssignment.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/EDMI_ClientSuite/UserManager/UserControlAssignment.vb b/EDMI_ClientSuite/UserManager/UserControlAssignment.vb
new file mode 100644
index 00000000..02b31802
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/UserControlAssignment.vb
@@ -0,0 +1,74 @@
+Imports DevExpress.XtraGrid.Views.Base
+
+Public Class UserControlAssignment
+ Public Property TextParentList As String
+ Public Property TextAssignedToParent As String
+ Public Property TextNotAssignedToParent As String
+
+ Private _DragDropManager As ClassDragDrop
+
+ Private _ParentIdColumn As String
+ Private _ChildIdColumn As String
+
+ Private _ParentList As DataTable
+ Private _ChildList As DataTable
+ Private _AssignmentList As DataTable
+
+ Private Sub UserControlAssignment_Load(sender As Object, e As EventArgs) Handles Me.Load
+ _DragDropManager = New ClassDragDrop()
+ _DragDropManager.AddGridView(ViewAssignedToParent)
+ _DragDropManager.AddGridView(ViewNotAssignedToParent)
+
+ ' Load text customizations
+ labelAssignedToParent.Text = TextAssignedToParent
+ labelNotAssignedToParent.Text = TextNotAssignedToParent
+ labelParentList.Text = TextParentList
+
+ ' Load grid customizations
+ GridParentList = ClassUIUtils.ConfigureGridControlDefaults(GridParentList, [ReadOnly]:=True)
+ GridNotAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridNotAssignedToParent, [ReadOnly]:=True)
+ GridAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridAssignedToParent, [ReadOnly]:=True)
+
+ AddHandler ViewParentList.FocusedRowChanged, AddressOf ViewParentList_FocusedRowChanged
+ End Sub
+
+ Private Sub ViewParentList_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs)
+ Dim oRowHandle = e.FocusedRowHandle
+ Dim oParentRecordId = ViewParentList.GetRowCellValue(oRowHandle, ClassConstants.ATTRIBUTE_ID_COLUMN)
+
+ Dim oAssignedChildIds = From oRow In _AssignmentList.AsEnumerable()
+ Where oRow.Item(_ParentIdColumn) = oParentRecordId
+ Select oRow.Item(_ChildIdColumn)
+
+ Dim oAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable()
+ Where oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN))
+
+ Dim oNotAssignedChildren As EnumerableRowCollection(Of DataRow) = From oRow In _ChildList.AsEnumerable()
+ Where Not oAssignedChildIds.Contains(oRow.Item(ClassConstants.ATTRIBUTE_ID_COLUMN))
+
+ GridAssignedToParent.DataSource = MaybeCopyToDataTable(oAssignedChildren)
+ GridNotAssignedToParent.DataSource = MaybeCopyToDataTable(oNotAssignedChildren)
+ End Sub
+
+ Private Function MaybeCopyToDataTable(RowCollection As EnumerableRowCollection(Of DataRow)) As DataTable
+ If RowCollection.Count > 0 Then
+ Return RowCollection.CopyToDataTable()
+ Else
+ Return New DataTable()
+ End If
+ End Function
+
+
+ Public Sub Init(ParentList As DataTable, ChildrenList As DataTable, AssignmentList As DataTable, ParentIdColumn As String, ChildIdColumn As String)
+ _ParentList = ParentList
+ _ChildList = ChildrenList
+ _AssignmentList = AssignmentList
+
+ _ParentIdColumn = ParentIdColumn
+ _ChildIdColumn = ChildIdColumn
+
+ ' This will trigger FocusedRowChanged, needs to be last!!
+ GridParentList.DataSource = ParentList
+ End Sub
+
+End Class
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
new file mode 100644
index 00000000..be510285
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
@@ -0,0 +1,94 @@
+
+Partial Class frmEdit
+ Inherits System.Windows.Forms.Form
+
+ 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Wird vom Windows Form-Designer benötigt.
+ Private components As System.ComponentModel.IContainer
+
+ 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+ 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
+ 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+
+ Private Sub InitializeComponent()
+ Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
+ Me.GridList = New DevExpress.XtraGrid.GridControl()
+ Me.ViewList = New DevExpress.XtraGrid.Views.Grid.GridView()
+ Me.PanelEditControls = New DevExpress.XtraEditors.PanelControl()
+ 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.PanelEditControls, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'SplitContainerControl1
+ '
+ Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainerControl1.Name = "SplitContainerControl1"
+ Me.SplitContainerControl1.Panel1.Controls.Add(Me.GridList)
+ Me.SplitContainerControl1.Panel1.Text = "Panel1"
+ Me.SplitContainerControl1.Panel2.Controls.Add(Me.PanelEditControls)
+ Me.SplitContainerControl1.Panel2.Text = "Panel2"
+ Me.SplitContainerControl1.Size = New System.Drawing.Size(1104, 505)
+ Me.SplitContainerControl1.SplitterPosition = 332
+ Me.SplitContainerControl1.TabIndex = 0
+ Me.SplitContainerControl1.Text = "SplitContainerControl1"
+ '
+ 'GridList
+ '
+ Me.GridList.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.GridList.Location = New System.Drawing.Point(0, 0)
+ Me.GridList.MainView = Me.ViewList
+ Me.GridList.Name = "GridList"
+ Me.GridList.Size = New System.Drawing.Size(332, 505)
+ Me.GridList.TabIndex = 0
+ Me.GridList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewList})
+ '
+ 'ViewList
+ '
+ Me.ViewList.GridControl = Me.GridList
+ Me.ViewList.Name = "ViewList"
+ '
+ 'PanelEditControls
+ '
+ Me.PanelEditControls.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.PanelEditControls.Location = New System.Drawing.Point(0, 0)
+ Me.PanelEditControls.Name = "PanelEditControls"
+ Me.PanelEditControls.Size = New System.Drawing.Size(760, 505)
+ Me.PanelEditControls.TabIndex = 0
+ '
+ 'frmEdit
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(1104, 505)
+ Me.Controls.Add(Me.SplitContainerControl1)
+ Me.Name = "frmEdit"
+ Me.Text = "frmEdit"
+ CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitContainerControl1.ResumeLayout(False)
+ CType(Me.GridList, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.ViewList, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.PanelEditControls, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
+ Friend WithEvents GridList As DevExpress.XtraGrid.GridControl
+ Friend WithEvents ViewList As DevExpress.XtraGrid.Views.Grid.GridView
+ Friend WithEvents PanelEditControls As DevExpress.XtraEditors.PanelControl
+End Class
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.resx b/EDMI_ClientSuite/UserManager/frmEdit.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmEdit.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/EDMI_ClientSuite/UserManager/frmEdit.vb b/EDMI_ClientSuite/UserManager/frmEdit.vb
new file mode 100644
index 00000000..059a28d8
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmEdit.vb
@@ -0,0 +1,11 @@
+Public Class frmEdit
+ Public Property Datatable As DataTable
+
+ Private Sub frmEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ GridList = ClassUIUtils.ConfigureGridControlDefaults(GridList)
+
+ ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
+ _Datatable = DataTable
+ GridList.DataSource = DataTable
+ 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
new file mode 100644
index 00000000..4a64d968
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmUserManager.Designer.vb
@@ -0,0 +1,191 @@
+
+Partial Class frmUserManager
+ Inherits DevExpress.XtraBars.Ribbon.RibbonForm
+
+ 'Form overrides dispose to clean up the component list.
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ 'Required by the Windows Form Designer
+ Private components As System.ComponentModel.IContainer
+
+ 'NOTE: The following procedure is required by the Windows Form Designer
+ 'It can be modified using the Windows Form Designer.
+ 'Do not modify it using the code editor.
+
+ Private Sub InitializeComponent()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmUserManager))
+ Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
+ Me.BarButtonUserEdit = New DevExpress.XtraBars.BarButtonItem()
+ Me.BarButtonGroupEdit = New DevExpress.XtraBars.BarButtonItem()
+ Me.RibbonPageCategoryUserManager = New DevExpress.XtraBars.Ribbon.RibbonPageCategory()
+ Me.RibbonPageUserManager = New DevExpress.XtraBars.Ribbon.RibbonPage()
+ Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
+ Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl()
+ Me.TabPageUserToGroup = New DevExpress.XtraTab.XtraTabPage()
+ Me.UCUserToGroup = New DigitalData.GUIs.ClientSuite.UserControlAssignment()
+ Me.TabPageGroupToGroup = New DevExpress.XtraTab.XtraTabPage()
+ Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.BarButtonAssign = New DevExpress.XtraBars.BarButtonItem()
+ Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
+ CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.XtraTabControl1.SuspendLayout()
+ Me.TabPageUserToGroup.SuspendLayout()
+ Me.SuspendLayout()
+ '
+ 'RibbonControl
+ '
+ 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.RibbonControl.Location = New System.Drawing.Point(0, 0)
+ Me.RibbonControl.MaxItemId = 8
+ 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.Size = New System.Drawing.Size(1070, 146)
+ Me.RibbonControl.StatusBar = Me.RibbonStatusBar
+ '
+ 'BarButtonUserEdit
+ '
+ Me.BarButtonUserEdit.Caption = "Benutzer Verwaltung"
+ Me.BarButtonUserEdit.Id = 1
+ Me.BarButtonUserEdit.ImageOptions.Image = CType(resources.GetObject("BarButtonUserEdit.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonUserEdit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserEdit.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonUserEdit.Name = "BarButtonUserEdit"
+ '
+ 'BarButtonGroupEdit
+ '
+ Me.BarButtonGroupEdit.Caption = "Gruppen Verwaltung"
+ Me.BarButtonGroupEdit.Id = 2
+ Me.BarButtonGroupEdit.ImageOptions.Image = CType(resources.GetObject("BarButtonGroupEdit.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonGroupEdit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonGroupEdit.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonGroupEdit.Name = "BarButtonGroupEdit"
+ '
+ 'RibbonPageCategoryUserManager
+ '
+ Me.RibbonPageCategoryUserManager.Name = "RibbonPageCategoryUserManager"
+ Me.RibbonPageCategoryUserManager.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageUserManager})
+ Me.RibbonPageCategoryUserManager.Text = "User Manager"
+ '
+ 'RibbonPageUserManager
+ '
+ Me.RibbonPageUserManager.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
+ Me.RibbonPageUserManager.Name = "RibbonPageUserManager"
+ Me.RibbonPageUserManager.Text = "Sprungmarken"
+ '
+ 'RibbonPageGroup1
+ '
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonUserEdit)
+ Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonGroupEdit)
+ Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
+ Me.RibbonPageGroup1.Text = "Sprungmarken"
+ '
+ 'RibbonStatusBar
+ '
+ Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 519)
+ Me.RibbonStatusBar.Name = "RibbonStatusBar"
+ Me.RibbonStatusBar.Ribbon = Me.RibbonControl
+ Me.RibbonStatusBar.Size = New System.Drawing.Size(1070, 21)
+ '
+ 'XtraTabControl1
+ '
+ Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.XtraTabControl1.HeaderLocation = DevExpress.XtraTab.TabHeaderLocation.Left
+ Me.XtraTabControl1.HeaderOrientation = DevExpress.XtraTab.TabOrientation.Horizontal
+ Me.XtraTabControl1.Location = New System.Drawing.Point(0, 146)
+ Me.XtraTabControl1.Name = "XtraTabControl1"
+ Me.XtraTabControl1.SelectedTabPage = Me.TabPageUserToGroup
+ Me.XtraTabControl1.Size = New System.Drawing.Size(1070, 373)
+ Me.XtraTabControl1.TabIndex = 2
+ Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabPageUserToGroup, Me.TabPageGroupToGroup})
+ '
+ 'TabPageUserToGroup
+ '
+ Me.TabPageUserToGroup.Controls.Add(Me.UCUserToGroup)
+ Me.TabPageUserToGroup.Name = "TabPageUserToGroup"
+ Me.TabPageUserToGroup.Size = New System.Drawing.Size(966, 371)
+ Me.TabPageUserToGroup.Text = "User zu Gruppe"
+ '
+ 'UCUserToGroup
+ '
+ Me.UCUserToGroup.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.UCUserToGroup.Location = New System.Drawing.Point(0, 0)
+ Me.UCUserToGroup.Name = "UCUserToGroup"
+ Me.UCUserToGroup.Size = New System.Drawing.Size(966, 371)
+ Me.UCUserToGroup.TabIndex = 0
+ Me.UCUserToGroup.TextAssignedToParent = "Zugeordnete Benutzer zu Gruppe:"
+ Me.UCUserToGroup.TextNotAssignedToParent = "Nicht zugeordnete Benutzer:"
+ Me.UCUserToGroup.TextParentList = "Verfügbare Gruppen:"
+ '
+ 'TabPageGroupToGroup
+ '
+ Me.TabPageGroupToGroup.Name = "TabPageGroupToGroup"
+ Me.TabPageGroupToGroup.Size = New System.Drawing.Size(966, 371)
+ Me.TabPageGroupToGroup.Text = "Gruppe zu Gruppe"
+ '
+ 'RibbonPageGroup2
+ '
+ Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonAssign)
+ Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1)
+ Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
+ Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
+ '
+ 'BarButtonAssign
+ '
+ Me.BarButtonAssign.Caption = "Zuordnen"
+ Me.BarButtonAssign.Id = 6
+ Me.BarButtonAssign.ImageOptions.Image = CType(resources.GetObject("BarButtonAssign.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonAssign.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonAssign.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonAssign.Name = "BarButtonAssign"
+ '
+ 'BarButtonItem1
+ '
+ Me.BarButtonItem1.Caption = "Zuordnung aufheben"
+ Me.BarButtonItem1.Id = 7
+ 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"
+ '
+ '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.XtraTabControl1)
+ Me.Controls.Add(Me.RibbonStatusBar)
+ Me.Controls.Add(Me.RibbonControl)
+ Me.Name = "frmUserManager"
+ Me.Ribbon = Me.RibbonControl
+ Me.StatusBar = Me.RibbonStatusBar
+ Me.Text = "User Manager"
+ CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.XtraTabControl1.ResumeLayout(False)
+ Me.TabPageUserToGroup.ResumeLayout(False)
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+ Friend WithEvents RibbonControl 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 XtraTabControl1 As DevExpress.XtraTab.XtraTabControl
+ Friend WithEvents TabPageUserToGroup As DevExpress.XtraTab.XtraTabPage
+ Friend WithEvents TabPageGroupToGroup As DevExpress.XtraTab.XtraTabPage
+ 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
+End Class
diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.resx b/EDMI_ClientSuite/UserManager/frmUserManager.resx
new file mode 100644
index 00000000..b824379b
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmUserManager.resx
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl
+ cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAMxJREFUOE+l0TsKwkAUheEUYu8yFGystIr22UN2
+ 4RpsrK2tXIErCIKuISvQOhYqMv4HZuIwDJmgxQfJPXMPeWTGmL9Eh+vDbo4T7tYZuc1auo8tD3CFCdww
+ RLJgjHDZmSBZsERsWVZIFmwQWxZlyYIF3giXNdPH7S4QwgphQWWzXgU5nnDLuu73Gx0OlLhYpTfvLiAY
+ YYuhN9P/10xZvIDBDEe8oMfeY2rpWjNlOqOz3wJuCjzg3jlFZwu/oPbCvmq/oAnCPpq24Hcm+wDispls
+ ZjsJhAAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl
+ cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAcdJREFUWEfF1r8rxVEYx3HFYjAoshKLwd2tpCiL
+ 8rdIBonl1t39WKxSBjsLKynJoKSIUchAUV/vU9+vnuf0nOd8B/caXsPn3PN8nsNN6SqK4l+psLS3Vcc8
+ 9vGIr9ITDrAg++pQgYKcTRQZu7IzRwWGPbOwFloWZa9HBQY94dduLbMcyl6PCgx6bmAts9zKXo8KDHre
+ YS2zvMpejwoMeqxFKZ+y16MCgylTsBZ5pmR3igoMpWzDWuLZlt0pKjCU0oS1xNOU3SkqMJQyimdYiyzh
+ 7qjsTlGBIc8qrGWWZdnrUYFBzwSsZZYJ2etRgcGcI1gLpWPZmaMCwzkNfMBaHITPGrIzRwWG65jDC+Ll
+ b5iTfXWoQEFdg1hB+EpOsYYh2VWXCpTkdBtnv8qOHtmZo0JcGJnEBcbEWSz8pVxiUvZ6VBBFlWGs4xrV
+ d32CXsR3+3CO6l6Y2cCI3BFTgcuVfuwg/L9XFUpnmEZPaQZXsO6GjtDVL3dVVOBSMI47WGWx75L1WSx0
+ jst9gQpcGMB9OdAOoXtA7owf0BKX26Uld8YPaOdPX7mXO+MHWAN/Tu6MH/AQX26DB7lTPeA/mIedZB52
+ knnYOUXXD9NKheoC25U6AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
+ ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v
+ uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB
+ unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2
+ sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM
+ 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
+ ZXKTe2BJAAACnklEQVRYR8XVz4tPYRTH8cEoP4YaRalZ2UwRIkINxYo0C9mwYYGFYqexkI38BSwsJKTM
+ kKyk1KwoIT83IlZ+syKNRuTr/dE9+jzPPHfmmsXX4lXfc+55zrlz73Of6Wi1Wv9VMdlOSTAweMptxHV8
+ xA98wg1sQl4batf4HJcEFIa1+IlWgfIb4PWN1viskAQUhQsoNQqX4PWN1viskAQUhUfVojqP4fWN1vis
+ kAQUhRfVopLzWAWvl3lYh3P4hXzdS58VkoAiWY66d3kMqtmFW/DNdhu7MQVHkK9Vz6U+T5KAAumvFuRG
+ 0IWjlis5jpn4YrnQ7/MkCSiQGXhSLXB3MAtfLVfyDXNx03KinjN8niQBBUGP0hfLNazJcnXWQ/We2+Oz
+ QhJQFPSXfoA3OImtWa6O6k5YrF6zfVZIAorcZnxHNNFff8Di8RzE6uq3emzxOS4JKMzpiziNu1gE7YN8
+ WMk9LMZZjNn5LgkoDp1aaHEYRmlgbjjrq16dngtJQFEP9uMh3mMB/AbUqO6MCLq+LOupc0I91bvHZ0ZR
+ N85Ah4o3e4W90PvcjmnIP6+cDigdRkuwD2/g1zVDs7r/3AA/5uM5vKiOPq9tWS6n631ZrkTH/ULdwJAl
+ J3IVWjNoOXexeqKqK13PDalYR2zpYp0dmI5D0CtS7jUOQ69oZ5VrYkQ3UDqzS55Bw0XvWGtljv2eWj0B
+ 7RfVl/q4z393Y7VwIr3Q4x+wnNN/wSvo9b7jSQJr5PQfUI/3KeLOdbpps3mdHr1/oqrXui6fkUsCinPa
+ zfln5O7jMh5YLqf1fT7HJQGFbgX+dYPWUZ+VPiskAUWu6bHbVHI8hySgyI2i1GiyRn1WSAKK3DuUGk3W
+ W58VxiTarZhsp2KynYrJ9ml1/AZUr3hglRjmdgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1
+ cztCYXJzO1JpYmJvbjuVBjMvAAAAYElEQVQ4T92MUQqAMAxDd0Ev5am8XbTSlEwyRBwIfrzRpelrAF5h
+ Q7KsG5KYbceG5EeCnG3HhkQFI86HxadMFRTxJ1q85NXtAiXzEuiOzBOMOEqdQHfEhoSCOP5GcA/aDplf
+ q/kc1pC+AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1
+ cztCYXJzO1JpYmJvbjuVBjMvAAAAj0lEQVRYR+3OUQqEMAxFUTfoplyVu4vNhyDpRR4Sokg+DsKdafsW
+ M3sVxkoYK2GshLESRsW67XYVf1dhVPSAHtAD/j0gXp4lvuOm4OhwhviOm4KjwxniO24Kjg5niO+4KaiU
+ yxUYFTRgfG9dz58wKsaF3xvwBEZFD6AB44v/vYNR0QOyYKyEsRLGShjr2HIAeeWOhN7Trl4AAAAASUVO
+ RK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAI3RFWHRUaXRsZQBDYW5jZWw7
+ U3RvcDtFeGl0O0JhcnM7UmliYm9uO0yWlrIAAADCSURBVDhPjZNLCgIxEERzOGFWegkvIH4QRhyv6UkU
+ V20VpCTpTquLB0n9GAZSzKzct6s1mHn+B2Qv7PCs8gsYuPqwB5lbzbKzoXCqgkhH4Kks9jLOzggj0Hz5
+ SL0NpCM4D8vkM1CDfmQBaZl0AwQBP9LSlUl3EQiORkKZBIEg7D+bLKNsEBAclUUY6S4I+PIBhB/bdr6W
+ Gy8d+VkW0IYjNPgwWiOUBTw/MlOcwKMKaVkgo5EnmCRyZOfDGcjyAU5mVt7SQJzMJkqbYgAAAABJRU5E
+ rkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAI3RFWHRUaXRsZQBDYW5jZWw7
+ U3RvcDtFeGl0O0JhcnM7UmliYm9uO0yWlrIAAAFuSURBVFhHxZZNSgQxFIRn5gIOeiU3LhxBj+BRRRTF
+ Wc9VXMWqJg+e6XpNXoS4+BYpUj/Q3dC7Usq/IsWZSHEmUpyJFC/Pt3+iyTr4c4sUa9AVeAF39dyNy7kH
+ r+Do8z1ShIHlH6CAb5AaUTNYTi8zPoEcsRJw8QC4mkYjO8KXG8zct32/DgYuPoE2oHeEKuf5QXWtBILL
+ 5LEa26CtEalyIkUYjMyIdDmRIkyenhFD5USKMLZsjRguJ1KEWRGNGC4nUkRAhBrhSZUTKSJki2jEUg5k
+ ZoQUGbKBeuY2YHkxVWaEFBkSEJUbywiVGSFFhCiit11p3SOkiIDecj7z8BNV2S1ShLm33O4Mj5AijJly
+ Y2iEFGEiUfkJ+GJPeoQUYRgpN1IjVgIu7sFbNfqAnnJDjXgH3T8k1+CrGrPlluFHnMFN20NWAsFlwhFc
+ nSonLocjmCHLiRQtCPD/0J+7aLLyv+UzkeJMpDgTKc6j7H4AaYUNY+IvplgAAAAASUVORK5CYII=
+
+
+
\ No newline at end of file
diff --git a/EDMI_ClientSuite/UserManager/frmUserManager.vb b/EDMI_ClientSuite/UserManager/frmUserManager.vb
new file mode 100644
index 00000000..ebfc45a4
--- /dev/null
+++ b/EDMI_ClientSuite/UserManager/frmUserManager.vb
@@ -0,0 +1,52 @@
+Imports DigitalData.Modules.Logging
+
+Public Class frmUserManager
+ Private _Logger As Logger
+
+ Public Sub New()
+ ' Dieser Aufruf ist für den Designer erforderlich.
+ InitializeComponent()
+
+ ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
+ _Logger = My.LogConfig.GetLogger()
+ End Sub
+
+ Private Async Sub frmUserManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ Dim oUserTable = Await GetAttributeListAsync("User")
+ Dim oGroupTable = Await GetAttributeListAsync("Group")
+ Dim oUserGroupTable = Await GetAttributeListAsync("User_Group")
+
+ UCUserToGroup.Init(oGroupTable, oUserTable, oUserGroupTable, "GROUP_ID", "USER_ID")
+ End Sub
+
+ Private Async Function GetAttributeListAsync(AttributeName As String) As Task(Of DataTable)
+ Try
+ Dim oSQL = $"SELECT * FROM VWICM_{AttributeName.ToUpper}"
+ Dim oRequest = Await My.Channel.CreateDatabaseRequestAsync($"List Attribute {AttributeName}", False)
+ Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL)
+
+ Await My.Channel.CloseDatabaseRequestAsync()
+
+ Return oResult.Table
+ Catch ex As Exception
+ _Logger.Error(ex)
+ Throw ex
+ 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()
+ oForm.Datatable = oDatatable
+ 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()
+ oForm.Datatable = oDatatable
+ oForm.Show()
+ End Sub
+
+
+End Class
\ No newline at end of file
diff --git a/EDMI_ClientSuite/frmMain.Designer.vb b/EDMI_ClientSuite/frmMain.Designer.vb
index 489d0300..289b7ad5 100644
--- a/EDMI_ClientSuite/frmMain.Designer.vb
+++ b/EDMI_ClientSuite/frmMain.Designer.vb
@@ -41,9 +41,7 @@ Partial Class frmMain
Me.BarWorkspaceMenuItem1 = New DevExpress.XtraBars.BarWorkspaceMenuItem()
Me.WorkspaceManager1 = New DevExpress.Utils.WorkspaceManager()
Me.LabelServiceOnline = New DevExpress.XtraBars.BarStaticItem()
- Me.RibbonPageCategoryEntityDesigner = New DevExpress.XtraBars.Ribbon.RibbonPageCategory()
- Me.RibbonPageControlActions = New DevExpress.XtraBars.Ribbon.RibbonPage()
- Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.BarButtonUserManager = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@@ -51,6 +49,8 @@ Partial Class frmMain
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageWorkflow = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonPageAdmin = New DevExpress.XtraBars.Ribbon.RibbonPage()
+ Me.RibbonPageGroup6 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components)
Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components)
@@ -78,14 +78,14 @@ Partial Class frmMain
'
Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu
Me.RibbonControl.ExpandCollapseItem.Id = 0
- Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.BarButtonDock1, Me.SkinDropDownButtonItem1, Me.BarButtonDashboard, Me.BarButtonEntityDesigner, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline})
+ Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.BarButtonDock1, Me.SkinDropDownButtonItem1, Me.BarButtonDashboard, Me.BarButtonEntityDesigner, Me.BarButtonDeleteControl, Me.BarButtonConnectionSettings, Me.LabelCurrentLanguage, Me.BarButtonItem2, Me.BarWorkspaceMenuItem1, Me.LabelServiceOnline, Me.BarButtonUserManager})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
- Me.RibbonControl.MaxItemId = 19
+ Me.RibbonControl.MaxItemId = 20
+ Me.RibbonControl.MdiMergeStyle = DevExpress.XtraBars.Ribbon.RibbonMdiMergeStyle.Always
Me.RibbonControl.Name = "RibbonControl"
- Me.RibbonControl.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryEntityDesigner})
Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1)
Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1)
- Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageView, Me.RibbonPageWorkflow})
+ Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageView, Me.RibbonPageWorkflow, Me.RibbonPageAdmin})
Me.RibbonControl.Size = New System.Drawing.Size(1139, 146)
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
'
@@ -102,6 +102,7 @@ Partial Class frmMain
Me.BarButtonExit.Caption = "Beenden"
Me.BarButtonExit.Id = 1
Me.BarButtonExit.ImageOptions.Image = CType(resources.GetObject("BarButtonExit.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonExit.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonExit.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonExit.Name = "BarButtonExit"
'
'BarButtonUserSettings
@@ -109,6 +110,7 @@ Partial Class frmMain
Me.BarButtonUserSettings.Caption = "Benutzereinstellungen"
Me.BarButtonUserSettings.Id = 2
Me.BarButtonUserSettings.ImageOptions.Image = CType(resources.GetObject("BarButtonUserSettings.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonUserSettings.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserSettings.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonUserSettings.Name = "BarButtonUserSettings"
'
'BarButtonConnectionSettings
@@ -208,27 +210,13 @@ Partial Class frmMain
Me.LabelServiceOnline.Id = 18
Me.LabelServiceOnline.Name = "LabelServiceOnline"
'
- 'RibbonPageCategoryEntityDesigner
+ 'BarButtonUserManager
'
- Me.RibbonPageCategoryEntityDesigner.AutoStretchPageHeaders = True
- Me.RibbonPageCategoryEntityDesigner.Color = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer))
- Me.RibbonPageCategoryEntityDesigner.Name = "RibbonPageCategoryEntityDesigner"
- Me.RibbonPageCategoryEntityDesigner.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageControlActions})
- Me.RibbonPageCategoryEntityDesigner.Text = "Entitäten Designer"
- Me.RibbonPageCategoryEntityDesigner.Visible = False
- '
- 'RibbonPageControlActions
- '
- Me.RibbonPageControlActions.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup5})
- Me.RibbonPageControlActions.Name = "RibbonPageControlActions"
- Me.RibbonPageControlActions.Text = "Control Actions"
- Me.RibbonPageControlActions.Visible = False
- '
- 'RibbonPageGroup5
- '
- Me.RibbonPageGroup5.ItemLinks.Add(Me.BarButtonDeleteControl)
- Me.RibbonPageGroup5.Name = "RibbonPageGroup5"
- Me.RibbonPageGroup5.Text = "RibbonPageGroup5"
+ Me.BarButtonUserManager.Caption = "User Manager"
+ Me.BarButtonUserManager.Id = 19
+ Me.BarButtonUserManager.ImageOptions.Image = CType(resources.GetObject("BarButtonUserManager.ImageOptions.Image"), System.Drawing.Image)
+ Me.BarButtonUserManager.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonUserManager.ImageOptions.LargeImage"), System.Drawing.Image)
+ Me.BarButtonUserManager.Name = "BarButtonUserManager"
'
'RibbonPageStart
'
@@ -273,6 +261,18 @@ Partial Class frmMain
Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
Me.RibbonPageGroup4.Text = "RibbonPageGroup4"
'
+ 'RibbonPageAdmin
+ '
+ Me.RibbonPageAdmin.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup6})
+ Me.RibbonPageAdmin.Name = "RibbonPageAdmin"
+ Me.RibbonPageAdmin.Text = "Administration"
+ '
+ 'RibbonPageGroup6
+ '
+ Me.RibbonPageGroup6.ItemLinks.Add(Me.BarButtonUserManager)
+ Me.RibbonPageGroup6.Name = "RibbonPageGroup6"
+ Me.RibbonPageGroup6.Text = "RibbonPageGroup6"
+ '
'RibbonStatusBar
'
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentUser)
@@ -436,9 +436,6 @@ Partial Class frmMain
Friend WithEvents RibbonPageWorkflow As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonEntityDesigner As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents RibbonPageCategoryEntityDesigner As DevExpress.XtraBars.Ribbon.RibbonPageCategory
- Friend WithEvents RibbonPageControlActions As DevExpress.XtraBars.Ribbon.RibbonPage
- Friend WithEvents RibbonPageGroup5 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonDeleteControl As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonConnectionSettings As DevExpress.XtraBars.BarButtonItem
Friend WithEvents LabelCurrentLanguage As DevExpress.XtraBars.BarStaticItem
@@ -446,4 +443,7 @@ Partial Class frmMain
Friend WithEvents BarWorkspaceMenuItem1 As DevExpress.XtraBars.BarWorkspaceMenuItem
Friend WithEvents WorkspaceManager1 As DevExpress.Utils.WorkspaceManager
Friend WithEvents LabelServiceOnline As DevExpress.XtraBars.BarStaticItem
+ Friend WithEvents BarButtonUserManager As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents RibbonPageAdmin As DevExpress.XtraBars.Ribbon.RibbonPage
+ Friend WithEvents RibbonPageGroup6 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
End Class
diff --git a/EDMI_ClientSuite/frmMain.resx b/EDMI_ClientSuite/frmMain.resx
index ffd1364b..25645f24 100644
--- a/EDMI_ClientSuite/frmMain.resx
+++ b/EDMI_ClientSuite/frmMain.resx
@@ -123,109 +123,57 @@
- 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
- X9ttAMYAAAAASUVORK5CYII=
+ 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
- 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
- QmCC
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAR3RFWHRUaXRsZQBDdXN0b21l
+ cjtFbXBsb3llZTtGaXg7UHVibGljO1NldHRpbmdzO09wdGlvbnM7Q3VzdG9taXo7R3JvdXA7VGVhbWkL
+ E4gAAAEQSURBVDhPpdM/agJREMfxNQYtbew9QQoF29xAU9p5AZsUEluR7T1AinSBnMC9ghZ7iOANBBUk
+ br6/ZR7Mk5UlpPjwmHH+vF01KYriXyqTf5GkaXpPA+84mA88IKqLghtdbFE4Q0R1Pri38QdhwAS+Jxqg
+ 6X6bKLdz8QK+Jxqg6b5ZlPtEjjZ8fckHmh4NGK2yxDTRx9lOxeVnfkAHRzWagxVp0BtmuNqpuFzgB8gc
+ YcCUAm1S8cUaAsXKRwMe8YRn06BA19VGNa3Rs1Ox8n016uUs8Y09XkyLAj2zrq2GHrlXnRYrf9aAL4Rr
+ e+3xajOgqPYGp5vGIKeg7h00w/NXoqD+W6j6hwUqcPzvwHJZ8gvZcCD22oxTxwAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAR3RFWHRUaXRsZQBDdXN0b21l
+ cjtFbXBsb3llZTtGaXg7UHVibGljO1NldHRpbmdzO09wdGlvbnM7Q3VzdG9taXo7R3JvdXA7VGVhbWkL
+ E4gAAALBSURBVFhHxdZPiE1hGMfxGf/CMLJUFjZScpXCTP4VO+lO3awQFlgodmIhm+lubG0lC0UkK39G
+ jT8ZhPyXaUZWSNhNIqK5vr+Z922enp5zHVehPjn3ed/397zn3HPOnbZGo/FfhcV/KSyWVa/X1+MyPuIH
+ PuEqNkTzI2GxDJp04ycaAdXXReu8sFgGDU6ZhpGz0TovLJZBgyeuofc0WueFxTJocBSjpqH3OlrnhcWM
+ kB0YgL3J7mIn2nEYUXPRfVCJcq2wKCw+YsIi+jcDI4jGpRplW2GRhTPx2QRFvqITt0zNeobpUb4VFlnY
+ ZYKaWYuLrpbtirK9sMjiTS6siOYdczX5gI4o2wuLLN5nwprZj+Wu9h0bo9xIWCTgngls5gF0vxzHfZzE
+ b+98KywS0o+ooddfsL6CKdGYFxZTQNF7PtP4Ukxza+dD74vH2KvPdtwLi8LCoscr0wtqMvTrtxsrsAfv
+ YOfpBXYCc6u9fW1e2FxYUEsBRTS+xtW8hcYCzCu9AWHBGUTBp9P4BVe/Y4ykJq8wnBt6YeOMkKk4gDdQ
+ g7c4BF36LamW6clp7+m9srrWe2kOx5XUpJHkpp1YlT+HjTMFmuPZ5nhS+n8zhjC2AZp3EzqK59iOG8gb
+ uJlqGtOcLsQbIGwRdPkPFozrV/C85inE0Nm9QG5aRHM0d2IDhM2CLu8g8mXVW63mmuvS20dU87WuQ4HY
+ itxIZ6qrIDrOdc2Z+ApYrLvZPz7WQ5zDI1Oz7JXQpc7Ne1JNdJw3oTnjG2DxMnwxYa3QBoZSeHYduXlm
+ 7wkZ1gbKvnab0QZeuvDb8BtQzc4Z1Aa+ubBWLCYsN7FfQTXVRMfhV/DehbVKf5otIdTfhNcwkI5zfRvG
+ N2Dv8FbkoKT1x7BVCjFWQmf6dy+iP6EQR6/ZsbNL8gbyZ42VexWXkYOa0I+RBGN9bb8A1yMynixVuyMA
+ AAAASUVORK5CYII=
@@ -318,6 +266,35 @@
412, 17
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
+ ZXKTe2BJAAAA8klEQVQ4T6XQvw7BUBQG8BKJmPoMHoDN6gEsxq4GTyCiI29hMBgx9jFIvIQY7BKduL6v
+ uac5vU6HxvBL6vz59DRyzv3FLDZRPqwO2xbs4OntoQ1m3QoYgQuwZtatgEQNXGEOHW8GZ5B+YgWkvvmB
+ unPewJnUCojhBReoO4c9zsQ/AT5kCUfQ5wjW2FvqHb3MWwfQBzlHY429IXTKAPzowgZucIcJyDmyXLw2
+ sMcZznKnx4AT6H+iBfAc+c1n1vQMZQzIVeEBa5Bzxl7x2sAeZ2Q+L7+B/w7hOVOv8tp6JwywzglleicM
+ 0OfUyfVOJaA5F30Bv8maeRXqkFsAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
+ dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAcdEVYdFRpdGxlAFRlYW07UGVvcGxlO0dyb3VwO1Vz
+ ZXKTe2BJAAACnklEQVRYR8XVz4tPYRTH8cEoP4YaRalZ2UwRIkINxYo0C9mwYYGFYqexkI38BSwsJKTM
+ kKyk1KwoIT83IlZ+syKNRuTr/dE9+jzPPHfmmsXX4lXfc+55zrlz73Of6Wi1Wv9VMdlOSTAweMptxHV8
+ xA98wg1sQl4batf4HJcEFIa1+IlWgfIb4PWN1viskAQUhQsoNQqX4PWN1viskAQUhUfVojqP4fWN1vis
+ kAQUhRfVopLzWAWvl3lYh3P4hXzdS58VkoAiWY66d3kMqtmFW/DNdhu7MQVHkK9Vz6U+T5KAAumvFuRG
+ 0IWjlis5jpn4YrnQ7/MkCSiQGXhSLXB3MAtfLVfyDXNx03KinjN8niQBBUGP0hfLNazJcnXWQ/We2+Oz
+ QhJQFPSXfoA3OImtWa6O6k5YrF6zfVZIAorcZnxHNNFff8Di8RzE6uq3emzxOS4JKMzpiziNu1gE7YN8
+ WMk9LMZZjNn5LgkoDp1aaHEYRmlgbjjrq16dngtJQFEP9uMh3mMB/AbUqO6MCLq+LOupc0I91bvHZ0ZR
+ N85Ah4o3e4W90PvcjmnIP6+cDigdRkuwD2/g1zVDs7r/3AA/5uM5vKiOPq9tWS6n631ZrkTH/ULdwJAl
+ J3IVWjNoOXexeqKqK13PDalYR2zpYp0dmI5D0CtS7jUOQ69oZ5VrYkQ3UDqzS55Bw0XvWGtljv2eWj0B
+ 7RfVl/q4z393Y7VwIr3Q4x+wnNN/wSvo9b7jSQJr5PQfUI/3KeLOdbpps3mdHr1/oqrXui6fkUsCinPa
+ zfln5O7jMh5YLqf1fT7HJQGFbgX+dYPWUZ+VPiskAUWu6bHbVHI8hySgyI2i1GiyRn1WSAKK3DuUGk3W
+ W58VxiTarZhsp2KynYrJ9ml1/AZUr3hglRjmdgAAAABJRU5ErkJggg==
+
+
17, 17
diff --git a/EDMI_ClientSuite/frmMain.vb b/EDMI_ClientSuite/frmMain.vb
index 804248fb..e0f111a7 100644
--- a/EDMI_ClientSuite/frmMain.vb
+++ b/EDMI_ClientSuite/frmMain.vb
@@ -118,8 +118,6 @@ Public Class frmMain
Dim frm As New frmEntityDesigner()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
-
- RibbonPageCategoryEntityDesigner.Visible = True
End Sub
Private Sub BarButtonConnectionSettings_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonConnectionSettings.ItemClick
@@ -149,4 +147,10 @@ Public Class frmMain
oLicense2 = oLicenseFile.LoadFile()
End Sub
+
+ Private Sub BarButtonUserManager_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserManager.ItemClick
+ Dim oForm As New frmUserManager()
+ oForm.MdiParent = DocumentManager.MdiParent
+ oForm.Show()
+ End Sub
End Class
\ No newline at end of file
diff --git a/SERVICES/DDEDM_NetworkService/Request.vb b/SERVICES/DDEDM_NetworkService/Request.vb
index 7f24b152..25a66749 100644
--- a/SERVICES/DDEDM_NetworkService/Request.vb
+++ b/SERVICES/DDEDM_NetworkService/Request.vb
@@ -1,6 +1,9 @@
Imports DigitalData.Modules.Database
Imports FirebirdSql.Data.FirebirdClient
+'''
+''' TODO: BRAUCHEN WIR DAS ÜBERHAUPT?
+'''
Public Class Request
Public Name As String
Public Username As String
@@ -17,21 +20,20 @@ Public Class Request
Me.Database = Database
Me.Debug = Debug
- Dim oSql = $"INSERT INTO TBEDM_REQUEST_USER (REQUEST_GUID, USER_NAME) VALUES ('{RequestId}', '{Username}')"
-
- Database.ExecuteNonQueryWithConnection(oSql, Connection)
+ 'Dim oSql = $"INSERT INTO TBEDM_REQUEST_USER (REQUEST_GUID, USER_NAME) VALUES ('{RequestId}', '{Username}')"
+ 'Database.ExecuteNonQueryWithConnection(oSql, Connection)
End Sub
Public Sub LogDebug(Message As String)
- If Debug Then
- Dim oSqlCommand = $"INSERT INTO TBEDM_REQUEST_LOG (REQUEST_GUID, LOG_MSG, DEBUG) VALUES ('{RequestId}','{Message}', True)"
- Database.ExecuteNonQueryWithConnection(oSqlCommand, Connection)
- End If
+ 'If Debug Then
+ ' Dim oSqlCommand = $"INSERT INTO TBEDM_REQUEST_LOG (REQUEST_GUID, LOG_MSG, DEBUG) VALUES ('{RequestId}','{Message}', True)"
+ ' Database.ExecuteNonQueryWithConnection(oSqlCommand, Connection)
+ 'End If
End Sub
Public Sub LogError(Message As String)
- Dim oSqlCommand = $"INSERT INTO TBEDM_REQUEST_LOG (REQUEST_GUID, LOG_MSG, ERROR) VALUES ('{RequestId}','{Message}', True)"
- Database.ExecuteNonQueryWithConnection(oSqlCommand, Connection)
+ 'Dim oSqlCommand = $"INSERT INTO TBEDM_REQUEST_LOG (REQUEST_GUID, LOG_MSG, ERROR) VALUES ('{RequestId}','{Message}', True)"
+ 'Database.ExecuteNonQueryWithConnection(oSqlCommand, Connection)
End Sub
Public Overrides Function ToString() As String
diff --git a/SERVICES/DDEDM_NetworkService/WindowsService.vb b/SERVICES/DDEDM_NetworkService/WindowsService.vb
index c6d2eb51..64fb44d6 100644
--- a/SERVICES/DDEDM_NetworkService/WindowsService.vb
+++ b/SERVICES/DDEDM_NetworkService/WindowsService.vb
@@ -30,6 +30,8 @@ Public Class WindowsService
AppConfig.Load()
_logConfig = New LogConfig(LogConfig.PathType.CustomPath, "E:\EDMService")
+ _logConfig.Debug = True
+
_logger = _logConfig.GetLogger()
_logger.Info("Service {0} is starting", SERVICE_DISPLAY_NAME)