diff --git a/app/DD-Record-Organizer/ClassPosGrid.vb b/app/DD-Record-Organizer/ClassPosGrid.vb
new file mode 100644
index 0000000..2828755
--- /dev/null
+++ b/app/DD-Record-Organizer/ClassPosGrid.vb
@@ -0,0 +1,139 @@
+Imports DevExpress.XtraEditors.Controls
+Imports DevExpress.XtraEditors.Repository
+Imports DevExpress.XtraGrid.Columns
+Imports DevExpress.XtraGrid.Views.Grid
+
+Public Class ClassPosGrid
+
+ Private Shared Sub FormatDateColumn(grid As GridView, column As GridColumn, dateEdit As RepositoryItemDateEdit)
+ column.ColumnEdit = dateEdit
+ End Sub
+
+ Private Shared Sub FormatBooleanColumn(grid As GridView, column As GridColumn, checkboxEdit As RepositoryItemCheckEdit)
+ column.ColumnEdit = checkboxEdit
+ End Sub
+
+ Private Shared Sub FormatComboColumn(grid As GridView, column As GridColumn, comboEdit As RepositoryItemComboBox, sqlCommand As String, staticList As String)
+ Dim comboItems As ComboBoxItemCollection = comboEdit.Items
+
+ If staticList <> "" Then
+ Dim staticListItems() As String = staticList.Split(";")
+
+ comboItems.BeginUpdate()
+ Try
+ For Each item In staticListItems
+ comboItems.Add(item)
+ Next
+ Finally
+ comboItems.EndUpdate()
+ End Try
+ ElseIf sqlCommand <> "" Then
+ Dim DT As DataTable
+
+ Try
+ DT = ClassDatabase.Return_Datatable(sqlCommand)
+ Catch ex As Exception
+ ClassLogger.Add("Error in FormatComboColumn: " & ex.Message)
+ Exit Sub
+ End Try
+
+ comboItems.BeginUpdate()
+ Try
+ For Each row As DataRow In DT.Rows
+ Dim value As String = row.Item(0)
+ comboItems.Add(value)
+ Next
+ Finally
+ comboItems.EndUpdate()
+ End Try
+ End If
+
+ column.ColumnEdit = comboEdit
+ End Sub
+
+ Private Shared Sub FormatTextColumn(grid As GridView, column As GridColumn, controlId As Integer)
+ Dim format As String = ClassDatabase.Execute_Scalar("SELECT FORMAT_TYPE FROM TBPMO_CONTROL WHERE GUID = " & controlId)
+
+ If IsNothing(format) Then
+ Exit Sub
+ End If
+
+ If (format = "Currency") Then
+ column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom
+ column.DisplayFormat.FormatString = "c"
+ ElseIf (format = "Decimal") Then
+ column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
+ End If
+ End Sub
+
+ Shared Sub FormatColumns(grid As GridView, formId As Integer)
+ Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_COL_NAME, CTRLTYPE_ID, CONTROL_SQLCOMMAND_1 AS CONTROL_SQL, CONTROL_STATIC_LIST, CONTROL_SHOW_COLUMN FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID IN (3,4,10,11) AND FORM_ID = {0}", formId)
+ Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL)
+
+ Dim dateEdit As New RepositoryItemDateEdit()
+ Dim comboEdit As New RepositoryItemComboBox()
+ Dim checkboxEdit = New RepositoryItemCheckEdit()
+
+ ' Spalteneditoren dem Grid hinzufügen
+ grid.GridControl.RepositoryItems.AddRange({dateEdit, comboEdit, checkboxEdit})
+
+ For Each row As DataRow In DT.Rows
+ Dim typeId = row.Item("CTRLTYPE_ID")
+ Dim controlId = row.Item("CONTROL_ID")
+ Dim columnName = row.Item("CONTROL_COL_NAME")
+ Dim sqlCommand = row.Item("CONTROL_SQL")
+ Dim staticList = row.Item("CONTROL_STATIC_LIST")
+ Dim showColumn = row.Item("CONTROL_SHOW_COLUMN")
+
+ Dim column As GridColumn = grid.Columns.Item(columnName)
+
+ ' Überprüfen, ob der Spaltenname exisitiert
+ If IsNothing(column) Then
+ Resume Next
+ End If
+
+ ' Spalten ausblenden, die nicht angezeigt werden sollen
+ If (showColumn = False) Then
+ column.Visible = False
+ Resume Next
+ End If
+
+ ' Editoren zuweisen
+ Select Case typeId
+ Case 2 'Textbox
+ FormatTextColumn(grid, column, controlId)
+ Case 3 'Combobox
+ FormatComboColumn(grid, column, comboEdit, sqlCommand, staticList)
+ Case 4 'Datum
+ FormatDateColumn(grid, column, dateEdit)
+ Case 10, 11 'Checkbox & Radiobutton
+ FormatBooleanColumn(grid, column, checkboxEdit)
+ End Select
+ Next
+
+ ' Spalten Statisch Verstecken
+ HideColumnIfExists(grid.Columns.Item("Record-ID"))
+ HideColumnIfExists(grid.Columns.Item("Form-ID"))
+ HideColumnIfExists(grid.Columns.Item("ROW_COLOR"))
+ HideColumnIfExists(grid.Columns.Item("files?"))
+ HideColumnIfExists(grid.Columns.Item("file count"))
+
+ ' Spalten Statisch ReadOnly Machen
+ MakeReadOnlyIfExists(grid.Columns.Item("AddedWho"))
+ MakeReadOnlyIfExists(grid.Columns.Item("AddedWhen"))
+ MakeReadOnlyIfExists(grid.Columns.Item("ChangedWho"))
+ MakeReadOnlyIfExists(grid.Columns.Item("ChangedWhen"))
+ End Sub
+
+ Private Shared Sub HideColumnIfExists(column As GridColumn)
+ If Not IsNothing(column) Then
+ column.Visible = False
+ End If
+ End Sub
+
+ Shared Sub MakeReadOnlyIfExists(column As GridColumn)
+ If Not IsNothing(column) Then
+ column.OptionsColumn.AllowEdit = False
+ End If
+ End Sub
+End Class
diff --git a/app/DD-Record-Organizer/DD-Record-Organizer.vbproj b/app/DD-Record-Organizer/DD-Record-Organizer.vbproj
index 041d375..0502d1a 100644
--- a/app/DD-Record-Organizer/DD-Record-Organizer.vbproj
+++ b/app/DD-Record-Organizer/DD-Record-Organizer.vbproj
@@ -288,6 +288,7 @@
+
diff --git a/app/DD-Record-Organizer/frmConstructor_Main.vb b/app/DD-Record-Organizer/frmConstructor_Main.vb
index 30bfa1d..3ab3687 100644
--- a/app/DD-Record-Organizer/frmConstructor_Main.vb
+++ b/app/DD-Record-Organizer/frmConstructor_Main.vb
@@ -3131,83 +3131,6 @@ Public Class frmConstructor_Main
Me.Close()
End If
- End Sub
- Sub Create_Grid_Editor(formId As Integer)
- Try
- Dim SQL As String = "SELECT CONTROL_COL_NAME,CONTROL_SQLCOMMAND_1,CONTROL_STATIC_LIST FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID = 3 AND FORM_ID = " & formId
- Dim ComboColumns As DataTable = ClassDatabase.Return_Datatable(SQL, True)
-
- ' Alle Checkboxen für aktuelle Ansicht heraussuchen
- Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID in (10,11) AND FORM_ID = " & formId
- Dim dtcheck As DataTable = ClassDatabase.Return_Datatable(sqlcheck, True)
- Dim listcheck As New List(Of String)
-
- 'Liste von allen Spaltentiteln mit Checkbox erstellen
- If dtcheck.Rows.Count > 0 Then
- For Each row As DataRow In dtcheck.Rows
- listcheck.Add(row.Item(0))
- Next
- End If
- ' Den Editor Initialisieren und Optionen setzen
- Dim CheckBoxEditorForDisplay = New RepositoryItemCheckEdit()
- CheckBoxEditorForDisplay.ValueChecked = 1
- CheckBoxEditorForDisplay.ValueUnchecked = 0
- ' Alle Checkbox Spalten durchgehen und CheckBoxEditor zuweisen
- For Each col As String In listcheck
- grvwGridPos.GridControl.RepositoryItems.Add(CheckBoxEditorForDisplay)
-
- If Not IsNothing(grvwGridPos.Columns(col)) Then
- grvwGridPos.Columns(col).ColumnEdit = CheckBoxEditorForDisplay
- End If
- Next
-
-
- For Each col As DataRow In ComboColumns.Rows
- Dim colName As String = col.Item(0)
-
- Dim hasSqlCommand = col.Item(1).ToString() <> ""
- Dim hasStaticList = col.Item(2).ToString() <> ""
-
- If hasStaticList = True Then
- Dim comboEdit1 As New RepositoryItemComboBox()
- Dim comboItems1 As ComboBoxItemCollection = comboEdit1.Items
- Dim staticListItems = col.Item(2).ToString.Split(";")
- comboItems1.BeginUpdate()
- Try
- For Each item In staticListItems
- comboItems1.Add(item)
- Next
- Finally
- comboItems1.EndUpdate()
- End Try
- GridControlPos.RepositoryItems.Add(comboEdit1)
- If Not IsNothing(grvwGridPos.Columns(colName)) Then
- grvwGridPos.Columns(colName).ColumnEdit = comboEdit1
- End If
- ElseIf hasSqlCommand = True Then
- SQL = col.Item(1).ToString()
- Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
- Dim comboEdit2 As New RepositoryItemComboBox()
- Dim comboItems2 As ComboBoxItemCollection = comboEdit2.Items
- For Each row As DataRow In dt.Rows
- Dim value = row.Item(0)
- comboItems2.BeginUpdate()
- Try
- comboItems2.Add(value)
- Finally
- comboItems2.EndUpdate()
- End Try
- Next
- GridControlPos.RepositoryItems.Add(comboEdit2)
- If Not IsNothing(grvwGridPos.Columns(colName)) Then
- grvwGridPos.Columns(colName).ColumnEdit = comboEdit2
- End If
- End If
- Next
- Catch ex As Exception
- ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Create_Grid_Editor: ", ex.Message)
- End Try
-
End Sub
Sub Load_Pos_Data()
@@ -3223,9 +3146,10 @@ Public Class frmConstructor_Main
Dim bs As New BindingSource
bs.DataSource = DT_POS
BindingNavigatorPOS.BindingSource = bs
- ' --- Editoren laden für Combobox ---
- Create_Grid_Editor(POS_ENTITY)
- HideColumns_Pos(PARENT_RECORDID)
+ ' --- Editoren laden ---
+ ClassPosGrid.FormatColumns(grvwGridPos, POS_ENTITY)
+ 'ClassPosGrid.CreateComboEditor(grvwGridPos, POS_ENTITY)
+ 'HideColumns_Pos(PARENT_RECORDID)
End If
End If
Catch ex As Exception