improve validation, switch to inline error marker again

This commit is contained in:
Jonathan Jenne 2021-03-24 14:29:47 +01:00
parent 4e01de4f66
commit 7a976ac08b
2 changed files with 42 additions and 29 deletions

View File

@ -409,7 +409,7 @@ Public Class ClassControlCreator
Public Shared Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl Public Shared Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode) Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
Dim oDatatable As New DataTable Dim oDatatable As New DataTable
Dim oView As DevExpress.XtraGrid.Views.Grid.GridView Dim oView As GridView
oControl.ForceInitialize() oControl.ForceInitialize()
@ -555,19 +555,23 @@ Public Class ClassControlCreator
Where r.Item("SPALTENNAME") = oCol.ColumnName Where r.Item("SPALTENNAME") = oCol.ColumnName
Select r).FirstOrDefault() Select r).FirstOrDefault()
Dim oGridColumn As GridColumn = (From c As GridColumn In oView.Columns
Where c.FieldName = oCol.ColumnName
Select c).FirstOrDefault()
Dim oIsRequired = oColumn.Item("VALIDATION") Dim oIsRequired = oColumn.Item("VALIDATION")
Dim oValue = NotNull(oView.GetRowCellValue(e.RowHandle, oCol.ColumnName), "") Dim oValue = NotNull(oView.GetRowCellValue(e.RowHandle, oCol.ColumnName), "")
If oIsRequired And oValue = "" Then If oIsRequired And oValue = "" Then
oView.SetColumnError(oGridColumn, "Spalte muss ausgefüllt werden!")
e.Valid = False e.Valid = False
e.ErrorText = $"Spalte {oColumn.Item("SPALTEN_HEADER")} muss ausgefüllt werden!"
Exit For Exit For
End If End If
Next Next
End Sub End Sub
AddHandler oView.InvalidRowException, Sub(sender As Object, e As InvalidRowExceptionEventArgs) AddHandler oView.InvalidRowException, Sub(sender As Object, e As InvalidRowExceptionEventArgs)
e.ExceptionMode = ExceptionMode.DisplayError e.ExceptionMode = ExceptionMode.NoAction
End Sub End Sub
AddHandler oView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs) AddHandler oView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs)

View File

@ -3672,6 +3672,14 @@ Public Class frmValidator
btnSave.Enabled = False btnSave.Enabled = False
' TODO: Use when working on Validation ' TODO: Use when working on Validation
If ForceGridValidation() = True Then
Finish_WFStep()
End If
btnSave.Enabled = True
End Sub
Private Function ForceGridValidation()
Dim oValidation As Boolean = True Dim oValidation As Boolean = True
Dim oGrids = (From oControl In pnldesigner.Controls Dim oGrids = (From oControl In pnldesigner.Controls
Where TypeOf oControl Is GridControl Where TypeOf oControl Is GridControl
@ -3684,26 +3692,19 @@ Public Class frmValidator
Continue For Continue For
End If End If
For index = 0 To oView.RowCount - 1 If oView.UpdateCurrentRow() = False Then
oView.FocusedRowHandle = index oValidation = False
Return False
If oView.UpdateCurrentRow() = False Then End If
oValidation = False
Exit For
End If
Next
If oValidation = False Then If oValidation = False Then
Exit For Return False
End If End If
Next Next
If oValidation = True Then Return True
Finish_WFStep() End Function
End If
btnSave.Enabled = True
End Sub
Private Function btnFinish_continue() Private Function btnFinish_continue()
Try Try
Dim oSQL = PROFIL_FINISH_SQL Dim oSQL = PROFIL_FINISH_SQL
@ -5407,11 +5408,16 @@ Public Class frmValidator
End Sub End Sub
Private Sub bbtniNext_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniNext.ItemClick Private Sub bbtniNext_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniNext.ItemClick
Datei_ueberspringen() If ForceGridValidation() = True Then
Datei_ueberspringen()
End If
End Sub End Sub
Private Sub bbtniDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniDelete.ItemClick Private Sub bbtniDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniDelete.ItemClick
delete_active_File() If ForceGridValidation() = True Then
delete_active_File()
End If
End Sub End Sub
Private Sub bbtniAnnotation_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniAnnotation.ItemClick Private Sub bbtniAnnotation_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtniAnnotation.ItemClick
@ -5423,16 +5429,19 @@ Public Class frmValidator
End Sub End Sub
Private Sub BbtnItm_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BbtnItm.ItemClick Private Sub BbtnItm_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BbtnItm.ItemClick
Dim oRESULT As String If ForceGridValidation() = True Then
If USER_LANGUAGE = "de-DE" Then Dim oRESULT As String
oRESULT = "Eingaben gespeichert"
Else If USER_LANGUAGE = "de-DE" Then
oRESULT = "Eingaben gespeichert" oRESULT = "Eingaben gespeichert"
End If Else
If Check_UpdateIndexe() = True Then oRESULT = "Eingaben gespeichert"
SetStatusLabel($"Data saved", "LimeGreen") End If
Else If Check_UpdateIndexe() = True Then
SetStatusLabel($"Error while saving data!", "Red") SetStatusLabel($"Data saved", "LimeGreen")
Else
SetStatusLabel($"Error while saving data!", "Red")
End If
End If End If
End Sub End Sub
Private Sub SaveDevExpressGridControl_Layout(pProfilID As Integer, pControlID As Integer, pGridView As DevExpress.XtraGrid.Views.Grid.GridView) Private Sub SaveDevExpressGridControl_Layout(pProfilID As Integer, pControlID As Integer, pGridView As DevExpress.XtraGrid.Views.Grid.GridView)