diff --git a/app/DD_PM_WINDREAM/ClassControlCreator.vb b/app/DD_PM_WINDREAM/ClassControlCreator.vb index bf55378..cacfa07 100644 --- a/app/DD_PM_WINDREAM/ClassControlCreator.vb +++ b/app/DD_PM_WINDREAM/ClassControlCreator.vb @@ -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) diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index c738158..ec1cd2b 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -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)