WIP move grid functions to extra class

This commit is contained in:
Jonathan Jenne 2023-06-13 09:12:45 +02:00
parent 22691f30c4
commit 12c36eeb92
5 changed files with 316 additions and 187 deletions

View File

@ -155,19 +155,6 @@ Public Class ClassControlCreator
' ----------------------- NEW CONTROLS -----------------------
'Public Function CreateNewTextBox(location As Point) As TextBox
' Dim control As New TextBox With {
' .Name = $"{PREFIX_TEXTBOX}_{clsTools.ShortGuid()}",
' .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
' .Location = location,
' .ReadOnly = True,
' .BackColor = Color.White,
' .Cursor = Cursors.Hand
' }
' Return control
'End Function
Public Function CreateNewTextBox(location As Point) As TextEdit
Dim control As New TextEdit With {
.Name = $"{PREFIX_TEXTBOX}_{clsTools.ShortGuid()}",
@ -264,9 +251,9 @@ Public Class ClassControlCreator
.Name = $"{PREFIX_TABLE}_{clsTools.ShortGuid}",
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE),
.Cursor = Cursors.Hand,
.Location = location
.Location = location,
.UseEmbeddedNavigator = True
}
oControl.UseEmbeddedNavigator = True
oControl.ForceInitialize()
Dim oView As GridView = oControl.DefaultView
oView.OptionsView.ShowGroupPanel = False
@ -302,37 +289,6 @@ Public Class ClassControlCreator
' ----------------------- EXISITING CONTROLS -----------------------
'Public Function CreateExistingTextbox(oControlRow As DataRow, designMode As Boolean) As TextBox
' Try
' Dim control As TextBox = CreateBaseControl(New TextBox(), oControlRow, designMode)
' control.BackColor = Color.White
' If oControlRow.Item("HEIGHT") > 27 Then
' control.Multiline = True
' End If
' control.Height = oControlRow.Item("HEIGHT")
' control.Width = oControlRow.Item("WIDTH")
' If Not designMode Then
' control.AcceptsReturn = True
' control.ReadOnly = oControlRow.Item("READ_ONLY")
' control.TabStop = Not oControlRow.Item("READ_ONLY")
' control.BackColor = IIf(oControlRow.Item("READ_ONLY"), Color.LightGray, Color.White)
' control.ScrollBars = ScrollBars.Vertical
' Else
' control.ReadOnly = True
' End If
' Return control
' Catch ex As Exception
' Logger.Error(ex)
' End Try
'End Function
Public Function CreateExistingTextbox(oControlRow As DataRow, designMode As Boolean) As BaseEdit
Try
Dim oHeight = oControlRow.ItemEx("HEIGHT", 0)
@ -349,17 +305,11 @@ Public Class ClassControlCreator
oControl = CreateBaseControl(New TextEdit(), oControlRow, designMode)
End If
'Dim oControl As TextEdit = CreateBaseControl(New TextEdit(), oControlRow, designMode)
Dim oMeta As ControlMetadata = oControl.Tag
oControl.BackColor = Color.White
oMeta.BackColor = Color.White
' TODO: Add separate function for MultilineEdit
'If oControlRow.Item("HEIGHT") > 27 Then
' control.Multiline = True
'End If
oControl.Height = oHeight
oControl.Width = oWidth
@ -380,10 +330,6 @@ Public Class ClassControlCreator
oControl.Properties.EditFormat.FormatType = FormatType.Custom
oControl.Properties.EditFormat.FormatString = ClassFormat.GetFormatString(oFormatString)
End If
'TODO: Find alternatives for TextEdit
'control.ScrollBars = ScrollBars.Vertical
'control.AcceptsReturn = True
Else
oControl.ReadOnly = True
End If
@ -391,6 +337,7 @@ Public Class ClassControlCreator
Return oControl
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
@ -407,6 +354,7 @@ Public Class ClassControlCreator
Return control
End Function
Public Function CreateExistingButton(row As DataRow, designMode As Boolean) As Button
Dim oControl As Button = CreateBaseControl(New Button(), row, designMode)
@ -524,9 +472,9 @@ Public Class ClassControlCreator
End Function
Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl
Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables)
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid
Dim oDatatable As New DataTable
Dim oView As GridView
oControl.ForceInitialize()
@ -593,64 +541,8 @@ Public Class ClassControlCreator
GridTables.Add(oControlId, New Dictionary(Of String, RepositoryItem)())
End If
For Each oRow As DataRow In DT_MY_COLUMNS.Rows
' Create Columns in Datatable
Dim oColumn = New DataColumn() With {
.ColumnName = oRow.Item("SPALTENNAME"),
.Caption = oRow.Item("SPALTEN_HEADER_LANG"),
.ReadOnly = False
}
Select Case oRow.Item("TYPE_COLUMN")
Case CONTROL_TYPE_TEXT
oColumn.DataType = GetType(String)
Case CONTROL_TYPE_INTEGER
oColumn.DataType = GetType(Integer)
Case CONTROL_TYPE_DOUBLE
oColumn.DataType = GetType(Double)
Case CONTROL_TYPE_CURRENCY
oColumn.DataType = GetType(Double)
Case CONTROL_TYPE_BOOLEAN
oColumn.DataType = GetType(Boolean)
Case Else
oColumn.DataType = GetType(String)
End Select
oDatatable.Columns.Add(oColumn)
' Fetch and cache Combobox results
Dim oConnectionId As Integer = NotNull(oRow.Item("CONNECTION_ID"), 0)
Dim oSqlCommand As String = NotNull(oRow.Item("SQL_COMMAND"), "")
If oConnectionId > 0 And oSqlCommand <> "" Then
Try
Dim oComboboxDataTable As DataTable = Nothing
Dim oColumnName As String = oRow.Item("SPALTENNAME")
Logger.Debug("Working on SQL for Column[{0}]...", oColumnName)
If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then
Logger.Debug("SQL has no complex patterns!")
'oComboboxDataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId)
oComboboxDataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With {
.ConnectionId = oConnectionId
})
Else
Logger.Debug("...has complex patterns!!")
End If
Dim oRepositoryItem = GridTables_GetRepositoryItemForColumn(oColumnName, oComboboxDataTable, oRow.Item("ADVANCED_LOOKUP"))
If GridTables.Item(oControlId).ContainsKey(oColumnName) Then
GridTables.Item(oControlId).Item(oColumnName) = oRepositoryItem
Else
GridTables.Item(oControlId).Add(oColumnName, oRepositoryItem)
End If
Catch ex As Exception
Logger.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name)
Logger.Error(ex)
End Try
End If
Next
Dim oDataTable = oGridControlCreator.CreateGridColumns(DT_MY_COLUMNS)
GridTables = oGridControlCreator.FillGridTables(DT_MY_COLUMNS, oControlId, oControl.Name)
oView.PopulateColumns(oDatatable)
oControl.DataSource = oDatatable
oControl.RefreshDataSource()
@ -679,79 +571,80 @@ Public Class ClassControlCreator
End Try
End If
oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView)
Dim oShouldDisplayFooter As Boolean = False
' Dim oShouldDisplayFooter As Boolean = False
'
'For Each oCol As GridColumn In oView.Columns
' Dim oColumnData As DataRow = DT_MY_COLUMNS.
' Select($"SPALTENNAME = '{oCol.FieldName}'").
' FirstOrDefault()
For Each oCol As GridColumn In oView.Columns
Dim oColumnData As DataRow = DT_MY_COLUMNS.
Select($"SPALTENNAME = '{oCol.FieldName}'").
FirstOrDefault()
' If oColumnData Is Nothing Then
' Continue For
' End If
If oColumnData Is Nothing Then
Continue For
End If
' Dim oSequence As Integer = oColumnData.Item("SEQUENCE")
' oCol.VisibleIndex = oSequence
Dim oSequence As Integer = oColumnData.Item("SEQUENCE")
oCol.VisibleIndex = oSequence
' Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN")
Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN")
' Select Case oColumnType
' Case "INTEGER"
' oCol.DisplayFormat.FormatType = FormatType.Custom
' oCol.DisplayFormat.FormatString = "N0"
Select Case oColumnType
Case "INTEGER"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "N0"
' Case "DOUBLE"
' oCol.DisplayFormat.FormatType = FormatType.Custom
' oCol.DisplayFormat.FormatString = "N2"
Case "DOUBLE"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "N2"
' Case "CURRENCY"
' oCol.DisplayFormat.FormatType = FormatType.Custom
' oCol.DisplayFormat.FormatString = "C2"
' End Select
Case "CURRENCY"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "C2"
End Select
' Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION")
Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION")
' Select Case oSummaryFunction
' Case AGGREGATE_TOTAL_INTEGER
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
' oCol.SummaryItem.DisplayFormat = "SUM: {0:N0}"
' oShouldDisplayFooter = True
Select Case oSummaryFunction
Case AGGREGATE_TOTAL_INTEGER
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N0}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_FLOAT
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
' oCol.SummaryItem.DisplayFormat = "SUM: {0:N2}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_FLOAT
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N2}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_CURRENCY
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
' oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_CURRENCY
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_AVG
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average
' oCol.SummaryItem.DisplayFormat = "AVG: {0}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_AVG
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average
oCol.SummaryItem.DisplayFormat = "AVG: {0}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_MAX
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Max
' oCol.SummaryItem.DisplayFormat = "MAX: {0}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_MAX
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Max
oCol.SummaryItem.DisplayFormat = "MAX: {0}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_MIN
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Min
' oCol.SummaryItem.DisplayFormat = "MIN: {0}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_MIN
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Min
oCol.SummaryItem.DisplayFormat = "MIN: {0}"
oShouldDisplayFooter = True
' Case AGGREGATE_TOTAL_COUNT
' oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Count
' oCol.SummaryItem.DisplayFormat = "NUM: {0}"
' oShouldDisplayFooter = True
Case AGGREGATE_TOTAL_COUNT
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Count
oCol.SummaryItem.DisplayFormat = "NUM: {0}"
oShouldDisplayFooter = True
End Select
Next
oView.OptionsView.ShowFooter = oShouldDisplayFooter
' End Select
'Next
'
' oView.OptionsView.ShowFooter = oShouldDisplayFooter
AddHandler oView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs)
Try
@ -817,18 +710,7 @@ Public Class ClassControlCreator
AddHandler oView.ShowingEditor, AddressOf View_ShowingEditor
AddHandler oView.ShownEditor, AddressOf View_ShownEditor
AddHandler oView.ValidateRow, AddressOf View_ValidateRow
AddHandler oControl.LostFocus, Sub(sender As GridControl, e As EventArgs)
Dim oView2 As GridView = sender.FocusedView
' 19.08.2022:
' Calling UpdateCurrentRow when newRowModified Is true
' leads to some weird jumping of focus in the current cell.
' This seems to fix it.
If newRowModified = False Then
oView2.UpdateCurrentRow()
End If
End Sub
AddHandler oControl.LostFocus, AddressOf Control_LostFocus
' 08.11.2021: Fix editor being empty on first open
oView.FocusInvalidRow()
@ -838,6 +720,18 @@ Public Class ClassControlCreator
Private newRowModified As Boolean = False
Private Sub Control_LostFocus(sender As GridControl, e As EventArgs)
Dim oView2 As GridView = sender.FocusedView
' 19.08.2022:
' Calling UpdateCurrentRow when newRowModified Is true
' leads to some weird jumping of focus in the current cell.
' This seems to fix it.
If newRowModified = False Then
oView2.UpdateCurrentRow()
End If
End Sub
Private Sub View_ShowingEditor(sender As Object, e As CancelEventArgs)
Dim view As GridView = TryCast(sender, GridView)
Logger.Debug("Showing editor.")

