Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid Imports DigitalData.GUIs.Common Imports DigitalData.Modules.Logging Imports ImporterShared Public Class GridLoader Inherits BaseClass Public Sub New(pLogConfig As LogConfig) MyBase.New(pLogConfig, pLogConfig.GetLogger()) End Sub Public Function GetGridFromElement(pTable As Schemas.Schema.Table) As GridControl Dim oGrid As New GridControl With { .Dock = DockStyle.Fill, .Name = pTable.Name } Dim oInvisibleColumns As New List(Of String) From { "BELEGKEY", "Zeilennummer", "Belegart", "Infotext", "Leistungsdatum", "Projektnummer", "Auftragsreferenz", "Laufnummer" } oGrid.ForceInitialize() oGrid.MainView.PopulateColumns() Dim oView As GridView = oGrid.DefaultView oView.OptionsBehavior.ReadOnly = True oView.OptionsBehavior.Editable = False For Each oCol In pTable.Columns Dim oVisibleIndex As Integer = 0 ' Hide certain columns If oInvisibleColumns.Contains(oCol.Name) Then oVisibleIndex = -1 End If Dim oColumn = New Columns.GridColumn With { .Name = oCol.Name, .Caption = oCol.Name, .FieldName = oCol.Name, .UnboundType = GetColumnType(oCol), .VisibleIndex = oVisibleIndex } oView.Columns.Add(oColumn) Next oView.BestFitColumns() Dim oGridBuilder As New GridBuilder(oView) oGridBuilder. WithDefaults(). WithReadOnlyOptions(). WithClipboardHandler() Return oGrid End Function Private Function GetColumnType(pColumn As Schemas.Schema.Column) Select Case pColumn.DataType Case ImporterShared.Constants.ColumnType.Boolean Return DevExpress.Data.UnboundColumnType.Boolean Case ImporterShared.Constants.ColumnType.Date Return DevExpress.Data.UnboundColumnType.DateTime Case ImporterShared.Constants.ColumnType.Integer Return DevExpress.Data.UnboundColumnType.Integer Case ImporterShared.Constants.ColumnType.Decimal Return DevExpress.Data.UnboundColumnType.Decimal Case Else Return DevExpress.Data.UnboundColumnType.String End Select End Function End Class