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
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
Dim oDatatable As New DataTable
Dim oView As DevExpress.XtraGrid.Views.Grid.GridView
Dim oView As GridView
oControl.ForceInitialize()
@ -555,19 +555,23 @@ Public Class ClassControlCreator
Where r.Item("SPALTENNAME") = oCol.ColumnName
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 oValue = NotNull(oView.GetRowCellValue(e.RowHandle, oCol.ColumnName), "")
If oIsRequired And oValue = "" Then
oView.SetColumnError(oGridColumn, "Spalte muss ausgefüllt werden!")
e.Valid = False
e.ErrorText = $"Spalte {oColumn.Item("SPALTEN_HEADER")} muss ausgefüllt werden!"
Exit For
End If
Next
End Sub
AddHandler oView.InvalidRowException, Sub(sender As Object, e As InvalidRowExceptionEventArgs)
e.ExceptionMode = ExceptionMode.DisplayError
e.ExceptionMode = ExceptionMode.NoAction
End Sub
AddHandler oView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs)

View File

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