2 Commits

Author SHA1 Message Date
Jonathan Jenne
4f85a1b4a0 More logging for Class Control Creator 2021-11-08 10:21:48 +01:00
Jonathan Jenne
a78845f02d Allow checkboxes to be required 2021-11-03 15:13:21 +01:00
2 changed files with 357 additions and 328 deletions

View File

@@ -13,6 +13,7 @@ Imports DevExpress.XtraGrid.Views.Grid
Imports DigitalData.Controls.LookupGrid Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.Language.Utils Imports DigitalData.Modules.Language.Utils
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Logging
Public Class ClassControlCreator Public Class ClassControlCreator
@@ -48,6 +49,8 @@ Public Class ClassControlCreator
Public Const AGGREGATE_TOTAL_AVG = "TOTAL_AVG" Public Const AGGREGATE_TOTAL_AVG = "TOTAL_AVG"
Public Const AGGREGATE_TOTAL_COUNT = "TOTAL_COUNT" Public Const AGGREGATE_TOTAL_COUNT = "TOTAL_COUNT"
Public Shared Property Logger As Logger
''' <summary> ''' <summary>
''' Saves the column data for each grid and each column in that grid ''' Saves the column data for each grid and each column in that grid
''' </summary> ''' </summary>
@@ -120,7 +123,7 @@ Public Class ClassControlCreator
Return ctrl Return ctrl
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
@@ -288,7 +291,7 @@ Public Class ClassControlCreator
Return control Return control
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
End Function End Function
@@ -524,8 +527,8 @@ Public Class ClassControlCreator
GridTables.Item(oControlId).Add(oColumnName, oRepositoryItem) GridTables.Item(oControlId).Add(oColumnName, oRepositoryItem)
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name) Logger.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name)
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
End If End If
Next Next
@@ -589,6 +592,8 @@ Public Class ClassControlCreator
AddHandler oView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs) AddHandler oView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs)
Try Try
Logger.Debug("Initialzing new row")
For Each oColumnData As DataRow In DT_MY_COLUMNS.Rows For Each oColumnData As DataRow In DT_MY_COLUMNS.Rows
For Each oGridColumn As GridColumn In oView.Columns For Each oGridColumn As GridColumn In oView.Columns
If oGridColumn.FieldName <> oColumnData.Item("SPALTENNAME") Then If oGridColumn.FieldName <> oColumnData.Item("SPALTENNAME") Then
@@ -598,12 +603,13 @@ Public Class ClassControlCreator
Dim oDefaultValue = NotNull(oColumnData.Item("DEFAULT_VALUE"), String.Empty) Dim oDefaultValue = NotNull(oColumnData.Item("DEFAULT_VALUE"), String.Empty)
If oDefaultValue <> String.Empty Then If oDefaultValue <> String.Empty Then
Logger.Debug("Setting default value [{0}] for column [{0}]", oDefaultValue, oGridColumn.FieldName)
oView.SetRowCellValue(e.RowHandle, oGridColumn.FieldName, oDefaultValue) oView.SetRowCellValue(e.RowHandle, oGridColumn.FieldName, oDefaultValue)
End If End If
Next Next
Next Next
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
Finally Finally
newRowModified = False newRowModified = False
End Try End Try
@@ -611,34 +617,40 @@ Public Class ClassControlCreator
AddHandler oView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs) AddHandler oView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
Try Try
Logger.Debug("Assigning editors to cells.")
For Each oRow As DataRow In DT_MY_COLUMNS.Rows For Each oRow As DataRow In DT_MY_COLUMNS.Rows
Dim oColumnName = oRow.Item("SPALTENNAME") Dim oColumnName = oRow.Item("SPALTENNAME")
Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(oControlId, oColumnName) Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(oControlId, oColumnName)
If oColumnName <> e.Column.FieldName Then
Continue For
End If
If oColumnName = e.Column.FieldName And oEditorExists Then If oEditorExists Then
Dim oEditor = GridTables.Item(oControlId).Item(oColumnName) Dim oEditor = GridTables.Item(oControlId).Item(oColumnName)
Logger.Debug("Assigning Editor to Column [{0}]", oColumnName)
e.RepositoryItem = oEditor e.RepositoryItem = oEditor
Else
Logger.Debug("Editor for Column [{0}] does not exist", oColumnName)
End If End If
Next Next
Catch ex As Exception Catch ex As Exception
LOGGER.Warn("Error in CustomRowCellEdit for [{0}]", e.CellValue) Logger.Warn("Error in CustomRowCellEdit for [{0}]", e.CellValue)
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
End Sub End Sub
AddHandler oView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs) AddHandler oView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs)
Dim oRow As DataRowView = oView.GetRow(oView.FocusedRowHandle) Dim oRow As DataRowView = oView.GetRow(oView.FocusedRowHandle)
Dim oColumnName = oView.FocusedColumn.FieldName Dim oColumnName = oView.FocusedColumn.FieldName
LOGGER.Debug("Validating Editor for Column [{0}]", oColumnName) Logger.Debug("Validating Editor for Column [{0}]", oColumnName)
GridTables_ValidateColumn(oView, DT_MY_COLUMNS, oColumnName, e.Value, e.Valid, e.ErrorText) GridTables_ValidateColumn(oView, DT_MY_COLUMNS, oColumnName, e.Value, e.Valid, e.ErrorText)
End Sub End Sub
AddHandler oView.InvalidRowException, AddressOf View_InvalidRowException AddHandler oView.InvalidRowException, AddressOf View_InvalidRowException
AddHandler oView.ValidatingEditor, AddressOf View_ValidatingEditor AddHandler oView.ValidatingEditor, AddressOf View_ValidatingEditor
' These handlers are all used for the custom DefaultValue functionality ' These handlers are all used for the custom DefaultValue functionality, additionally some code in the 'InitNewRow' event.
' https://supportcenter.devexpress.com/ticket/details/t1035580/how-to-default-a-value-in-a-column-when-add-new-row-in-data-grid ' https://supportcenter.devexpress.com/ticket/details/t1035580/how-to-default-a-value-in-a-column-when-add-new-row-in-data-grid
AddHandler oView.ShowingEditor, AddressOf View_ShowingEditor AddHandler oView.ShowingEditor, AddressOf View_ShowingEditor
AddHandler oView.ShownEditor, AddressOf View_ShownEditor AddHandler oView.ShownEditor, AddressOf View_ShownEditor
@@ -647,12 +659,13 @@ Public Class ClassControlCreator
Return oControl Return oControl
End Function End Function
Private Shared newRowModified As Boolean Private Shared newRowModified As Boolean = False
Private Shared Sub View_ShowingEditor(sender As Object, e As CancelEventArgs) Private Shared Sub View_ShowingEditor(sender As Object, e As CancelEventArgs)
Dim view As GridView = TryCast(sender, GridView) Dim view As GridView = TryCast(sender, GridView)
Logger.Debug("Showing editor.")
If view.IsNewItemRow(view.FocusedRowHandle) AndAlso Not newRowModified Then If view.IsNewItemRow(view.FocusedRowHandle) AndAlso Not newRowModified Then
Logger.Debug("Adding new row.")
view.AddNewRow() view.AddNewRow()
End If End If
End Sub End Sub
@@ -660,8 +673,9 @@ Public Class ClassControlCreator
Private Shared Sub View_ShownEditor(sender As Object, e As EventArgs) Private Shared Sub View_ShownEditor(sender As Object, e As EventArgs)
Dim view As GridView = TryCast(sender, GridView) Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(view.FocusedRowHandle) Then If view.IsNewItemRow(view.FocusedRowHandle) Then
Logger.Debug("Attaching Modified Handler.")
AddHandler view.ActiveEditor.Modified, Sub() AddHandler view.ActiveEditor.Modified, Sub()
LOGGER.Debug("Row was modified") Logger.Debug("Row was modified.")
newRowModified = True newRowModified = True
End Sub End Sub
End If End If
@@ -670,12 +684,11 @@ Public Class ClassControlCreator
Private Shared Sub View_ValidateRow(sender As Object, e As ValidateRowEventArgs) Private Shared Sub View_ValidateRow(sender As Object, e As ValidateRowEventArgs)
Dim view As GridView = TryCast(sender, GridView) Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(e.RowHandle) AndAlso Not newRowModified Then If view.IsNewItemRow(e.RowHandle) AndAlso Not newRowModified Then
LOGGER.Debug("Deleting unused row") Logger.Debug("Deleting unused row")
view.DeleteRow(e.RowHandle) view.DeleteRow(e.RowHandle)
End If End If
LOGGER.Debug("Validating row. Resetting Modified.") Logger.Debug("Validating row. Resetting Modified.")
newRowModified = False newRowModified = False
End Sub End Sub
@@ -737,7 +750,7 @@ Public Class ClassControlCreator
CURRENT_CONTROL_ID = row("GUID") CURRENT_CONTROL_ID = row("GUID")
CURR_CON_ID = IIf(IsDBNull(row("CONNECTION_ID")), 0, row("CONNECTION_ID")) CURR_CON_ID = IIf(IsDBNull(row("CONNECTION_ID")), 0, row("CONNECTION_ID"))
If CURR_CON_ID = 0 Then If CURR_CON_ID = 0 Then
LOGGER.Info("CONNECTION NOT DEFINED - CTRL_GUID:" & CURRENT_CONTROL_ID) Logger.Info("CONNECTION NOT DEFINED - CTRL_GUID:" & CURRENT_CONTROL_ID)
End If End If
CURR_SELECT_CONTROL = IIf(IsDBNull(row("SQL_UEBERPRUEFUNG")), "", row("SQL_UEBERPRUEFUNG")) CURR_SELECT_CONTROL = IIf(IsDBNull(row("SQL_UEBERPRUEFUNG")), "", row("SQL_UEBERPRUEFUNG"))
@@ -748,8 +761,8 @@ Public Class ClassControlCreator
Return 0 Return 0
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
LOGGER.Info("Unexpected Error in GET_CONTROL_PROPERTIES (" & ControlName & "):" & ex.Message) Logger.Info("Unexpected Error in GET_CONTROL_PROPERTIES (" & ControlName & "):" & ex.Message)
Return 0 Return 0
End Try End Try
@@ -775,8 +788,8 @@ Public Class ClassControlCreator
Return Nothing Return Nothing
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
LOGGER.Info("Unexpected Error in GET_CONTROL_PROPERTY (" & ControlGUID & "#" & ColNAME & "):" & ex.Message) Logger.Info("Unexpected Error in GET_CONTROL_PROPERTY (" & ControlGUID & "#" & ColNAME & "):" & ex.Message)
Return Nothing Return Nothing
End Try End Try
@@ -795,8 +808,8 @@ Public Class ClassControlCreator
Return True Return True
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
LOGGER.Info("Unexpected Error in GET_DEPENDING_CONTROLS (" & ControlName & "):" & ex.Message) Logger.Info("Unexpected Error in GET_DEPENDING_CONTROLS (" & ControlName & "):" & ex.Message)
Return 0 Return 0
End Try End Try
End Function End Function
@@ -816,8 +829,8 @@ Public Class ClassControlCreator
Return Nothing Return Nothing
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
LOGGER.Info("Unexpected Error in GET_CONNECTION_INFO (" & CON_ID.ToString & "):" & ex.Message) Logger.Info("Unexpected Error in GET_CONNECTION_INFO (" & CON_ID.ToString & "):" & ex.Message)
Return Nothing Return Nothing
End Try End Try
@@ -841,7 +854,7 @@ Public Class ClassControlCreator
oColumnDictionary.Add(pColumnName, oRepositoryItem) oColumnDictionary.Add(pColumnName, oRepositoryItem)
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
End Sub End Sub
@@ -914,15 +927,15 @@ Public Class ClassControlCreator
Exit For Exit For
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
Next Next
' === End ' === End
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
LOGGER.Info("Unexpected Error in Display SQL result for grid column: " & oRow.Item("CONTROL_ID") & " - ERROR: " & ex.Message) Logger.Info("Unexpected Error in Display SQL result for grid column: " & oRow.Item("CONTROL_ID") & " - ERROR: " & ex.Message)
End Try End Try
Next Next
End If End If
@@ -967,7 +980,7 @@ Public Class ClassControlCreator
End If End If
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) Logger.Error(ex)
End Try End Try
If oIsRequired And pValue.ToString = "" Then If oIsRequired And pValue.ToString = "" Then

