MS SAP
This commit is contained in:
140
app/DD-Record-Organizer/Classes/ClassPosGrid.vb
Normal file
140
app/DD-Record-Organizer/Classes/ClassPosGrid.vb
Normal file
@@ -0,0 +1,140 @@
|
||||
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
|
||||
Reference in New Issue
Block a user