jj 14.12 ClassGridFormatter
This commit is contained in:
214
app/DD-Record-Organiser/ClassGridFormatter.vb
Normal file
214
app/DD-Record-Organiser/ClassGridFormatter.vb
Normal file
@@ -0,0 +1,214 @@
|
||||
Imports DevExpress.Utils
|
||||
|
||||
Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Columns
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraEditors.Repository
|
||||
|
||||
|
||||
Public Class ClassGridFormatter
|
||||
|
||||
Private Shared tDate As Type = GetType(Date)
|
||||
Private Shared tBool As Type = GetType(Boolean)
|
||||
|
||||
|
||||
|
||||
Public Enum DataTableType
|
||||
CONSTRUCTOR_VIEW
|
||||
WINDREAM_RESULT
|
||||
End Enum
|
||||
|
||||
''' <summary>
|
||||
''' Die Formatierungsfunktionen für die ConstruktorView Tabellen
|
||||
''' </summary>
|
||||
Public Class ConstructorView
|
||||
Private EntityId As Integer
|
||||
Private DT As DataTable
|
||||
|
||||
Private dateEdit As New RepositoryItemTimeEdit()
|
||||
Private checkboxEdit = New RepositoryItemCheckEdit()
|
||||
|
||||
Public checkboxColumns As New List(Of String)
|
||||
Public dateColumns As New List(Of String)
|
||||
|
||||
Public Sub New(DT As DataTable, EntityId As Integer)
|
||||
Me.EntityId = EntityId
|
||||
Me.DT = DT
|
||||
|
||||
' dateEdit vor-formatieren
|
||||
dateEdit.DisplayFormat.FormatType = FormatType.DateTime
|
||||
dateEdit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
dateEdit.Mask.MaskType = Mask.MaskType.DateTime
|
||||
dateEdit.Mask.EditMask = CURRENT_DATE_FORMAT
|
||||
dateEdit.Mask.UseMaskAsDisplayFormat = True
|
||||
|
||||
' checkboxEdit vor-formatieren
|
||||
checkboxEdit.ValueChecked = True
|
||||
checkboxEdit.ValueUnchecked = False
|
||||
End Sub
|
||||
|
||||
Public Function FormatDatatable() As DataTable
|
||||
Try
|
||||
' Datatable klonen, um Spalten zu formatieren
|
||||
Dim clonedDT As DataTable = Me.DT.Clone()
|
||||
|
||||
' Checkbox Spalten bestimmen
|
||||
Me.checkboxColumns = GetCheckboxColumns()
|
||||
|
||||
' Checkbox Spalten formatieren
|
||||
For Each columnName As String In Me.checkboxColumns
|
||||
Dim column As DataColumn = clonedDT.Columns(columnName)
|
||||
|
||||
If Not IsNothing(column) Then
|
||||
column.DataType = tBool
|
||||
End If
|
||||
Next
|
||||
|
||||
' Datums Spalten bestimmen
|
||||
Me.dateColumns = GetDateColumns()
|
||||
|
||||
' Datums Spalten Formatieren
|
||||
For Each columnName As String In Me.dateColumns
|
||||
Dim column As DataColumn = clonedDT.Columns(columnName)
|
||||
|
||||
If Not IsNothing(column) Then
|
||||
column.DataType = tDate
|
||||
End If
|
||||
Next
|
||||
|
||||
' Daten aus DT in formatierte DataTable clonedDT laden
|
||||
clonedDT.Load(DT.CreateDataReader)
|
||||
Return clonedDT
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in FormatDatatable: " & ex.Message, True)
|
||||
Return DT
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Sub FormatGridView(gridView As GridView)
|
||||
If IsNothing(gridView.GridControl.DataSource) Then
|
||||
Throw New Exception("Error in FormatGridView: DataSource is Empty!")
|
||||
End If
|
||||
|
||||
' Editoren zum Grid hinzufügen
|
||||
gridView.GridControl.RepositoryItems.AddRange({checkboxEdit, dateEdit})
|
||||
|
||||
For Each columnName As String In Me.dateColumns
|
||||
Dim column As GridColumn = gridView.Columns(columnName)
|
||||
|
||||
If Not IsNothing(column) Then
|
||||
column.DisplayFormat.FormatType = FormatType.DateTime
|
||||
column.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
column.OptionsFilter.FilterPopupMode = FilterPopupMode.Date
|
||||
column.FilterMode = ColumnFilterMode.Value ' was DisplayText
|
||||
column.ColumnEdit = dateEdit
|
||||
End If
|
||||
Next
|
||||
|
||||
For Each columnName As String In Me.checkboxColumns
|
||||
Dim column As GridColumn = gridView.Columns(columnName)
|
||||
|
||||
If Not IsNothing(column) Then
|
||||
column.ColumnEdit = checkboxEdit
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function GetCheckboxColumns()
|
||||
Try
|
||||
Dim listcheck As New List(Of String)
|
||||
' Alle Checkboxen für aktuelle Ansicht heraussuchen
|
||||
Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID in (10,11) AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId
|
||||
Dim dtcheck As DataTable = ClassDatabase.Return_Datatable(sqlcheck)
|
||||
'Liste von allen Spaltentiteln mit Checkbox erstellen
|
||||
If dtcheck.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dtcheck.Rows
|
||||
listcheck.Add(row.Item(0))
|
||||
Next
|
||||
End If
|
||||
Return listcheck
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in GetCheckboxColumns: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Private Function GetDateColumns()
|
||||
Try
|
||||
Dim listdate As New List(Of String)
|
||||
' Alle Checkboxen für aktuelle Ansicht heraussuchen
|
||||
Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 4 AND SHOW_COLUMN = 1 AND FORM_ID = " & Me.EntityId
|
||||
Dim dtdate As DataTable = ClassDatabase.Return_Datatable(sqlcheck)
|
||||
'Liste von allen Spaltentiteln mit Checkbox erstellen
|
||||
If dtdate.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dtdate.Rows
|
||||
listdate.Add(row.Item(0))
|
||||
Next
|
||||
End If
|
||||
Return listdate
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in GetCheckboxColumns: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
|
||||
''' <summary>
|
||||
''' Die Formatierungsfunktionen für die WindreamResult Tabellen
|
||||
''' </summary>
|
||||
Public Class WindreamResult
|
||||
|
||||
End Class
|
||||
|
||||
End Class
|
||||
|
||||
' FOR REFERENCE IN CASE SOMETHING BREAKS :)
|
||||
'Public Shared Function Format_GridColumns(Primary_DT As DataTable, _ENTITYSQL As String, listcheck As List(Of String), listdate As List(Of String))
|
||||
' Try
|
||||
' Dim tbltemp As DataTable = Primary_DT.Clone()
|
||||
' ' Nicht benötigt? Datumsspalten werden im Grid formatiert
|
||||
' For Each col As String In listdate
|
||||
' Dim colDate As DataColumn = tbltemp.Columns(col)
|
||||
' If Not IsNothing(colDate) Then
|
||||
' Try
|
||||
' colDate.DataType = GetType(Date)
|
||||
' Catch ex As Exception
|
||||
' MsgBox("Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
' End Try
|
||||
' End If
|
||||
' Next
|
||||
' For Each col1 As String In listcheck
|
||||
' Dim collist As DataColumn = tbltemp.Columns(col1)
|
||||
' If Not IsNothing(collist) Then
|
||||
' collist.DataType = GetType(Boolean)
|
||||
' End If
|
||||
' Next
|
||||
' Try
|
||||
' Dim collist As DataColumn = tbltemp.Columns("files?")
|
||||
' If Not IsNothing(collist) Then
|
||||
' collist.DataType = GetType(Boolean)
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
|
||||
' End Try
|
||||
' Try
|
||||
' tbltemp.Load(Primary_DT.CreateDataReader)
|
||||
' Return tbltemp
|
||||
' Catch ex As Exception
|
||||
' ClassLogger.Add(">> Attention: Format_GridColumns - Could not load converted datatable: " & ex.Message, False)
|
||||
' 'Tabelle wird ohne Datekonvertierung geladen
|
||||
' Dim DTEntity As DataTable = ClassDatabase.Return_Datatable(_ENTITYSQL, "Load_Entity_Data_Only")
|
||||
' Dim primaryKey(1) As DataColumn
|
||||
' primaryKey(0) = DTEntity.Columns("Record-ID")
|
||||
' DTEntity.PrimaryKey = primaryKey
|
||||
' Return DTEntity
|
||||
' End Try
|
||||
' Catch ex As Exception
|
||||
' MsgBox("Unexpected Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
' ClassLogger.Add("Error in Format_GridColumns: " & ex.Message, True)
|
||||
' Return Nothing
|
||||
' End Try
|
||||
|
||||
'End Function
|
||||
@@ -172,90 +172,6 @@ Public Class ClassHelper
|
||||
Shared Function Convert_Date_2_Form_Format(p1 As Date) As Date
|
||||
Throw New NotImplementedException
|
||||
End Function
|
||||
Public Shared Function Return_listcheck(ENTITY_ID As Integer)
|
||||
|
||||
Try
|
||||
Dim listcheck As New List(Of String)
|
||||
' Alle Checkboxen für aktuelle Ansicht heraussuchen
|
||||
Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID in (10,11) AND SHOW_COLUMN = 1 AND FORM_ID = " & ENTITY_ID
|
||||
Dim dtcheck As DataTable = ClassDatabase.Return_Datatable(sqlcheck)
|
||||
'Liste von allen Spaltentiteln mit Checkbox erstellen
|
||||
If dtcheck.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dtcheck.Rows
|
||||
listcheck.Add(row.Item(0))
|
||||
Next
|
||||
End If
|
||||
Return listcheck
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in Return_listcheck: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function Return_listdate(ENTITY_ID As Integer)
|
||||
Try
|
||||
Dim listdate As New List(Of String)
|
||||
' Alle Checkboxen für aktuelle Ansicht heraussuchen
|
||||
Dim sqlcheck As String = "SELECT COL_NAME FROM TBPMO_CONTROL WHERE CONTROL_TYPE_ID = 4 AND SHOW_COLUMN = 1 AND FORM_ID = " & ENTITY_ID
|
||||
Dim dtdate As DataTable = ClassDatabase.Return_Datatable(sqlcheck)
|
||||
'Liste von allen Spaltentiteln mit Checkbox erstellen
|
||||
If dtdate.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dtdate.Rows
|
||||
listdate.Add(row.Item(0))
|
||||
Next
|
||||
End If
|
||||
Return listdate
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in Return_listdate: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function Format_GridColumns(Primary_DT As DataTable, _ENTITYSQL As String, listcheck As List(Of String), listdate As List(Of String))
|
||||
Try
|
||||
Dim tbltemp As DataTable = Primary_DT.Clone()
|
||||
' Nicht benötigt? Datumsspalten werden im Grid formatiert
|
||||
For Each col As String In listdate
|
||||
Dim colDate As DataColumn = tbltemp.Columns(col)
|
||||
If Not IsNothing(colDate) Then
|
||||
Try
|
||||
colDate.DataType = GetType(Date)
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
For Each col1 As String In listcheck
|
||||
Dim collist As DataColumn = tbltemp.Columns(col1)
|
||||
If Not IsNothing(collist) Then
|
||||
collist.DataType = GetType(Boolean)
|
||||
End If
|
||||
Next
|
||||
Try
|
||||
Dim collist As DataColumn = tbltemp.Columns("files?")
|
||||
If Not IsNothing(collist) Then
|
||||
collist.DataType = GetType(Boolean)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Try
|
||||
tbltemp.Load(Primary_DT.CreateDataReader)
|
||||
Return tbltemp
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Attention: Format_GridColumns - Could not load converted datatable: " & ex.Message, False)
|
||||
'Tabelle wird ohne Datekonvertierung geladen
|
||||
Dim DTEntity As DataTable = ClassDatabase.Return_Datatable(_ENTITYSQL, "Load_Entity_Data_Only")
|
||||
Dim primaryKey(1) As DataColumn
|
||||
primaryKey(0) = DTEntity.Columns("Record-ID")
|
||||
DTEntity.PrimaryKey = primaryKey
|
||||
Return DTEntity
|
||||
End Try
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Format_GridColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
ClassLogger.Add("Error in Format_GridColumns: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Shared Function InsertEssential_Log(REFERENCE_KEY As Integer, REFERENCE_STRING As String, COMMENT As String)
|
||||
Try
|
||||
Dim insert = String.Format("INSERT INTO TBPMO_LOG_ESSENTIALS (REFERENCE_KEY,REFERENCE_STRING,COMMENT,ADDED_WHO) VALUES ({0},'{1}','{2}','{3}')", REFERENCE_KEY, REFERENCE_STRING, COMMENT, USER_USERNAME)
|
||||
|
||||
@@ -262,6 +262,7 @@
|
||||
</Compile>
|
||||
<Compile Include="ClassFileResult.vb" />
|
||||
<Compile Include="ClassFolderWatcher.vb" />
|
||||
<Compile Include="ClassGridFormatter.vb" />
|
||||
<Compile Include="ClassJumpRecord.vb" />
|
||||
<Compile Include="ClassLicence.vb" />
|
||||
<Compile Include="ClassAsyncSQL.vb" />
|
||||
|
||||
532
app/DD-Record-Organiser/frmConstructor_Main.Designer.vb
generated
532
app/DD-Record-Organiser/frmConstructor_Main.Designer.vb
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3096,29 +3096,11 @@ Public Class frmConstructor_Main
|
||||
'Grid leeren
|
||||
Clear_Grid_View()
|
||||
|
||||
'Vorbereiten der Arrays
|
||||
Dim listcheck As List(Of String) = ClassHelper.Return_listcheck(ENTITY_ID)
|
||||
Dim listdate As List(Of String) = ClassHelper.Return_listdate(ENTITY_ID)
|
||||
Dim DT_RESULT As DataTable = ClassHelper.Format_GridColumns(DT_SELECTION, _ENTITYSQL, listcheck, listdate)
|
||||
Dim gridFormatter As New ClassGridFormatter.ConstructorView(DT_SELECTION, ENTITY_ID)
|
||||
Dim DT_RESULT As DataTable = gridFormatter.FormatDatatable()
|
||||
GridControlMain.DataSource = DT_RESULT
|
||||
gridFormatter.FormatGridView(grvwGrid)
|
||||
|
||||
' Alle Date Spalten durchgehen
|
||||
For Each col As String In listdate
|
||||
Dim date_edit As New DevExpress.XtraEditors.Repository.RepositoryItemTimeEdit
|
||||
Dim date_column As GridColumn = grvwGrid.Columns(col)
|
||||
date_column.DisplayFormat.FormatType = FormatType.DateTime
|
||||
date_column.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
date_column.OptionsFilter.FilterPopupMode = FilterPopupMode.Date
|
||||
date_column.ColumnEdit = date_edit
|
||||
date_column.FilterMode = ColumnFilterMode.Value ' was DisplayText
|
||||
|
||||
date_edit.DisplayFormat.FormatType = FormatType.DateTime
|
||||
date_edit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
date_edit.Mask.MaskType = Mask.MaskType.DateTime
|
||||
date_edit.Mask.EditMask = CURRENT_DATE_FORMAT
|
||||
date_edit.Mask.UseMaskAsDisplayFormat = True
|
||||
|
||||
Next
|
||||
Try
|
||||
grvwGrid.Columns("AddedWhen").DisplayFormat.FormatType = FormatType.DateTime
|
||||
grvwGrid.Columns("AddedWhen").DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
|
||||
@@ -6416,6 +6398,6 @@ Public Class frmConstructor_Main
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
@@ -117,41 +117,46 @@ Public Class frmGeodataNavigation
|
||||
|
||||
|
||||
Private Sub LoadGridData()
|
||||
If Not IsNothing(EntityDataTable) Then
|
||||
GridControlGeo.DataSource = EntityDataTable
|
||||
If IsNothing(EntityDataTable) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim listcheck As List(Of String) = ClassHelper.Return_listcheck(CURRENT_ENTITY_ID)
|
||||
Dim listdate As List(Of String) = ClassHelper.Return_listdate(CURRENT_ENTITY_ID)
|
||||
Dim gridFormatter As New ClassGridFormatter.ConstructorView(EntityDataTable, CURRENT_ENTITY_ID)
|
||||
Dim DT_RESULT As DataTable = gridFormatter.FormatDatatable()
|
||||
GridControlGeo.DataSource = DT_RESULT
|
||||
gridFormatter.FormatGridView(grvwMain)
|
||||
|
||||
Dim CheckBoxEditorForDisplay = New RepositoryItemCheckEdit()
|
||||
CheckBoxEditorForDisplay.ValueChecked = 1
|
||||
CheckBoxEditorForDisplay.ValueUnchecked = 0
|
||||
GridControlGeo.RepositoryItems.Add(CheckBoxEditorForDisplay)
|
||||
'Dim listcheck As List(Of String) = ClassHelper.Return_listcheck(CURRENT_ENTITY_ID)
|
||||
'Dim listdate As List(Of String) = ClassHelper.Return_listdate(CURRENT_ENTITY_ID)
|
||||
|
||||
' Alle Checkbox Spalten durchgehen und CheckBoxEditor zuweisen
|
||||
For Each col As String In listcheck
|
||||
If Not IsNothing(grvwMain.Columns(col)) Then
|
||||
grvwMain.Columns(col).ColumnEdit = CheckBoxEditorForDisplay
|
||||
End If
|
||||
Next
|
||||
'Dim CheckBoxEditorForDisplay = New RepositoryItemCheckEdit()
|
||||
'CheckBoxEditorForDisplay.ValueChecked = 1
|
||||
'CheckBoxEditorForDisplay.ValueUnchecked = 0
|
||||
'GridControlGeo.RepositoryItems.Add(CheckBoxEditorForDisplay)
|
||||
|
||||
For Each col As String In listdate
|
||||
Dim date_edit As New DevExpress.XtraEditors.Repository.RepositoryItemTimeEdit
|
||||
Dim date_column As GridColumn = grvwMain.Columns(col)
|
||||
date_column.DisplayFormat.FormatType = FormatType.DateTime
|
||||
date_column.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
date_column.OptionsFilter.FilterPopupMode = FilterPopupMode.Date
|
||||
date_column.ColumnEdit = date_edit
|
||||
date_column.FilterMode = ColumnFilterMode.Value ' was DisplayText
|
||||
'' Alle Checkbox Spalten durchgehen und CheckBoxEditor zuweisen
|
||||
'For Each col As String In listcheck
|
||||
' If Not IsNothing(grvwMain.Columns(col)) Then
|
||||
' grvwMain.Columns(col).ColumnEdit = CheckBoxEditorForDisplay
|
||||
' End If
|
||||
'Next
|
||||
|
||||
date_edit.DisplayFormat.FormatType = FormatType.DateTime
|
||||
date_edit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
date_edit.Mask.MaskType = Mask.MaskType.DateTime
|
||||
date_edit.Mask.EditMask = CURRENT_DATE_FORMAT
|
||||
date_edit.Mask.UseMaskAsDisplayFormat = True
|
||||
'For Each col As String In listdate
|
||||
' Dim date_edit As New DevExpress.XtraEditors.Repository.RepositoryItemTimeEdit
|
||||
' Dim date_column As GridColumn = grvwMain.Columns(col)
|
||||
' date_column.DisplayFormat.FormatType = FormatType.DateTime
|
||||
' date_column.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
' date_column.OptionsFilter.FilterPopupMode = FilterPopupMode.Date
|
||||
' date_column.ColumnEdit = date_edit
|
||||
' date_column.FilterMode = ColumnFilterMode.Value ' was DisplayText
|
||||
|
||||
Next
|
||||
' date_edit.DisplayFormat.FormatType = FormatType.DateTime
|
||||
' date_edit.DisplayFormat.FormatString = CURRENT_DATE_FORMAT
|
||||
' date_edit.Mask.MaskType = Mask.MaskType.DateTime
|
||||
' date_edit.Mask.EditMask = CURRENT_DATE_FORMAT
|
||||
' date_edit.Mask.UseMaskAsDisplayFormat = True
|
||||
|
||||
'Next
|
||||
|
||||
' Styles for GridControl
|
||||
grvwMain.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user