View File

@@ -763,6 +763,8 @@ Public Class frmValidator
Dim oTabIndexCounter As Integer = 0 Dim oTabIndexCounter As Integer = 0
ClassControlCreator.Logger = LOGCONFIG.GetLoggerFor("ControlCreator")
For Each oControlRow As DataRow In DT_CONTROLS.Rows For Each oControlRow As DataRow In DT_CONTROLS.Rows
Dim oMyControl As Control Dim oMyControl As Control
Dim oControlID = oControlRow.Item("GUID") Dim oControlID = oControlRow.Item("GUID")
@@ -3214,8 +3216,7 @@ Public Class frmValidator
Exit Select Exit Select
Else Else
LOGGER.Debug("No Default Value for Checkbox - so using false!") LOGGER.Debug("No Default Value for Checkbox - so using false!")
myCheckBox.Checked = False myCheckBox.CheckState = CheckState.Indeterminate
myCheckBox.CheckState = CheckState.Unchecked
End If End If
@@ -4616,6 +4617,7 @@ Public Class frmValidator
End Try End Try
Case "System.Windows.Forms.DateTimePicker" Case "System.Windows.Forms.DateTimePicker"
Try
Dim dtp As DateTimePicker = oControl Dim dtp As DateTimePicker = oControl
'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss 'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss
If oIsRequired = True And dtp.Value.ToString = String.Empty Then If oIsRequired = True And dtp.Value.ToString = String.Empty Then
@@ -4684,7 +4686,12 @@ Public Class frmValidator
Else Else
LOGGER.Debug("DateValue is 01.01.0001 00:00:00") LOGGER.Debug("DateValue is 01.01.0001 00:00:00")
End If End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
Case "System.Windows.Forms.CheckBox" Case "System.Windows.Forms.CheckBox"
Try
Dim chk As CheckBox = oControl Dim chk As CheckBox = oControl
oMyInput = chk.Checked.ToString oMyInput = chk.Checked.ToString
@@ -4775,10 +4782,12 @@ Public Class frmValidator
End If End If
End If End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
Case "System.Windows.Forms.DataGridView" Case "System.Windows.Forms.DataGridView"
Try
Dim dgv As DataGridView = oControl Dim dgv As DataGridView = oControl
Dim Zeilen As Integer = 0 Dim Zeilen As Integer = 0
@@ -4854,8 +4863,12 @@ Public Class frmValidator
End If End If
'Jetzt die Datei indexieren 'Jetzt die Datei indexieren
End If End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
Case "DevExpress.XtraGrid.GridControl" Case "DevExpress.XtraGrid.GridControl"
Try
Dim dgv As GridControl = oControl Dim dgv As GridControl = oControl
Dim oRowCount As Integer = dgv.DataSource.Rows.Count Dim oRowCount As Integer = dgv.DataSource.Rows.Count
@@ -4971,6 +4984,9 @@ Public Class frmValidator
End If End If
End If End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Select End Select
End If 'End If für Control und ReadOnly = False End If 'End If für Control und ReadOnly = False
Next Next