WIP move grid functions to extra class
This commit is contained in:
parent
22691f30c4
commit
12c36eeb92
@ -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.")
|
||||
|
||||
21
app/TaskFlow/ControlCreator/Constants.vb
Normal file
21
app/TaskFlow/ControlCreator/Constants.vb
Normal 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
|
||||
215
app/TaskFlow/ControlCreator/GridControl.vb
Normal file
215
app/TaskFlow/ControlCreator/GridControl.vb
Normal 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
|
||||
@ -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>
|
||||
|
||||
@ -2445,9 +2445,6 @@ Public Class frmValidator
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
FillIndexValues(first)
|
||||
|
||||
For Each oControl As Control In PanelValidatorControl.Controls
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user