141 lines
5.4 KiB
VB.net
141 lines
5.4 KiB
VB.net
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
|
|
LOGGER.Warn("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 Expression As String = String.Format("CTRLTYPE_ID IN (3,4,10,11) AND FORM_ID = {0}", formId)
|
|
Dim DT As DataTable = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, Expression, "") '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
|