View File

@ -0,0 +1,21 @@
Namespace ControlCreator
Public Class Constants
Public Const CONTROL_TYPE_TEXT = "TEXT"
Public Const CONTROL_TYPE_INTEGER = "INTEGER"
Public Const CONTROL_TYPE_BOOLEAN = "BOOLEAN"
Public Const CONTROL_TYPE_DOUBLE = "DOUBLE"
Public Const CONTROL_TYPE_CURRENCY = "CURRENCY"
Public Const CONTROL_TYPE_DATE = "DATE"
Public Const CONTROL_TYPE_DATETIME = "DATETIME"
Public Const AGGREGATE_NONE = "NONE"
Public Const AGGREGATE_TOTAL_INTEGER = "TOTAL_INTEGER"
Public Const AGGREGATE_TOTAL_FLOAT = "TOTAL_FLOAT"
Public Const AGGREGATE_TOTAL_CURRENCY = "TOTAL_CURRENCY"
Public Const AGGREGATE_TOTAL_MIN = "TOTAL_MIN"
Public Const AGGREGATE_TOTAL_MAX = "TOTAL_MAX"
Public Const AGGREGATE_TOTAL_AVG = "TOTAL_AVG"
Public Const AGGREGATE_TOTAL_COUNT = "TOTAL_COUNT"
End Class
End Namespace

