Load Dynamic Form for frmEdit, Save Application Skin, add UIConfig
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Views.Base
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DigitalData.GUIs.ClientSuite.ClassLayout
|
||||
|
||||
Public Class UserControlAssignment
|
||||
Private _DragDropManager As ClassDragDrop
|
||||
@@ -41,6 +42,22 @@ Public Class UserControlAssignment
|
||||
GridAssignedToParent = ClassUIUtils.ConfigureGridControlDefaults(GridAssignedToParent, [ReadOnly]:=True)
|
||||
ViewAssignedToParent.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect
|
||||
ViewAssignedToParent.OptionsSelection.MultiSelect = True
|
||||
|
||||
' Load view layouts
|
||||
|
||||
Dim ViewParentListPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewParentList.Name)
|
||||
Dim ViewAssignedPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewAssignedToParent.Name)
|
||||
Dim ViewNotAssignedPath = GetLayoutPath(GroupName.LayoutUserManager, Name, ViewNotAssignedToParent.Name)
|
||||
|
||||
If IO.File.Exists(ViewParentListPath) Then
|
||||
ViewParentList.RestoreLayoutFromXml(ViewParentListPath)
|
||||
End If
|
||||
If IO.File.Exists(ViewAssignedPath) Then
|
||||
ViewAssignedToParent.RestoreLayoutFromXml(ViewAssignedPath)
|
||||
End If
|
||||
If IO.File.Exists(ViewNotAssignedPath) Then
|
||||
ViewNotAssignedToParent.RestoreLayoutFromXml(ViewNotAssignedPath)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function MaybeCopyToDataTable(RowCollection As EnumerableRowCollection(Of DataRow)) As DataTable
|
||||
@@ -174,4 +191,10 @@ Public Class UserControlAssignment
|
||||
GridAssignedToParent.DataSource = MaybeCopyToDataTable(oAssignedChildren)
|
||||
GridNotAssignedToParent.DataSource = MaybeCopyToDataTable(oNotAssignedChildren)
|
||||
End Sub
|
||||
|
||||
Private Sub View_LayoutChanged(sender As Object, e As EventArgs) Handles ViewNotAssignedToParent.Layout, ViewAssignedToParent.Layout, ViewParentList.Layout
|
||||
Dim oView As BaseView = sender
|
||||
Dim oLayoutPath = GetLayoutPath(GroupName.LayoutUserManager, Name, oView.Name)
|
||||
oView.SaveLayoutToXml(oLayoutPath)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
113
EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
generated
113
EDMI_ClientSuite/UserManager/frmEdit.Designer.vb
generated
@@ -1,6 +1,6 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class frmEdit
|
||||
Inherits System.Windows.Forms.Form
|
||||
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
|
||||
|
||||
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||
<System.Diagnostics.DebuggerNonUserCode()>
|
||||
@@ -22,27 +22,38 @@ Partial Class frmEdit
|
||||
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
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()
|
||||
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
||||
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
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()
|
||||
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RibbonControl1, 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.Location = New System.Drawing.Point(0, 146)
|
||||
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.Controls.Add(Me.LayoutControl1)
|
||||
Me.SplitContainerControl1.Panel2.Text = "Panel2"
|
||||
Me.SplitContainerControl1.Size = New System.Drawing.Size(1104, 505)
|
||||
Me.SplitContainerControl1.Size = New System.Drawing.Size(1104, 338)
|
||||
Me.SplitContainerControl1.SplitterPosition = 332
|
||||
Me.SplitContainerControl1.TabIndex = 0
|
||||
Me.SplitContainerControl1.Text = "SplitContainerControl1"
|
||||
@@ -53,7 +64,7 @@ Partial Class frmEdit
|
||||
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.Size = New System.Drawing.Size(332, 338)
|
||||
Me.GridList.TabIndex = 0
|
||||
Me.GridList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewList})
|
||||
'
|
||||
@@ -62,13 +73,70 @@ Partial Class frmEdit
|
||||
Me.ViewList.GridControl = Me.GridList
|
||||
Me.ViewList.Name = "ViewList"
|
||||
'
|
||||
'PanelEditControls
|
||||
'LayoutControl1
|
||||
'
|
||||
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
|
||||
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
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.Size = New System.Drawing.Size(760, 338)
|
||||
Me.LayoutControl1.TabIndex = 0
|
||||
Me.LayoutControl1.Text = "LayoutControl1"
|
||||
'
|
||||
'LayoutControlGroup1
|
||||
'
|
||||
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
|
||||
'
|
||||
'RibbonControl1
|
||||
'
|
||||
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.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||
Me.RibbonControl1.Size = New System.Drawing.Size(1104, 146)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
|
||||
Me.RibbonPage1.Name = "RibbonPage1"
|
||||
Me.RibbonPage1.Text = "RibbonPage1"
|
||||
'
|
||||
'RibbonPageGroup1
|
||||
'
|
||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
|
||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
||||
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
|
||||
'
|
||||
'RibbonPageGroup2
|
||||
'
|
||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
|
||||
'
|
||||
'RibbonStatusBar1
|
||||
'
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 484)
|
||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1104, 21)
|
||||
'
|
||||
'RibbonPage2
|
||||
'
|
||||
Me.RibbonPage2.Name = "RibbonPage2"
|
||||
Me.RibbonPage2.Text = "RibbonPage2"
|
||||
'
|
||||
'BarButtonItem1
|
||||
'
|
||||
Me.BarButtonItem1.Caption = "BarButtonItem1"
|
||||
Me.BarButtonItem1.Id = 1
|
||||
Me.BarButtonItem1.Name = "BarButtonItem1"
|
||||
'
|
||||
'frmEdit
|
||||
'
|
||||
@@ -76,19 +144,34 @@ Partial Class frmEdit
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(1104, 505)
|
||||
Me.Controls.Add(Me.SplitContainerControl1)
|
||||
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||
Me.Controls.Add(Me.RibbonControl1)
|
||||
Me.Name = "frmEdit"
|
||||
Me.Ribbon = Me.RibbonControl1
|
||||
Me.StatusBar = Me.RibbonStatusBar1
|
||||
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()
|
||||
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
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
|
||||
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
|
||||
Friend WithEvents LayoutControlGroup1 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 RibbonPageGroup2 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
|
||||
End Class
|
||||
|
||||
@@ -1,11 +1,104 @@
|
||||
Public Class frmEdit
|
||||
Public Property Datatable As DataTable
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraLayout
|
||||
|
||||
Private Sub frmEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
GridList = ClassUIUtils.ConfigureGridControlDefaults(GridList)
|
||||
Public Class frmEdit
|
||||
Private ReadOnly _Datatable As DataTable
|
||||
Private _LanguageDatatable As DataTable
|
||||
Private _AttributeId As Integer
|
||||
|
||||
Public Sub New(AttributeId As Integer, Datatable As DataTable)
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
_Datatable = DataTable
|
||||
GridList.DataSource = DataTable
|
||||
_Datatable = Datatable
|
||||
_AttributeId = AttributeId
|
||||
End Sub
|
||||
|
||||
Private Async Sub frmEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
GridList = ClassUIUtils.ConfigureGridControlDefaults(GridList, [ReadOnly]:=True)
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
GridList.DataSource = _Datatable
|
||||
|
||||
Dim oUserLanguage = My.Application.User.Language
|
||||
Await LoadLanguageTableAsync(oUserLanguage)
|
||||
LoadFormLayout()
|
||||
End Sub
|
||||
|
||||
Private Async Function LoadLanguageTableAsync(UserLanguage As String) As Task
|
||||
Dim oSQL = $"SELECT * FROM VWICM_ATTRIBUTE_LANGUAGE WHERE LANGUAGE_CODE = '{UserLanguage}' AND PARENT_ATTRIBUTE_ID = '{_AttributeId}' ORDER BY ""SEQUENCE"";"
|
||||
|
||||
Await My.Channel.CreateDatabaseRequestAsync("Language Syskey", False)
|
||||
Dim oResult = Await My.Channel.ReturnDatatableAsync(oSQL)
|
||||
_LanguageDatatable = oResult.Table
|
||||
|
||||
Await My.Channel.CloseDatabaseRequestAsync()
|
||||
End Function
|
||||
|
||||
Private Function GetColumnEditor(Column As DataColumn, AttributeId As Integer)
|
||||
Dim oEditor As BaseEdit
|
||||
|
||||
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
|
||||
Case Else
|
||||
oEditor = New TextEdit() With {.Name = Column.ColumnName}
|
||||
End Select
|
||||
|
||||
If AttributeId > 0 Then
|
||||
oEditor.Tag = AttributeId
|
||||
End If
|
||||
|
||||
Return oEditor
|
||||
End Function
|
||||
|
||||
Private Function GetColumnCaption(Column As DataColumn, SequenceId As Integer)
|
||||
Dim oRow = GetRowBySequence(SequenceId)
|
||||
Dim oCaption = Column.ColumnName
|
||||
|
||||
If oRow IsNot Nothing Then
|
||||
oCaption = oRow.Item("LANGUAGE_TERM")
|
||||
ElseIf oCaption = ClassConstants.ATTRIBUTE_ID_COLUMN Then
|
||||
oCaption = "ID"
|
||||
End If
|
||||
|
||||
Return oCaption
|
||||
End Function
|
||||
|
||||
Private Function GetRowBySequence(SequenceId As Integer)
|
||||
Return _LanguageDatatable.Select($"SEQUENCE = {SequenceId}").FirstOrDefault()
|
||||
End Function
|
||||
|
||||
Private Function GetRowItemBySequence(SequenceId As Integer, ColumnName As String)
|
||||
Dim oRow = _LanguageDatatable.Select($"SEQUENCE = {SequenceId}").FirstOrDefault()
|
||||
Return oRow?.Item(ColumnName)
|
||||
End Function
|
||||
|
||||
Private Sub LoadFormLayout()
|
||||
' Counter is used to match SEQUENCE in Attributes
|
||||
' to column order in the used View (eg. VWICM_USER)
|
||||
Dim oCounter = 0
|
||||
|
||||
For Each oColumn As DataColumn In _Datatable.Columns
|
||||
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))
|
||||
|
||||
' Add Control to Layout
|
||||
LayoutControlGroup1.AddItem(oCaption, oEditor)
|
||||
ViewList.Columns.Item(oColumn.ColumnName).Caption = oCaption
|
||||
|
||||
oCounter = oCounter + 1
|
||||
Next
|
||||
|
||||
' General Layout Tweaks
|
||||
LayoutControlGroup1.AddItem(New EmptySpaceItem())
|
||||
LayoutControlGroup1.LayoutMode = Utils.LayoutMode.Flow
|
||||
End Sub
|
||||
End Class
|
||||
@@ -18,6 +18,8 @@ Public Class frmUserManager
|
||||
|
||||
AddHandler UCUserToGroup.ChildRemoved, AddressOf HandleUserAssignedToGroup
|
||||
AddHandler UCUserToGroup.ChildAdded, AddressOf HandleUserDismissedFromGroup
|
||||
|
||||
RibbonControl.SelectPage(RibbonPageUserManager)
|
||||
End Sub
|
||||
|
||||
Private Async Function InitUserToGroupData() As Task
|
||||
@@ -65,19 +67,20 @@ Public Class frmUserManager
|
||||
|
||||
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
|
||||
Dim oForm As New frmEdit(ClassConstants.DB_USER_ATTRIBUTE_ID, oDatatable)
|
||||
'oForm.MdiParent = o
|
||||
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
|
||||
Dim oForm As New frmEdit(ClassConstants.DB_GROUP_ATTRIBUTE_ID, oDatatable)
|
||||
oForm.Show()
|
||||
End Sub
|
||||
|
||||
Private Async Sub BarButtonRefresh_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonRefresh.ItemClick
|
||||
Await UpdateUserToGroupData()
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user