View File

@ -0,0 +1,215 @@
Imports DevExpress.Utils
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base
Imports System.ComponentModel
Namespace ControlCreator
Public Class GridControl
Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _GridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)))
_LogConfig = pLogConfig
_GridTables = pGridTables
End Sub
Public Function CreateGridColumns(pColumnTable As DataTable) As DataTable
Dim oDataTable As New DataTable
For Each oRow As DataRow In pColumnTable.Rows
' Create Columns in Datatable
Dim oColumn = New DataColumn() With {
.ColumnName = oRow.Item("SPALTENNAME"),
.Caption = oRow.Item("SPALTEN_HEADER_LANG"),
.ReadOnly = False
}
Select Case oRow.Item("TYPE_COLUMN")
Case Constants.CONTROL_TYPE_TEXT
oColumn.DataType = GetType(String)
Case Constants.CONTROL_TYPE_INTEGER
oColumn.DataType = GetType(Integer)
Case Constants.CONTROL_TYPE_DOUBLE
oColumn.DataType = GetType(Double)
Case Constants.CONTROL_TYPE_CURRENCY
oColumn.DataType = GetType(Double)
Case Constants.CONTROL_TYPE_BOOLEAN
oColumn.DataType = GetType(Boolean)
Case Else
oColumn.DataType = GetType(String)
End Select
oDataTable.Columns.Add(oColumn)
Next
Return oDataTable
End Function
Public Function FillGridTables(pColumnTable As DataTable, pControlId As Integer, pControlName As String) As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
For Each oRow As DataRow In pColumnTable.Rows
' Fetch and cache Combobox results
Dim oConnectionId As Integer = oRow.ItemEx("CONNECTION_ID", 0)
Dim oSqlCommand As String = oRow.ItemEx("SQL_COMMAND", "")
If oConnectionId > 0 And oSqlCommand <> "" Then
Try
Dim oComboboxDataTable As DataTable = Nothing
Dim oColumnName As String = oRow.Item("SPALTENNAME")
LOGGER.Debug("Working on SQL for Column[{0}]...", oColumnName)
If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then
LOGGER.Debug("SQL has no complex patterns!")
'oComboboxDataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId)
oComboboxDataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With {
.ConnectionId = oConnectionId
})
Else
LOGGER.Debug("...has complex patterns!!")
End If
Dim oRepositoryItem = GridTables_GetRepositoryItemForColumn(oColumnName, oComboboxDataTable, oRow.Item("ADVANCED_LOOKUP"))
If _GridTables.Item(pControlId).ContainsKey(oColumnName) Then
_GridTables.Item(pControlId).Item(oColumnName) = oRepositoryItem
Else
_GridTables.Item(pControlId).Add(oColumnName, oRepositoryItem)
End If
Catch ex As Exception
LOGGER.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), pControlName)
LOGGER.Error(ex)
End Try
End If
Next
Return _GridTables
End Function
Private Function GridTables_GetRepositoryItemForColumn(pColumnName As String, pDataTable As DataTable, pIsAdvancedLookup As Boolean) As RepositoryItem
If pIsAdvancedLookup Then
Dim oEditor = New RepositoryItemLookupControl3
If pDataTable IsNot Nothing Then
oEditor.DisplayMember = pDataTable.Columns.Item(0).ColumnName
oEditor.ValueMember = pDataTable.Columns.Item(0).ColumnName
oEditor.DataSource = pDataTable
End If
Return oEditor
Else
Dim oEditor = New RepositoryItemComboBox()
Dim oItems As New List(Of String)
AddHandler oEditor.Validating, Sub(_sender As ComboBoxEdit, _e As CancelEventArgs)
If oItems.Contains(_sender.EditValue) Then
_e.Cancel = False
Else
_e.Cancel = True
End If
End Sub
If pDataTable IsNot Nothing Then
For Each oRow2 As DataRow In pDataTable.Rows
Dim oValue = oRow2.Item(0)
Try
If oRow2.ItemArray.Length > 1 Then
oValue &= $" | {oRow2.Item(1)}"
End If
Catch ex As Exception
End Try
oEditor.Items.Add(oValue)
oItems.Add(oValue)
Next
End If
Return oEditor
End If
End Function
Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView)
Dim oShouldDisplayFooter As Boolean = False
For Each oCol As GridColumn In pGridView.Columns
Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{oCol.FieldName}'").
FirstOrDefault()
If oColumnData Is Nothing Then
Continue For
End If
Dim oSequence As Integer = oColumnData.Item("SEQUENCE")
oCol.VisibleIndex = oSequence
Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN")
Select Case oColumnType
Case "INTEGER"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "N0"
Case "DOUBLE"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "N2"
Case "CURRENCY"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "C2"
End Select
Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION")
Select Case oSummaryFunction
Case Constants.AGGREGATE_TOTAL_INTEGER
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N0}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_FLOAT
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N2}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_CURRENCY
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_AVG
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average
oCol.SummaryItem.DisplayFormat = "AVG: {0}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_MAX
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Max
oCol.SummaryItem.DisplayFormat = "MAX: {0}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_MIN
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Min
oCol.SummaryItem.DisplayFormat = "MIN: {0}"
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_COUNT
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Count
oCol.SummaryItem.DisplayFormat = "NUM: {0}"
oShouldDisplayFooter = True
End Select
Next
pGridView.OptionsView.ShowFooter = oShouldDisplayFooter
End Sub
End Class
End Namespace

View File

@ -282,6 +282,8 @@
<Compile Include="ClassWorkDoc.vb" />
<Compile Include="clsPatterns.vb" />
<Compile Include="clsWMDocGrid.vb" />
<Compile Include="ControlCreator\Constants.vb" />
<Compile Include="ControlCreator\GridControl.vb" />
<Compile Include="FinalIndexDataSet.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>

View File

@ -2445,9 +2445,6 @@ Public Class frmValidator
End If
End If
FillIndexValues(first)
For Each oControl As Control In PanelValidatorControl.Controls