6 Commits

Author SHA1 Message Date
Developer01
574c13c9ab Index-Typ-Überprüfung in frmFormDesigner angepasst
Mehrere Funktionen zur Überprüfung von Index-Typen wurden geändert:
- Die Initialisierung der Variablen `oType` wurde vereinfacht.
- Eine neue Bedingung für `IndexName = "@@DISPLAY_ONLY"` wurde hinzugefügt, die die Funktion frühzeitig mit `0` beendet.
- Die bestehende Logik zur Bestimmung des Index-Typs bleibt unverändert.
2026-08-13 11:45:31 +02:00
Developer01
966d3f404d Eigenschaft Active hinzugefügt und Bugfixes
Die `Active`-Eigenschaft wurde in `ModuleControlProperties` hinzugefügt und an eine neue Position verschoben. Änderungen in `frmFormDesigner` ermöglichen die Zuweisung von `Active` basierend auf Datenquellenwerten.

In `frmMain` wurde die Methode `Reset_Current` hinzugefügt, um Dokumentzustände zurückzusetzen. Die Methode `Item_Scope` wurde erweitert, um zusätzliche Validierungen durchzuführen.

Ein Bugfix in `frmValidator` sorgt dafür, dass `SelectedValues` gelöscht werden, wenn keine neuen Werte vorhanden sind, und stattdessen `DefaultValue` verwendet wird. Kritische Schritte zur Sicherung und Wiederherstellung der `DataSource` wurden hinzugefügt. Logging-Nachrichten wurden verbessert.
2026-08-13 11:20:12 +02:00
Developer01
0e2bef27a4 TBTF_PROFILE_FILES_WORK leeren 2026-08-10 17:14:19 +02:00
Developer01
ffa97402ff Validierungslogik optimiert und Debug-Logs erweitert
Die Validierungslogik wurde flexibler gestaltet, indem die Bedingung
`pRegularComplete` eingeführt wurde. Wenn diese `False` ist, werden
bestimmte Validierungen übersprungen, und Debug-Nachrichten dokumentieren
das Verhalten.

- SQL-Löschoperationen erweitert, um zusätzliche Tabellen zu berücksichtigen.
- Prüfung auf `DBNull`-Werte bei `oValueFromSource` hinzugefügt.
- Validierungen für `LookupControl3`, Textboxen, ComboBoxen,
  DateTimePicker, CheckBoxen und DataGridViews angepasst.
- Debug-Logs in allen Validierungsfällen verbessert, um die Nachvollziehbarkeit
  zu erhöhen und unnötige Fehlermeldungen zu reduzieren.
2026-08-10 16:04:20 +02:00
Developer01
8d6a5500a9 Initialisierung von CURRENT_DOC_ID hinzugefügt
Die Variable `CURRENT_DOC_ID` wird nun im relevanten `If`-Block
auf `0` initialisiert. Dies stellt sicher, dass sie korrekt
gesetzt ist, wenn der Workflow ohne spezifisches Dokument
ausgeführt wird. Die Änderung verbessert die Konsistenz und
verhindert potenzielle Fehler durch nicht initialisierte Werte.
2026-08-10 16:03:19 +02:00
Developer01
74863a6914 V 2.9.7 2026-08-10 14:48:07 +02:00
5 changed files with 136 additions and 77 deletions

View File

@@ -33,6 +33,8 @@ Public Module ModuleControlProperties
<Category(ClassConstants.CAT_GENERAL)> <Category(ClassConstants.CAT_GENERAL)>
Public Property Name() As String Public Property Name() As String
<Category(ClassConstants.CAT_BEHAVIOUR)>
Public Property Active() As Boolean
<Category(ClassConstants.CAT_DISPLAY)> <Category(ClassConstants.CAT_DISPLAY)>
Public Property Location() As Point Public Property Location() As Point
@@ -120,9 +122,6 @@ Public Module ModuleControlProperties
Private _default_value Private _default_value
Friend _set_control_data As String Friend _set_control_data As String
<Category(ClassConstants.CAT_BEHAVIOUR)>
Public Property Active() As Boolean
<Category(ClassConstants.CAT_VALIDATION)> <Category(ClassConstants.CAT_VALIDATION)>
Public Property Required() As Boolean Public Property Required() As Boolean

View File

@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.9.6.0")> <Assembly: AssemblyVersion("2.9.7.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguage("")> <Assembly: NeutralResourcesLanguage("")>

View File

@@ -186,7 +186,10 @@ Public Class frmFormDesigner
End Function End Function
Private Function IsNotBooleanIndex(IndexName As String) As Boolean Private Function IsNotBooleanIndex(IndexName As String) As Boolean
Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) Dim oType As Integer
If IndexName = "@@DISPLAY_ONLY" Then
Return 0
End If
If IDB_ACTIVE = False Then If IDB_ACTIVE = False Then
oType = WINDREAM_MOD.GetIndexType(IndexName) oType = WINDREAM_MOD.GetIndexType(IndexName)
Else Else
@@ -196,7 +199,10 @@ Public Class frmFormDesigner
End Function End Function
Private Function IsNotDateIndex(IndexName As String) As Boolean Private Function IsNotDateIndex(IndexName As String) As Boolean
Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) Dim oType As Integer
If IndexName = "@@DISPLAY_ONLY" Then
Return 0
End If
If IDB_ACTIVE = False Then If IDB_ACTIVE = False Then
oType = WINDREAM_MOD.GetIndexType(IndexName) oType = WINDREAM_MOD.GetIndexType(IndexName)
Else Else
@@ -206,7 +212,10 @@ Public Class frmFormDesigner
End Function End Function
Private Function IsNotVectorBooleanIndex(IndexName As String) As Boolean Private Function IsNotVectorBooleanIndex(IndexName As String) As Boolean
Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) Dim oType As Integer
If IndexName = "@@DISPLAY_ONLY" Then
Return 0
End If
If IDB_ACTIVE = False Then If IDB_ACTIVE = False Then
oType = WINDREAM_MOD.GetIndexType(IndexName) oType = WINDREAM_MOD.GetIndexType(IndexName)
Else Else
@@ -216,7 +225,10 @@ Public Class frmFormDesigner
End Function End Function
Private Function IsNotVectorDateIndex(IndexName As String) As Boolean Private Function IsNotVectorDateIndex(IndexName As String) As Boolean
Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) Dim oType As Integer
If IndexName = "@@DISPLAY_ONLY" Then
Return 0
End If
If IDB_ACTIVE = False Then If IDB_ACTIVE = False Then
oType = WINDREAM_MOD.GetIndexType(IndexName) oType = WINDREAM_MOD.GetIndexType(IndexName)
Else Else
@@ -226,7 +238,10 @@ Public Class frmFormDesigner
End Function End Function
Private Function IsNotVectorDatetimeIndex(IndexName As String) As Boolean Private Function IsNotVectorDatetimeIndex(IndexName As String) As Boolean
Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) Dim oType As Integer
If IndexName = "@@DISPLAY_ONLY" Then
Return 0
End If
If IDB_ACTIVE = False Then If IDB_ACTIVE = False Then
oType = WINDREAM_MOD.GetIndexType(IndexName) oType = WINDREAM_MOD.GetIndexType(IndexName)
Else Else
@@ -589,7 +604,7 @@ Public Class frmFormDesigner
obj.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT")) obj.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
obj.ChangedAt = ClassAllgemeineFunktionen.NotNullDate(row.Item("CHANGED_WHEN"), Nothing) obj.ChangedAt = ClassAllgemeineFunktionen.NotNullDate(row.Item("CHANGED_WHEN"), Nothing)
obj.ChangedWho = ClassAllgemeineFunktionen.NotNullString(row.Item("CHANGED_WHO"), "") obj.ChangedWho = ClassAllgemeineFunktionen.NotNullString(row.Item("CHANGED_WHO"), "")
obj.Active = StrToBool(row.Item("CONTROL_ACTIVE"))
Dim oStyle As FontStyle = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_STYLE"), FontStyle.Regular) Dim oStyle As FontStyle = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_STYLE"), FontStyle.Regular)
Dim oSize As Single = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_SIZE"), 10) Dim oSize As Single = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_SIZE"), 10)
Dim oFamilyString As String = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_FAMILY"), "Arial") Dim oFamilyString As String = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_FAMILY"), "Arial")

View File

@@ -2134,6 +2134,12 @@ Public Class frmMain
End If End If
End Try End Try
End Sub End Sub
Private Sub Reset_Current()
CURRENT_JUMP_DOC_GUID = 0
CURRENT_DOC_GUID = 0
CURRENT_DOC_ID = 0
End Sub
Private Async Function Item_Scope(startedFrom As String) As Task Private Async Function Item_Scope(startedFrom As String) As Task
' ========== FRÜHE VALIDIERUNGEN (VOR UI-ÄNDERUNGEN) ========== ' ========== FRÜHE VALIDIERUNGEN (VOR UI-ÄNDERUNGEN) ==========
If Application.OpenForms().OfType(Of frmValidator).Any Then If Application.OpenForms().OfType(Of frmValidator).Any Then
@@ -2392,6 +2398,7 @@ Public Class frmMain
' GRUPPE: Workflow ohne spezifisches Dokument ' GRUPPE: Workflow ohne spezifisches Dokument
CURRENT_JUMP_DOC_GUID = 0 CURRENT_JUMP_DOC_GUID = 0
CURRENT_DOC_GUID = 0 CURRENT_DOC_GUID = 0
CURRENT_DOC_ID = 0
CURRENT_ProfilGUID = CURRENT_CLICKED_PROFILE_ID CURRENT_ProfilGUID = CURRENT_CLICKED_PROFILE_ID
LOGGER.Debug($"Item_Scope: hitInfo.InGroupRow...CURRENT_CLICKED_PROFILE_ID [{CURRENT_CLICKED_PROFILE_ID}]") LOGGER.Debug($"Item_Scope: hitInfo.InGroupRow...CURRENT_CLICKED_PROFILE_ID [{CURRENT_CLICKED_PROFILE_ID}]")
Load_Profil_from_Grid(CURRENT_CLICKED_PROFILE_ID) Load_Profil_from_Grid(CURRENT_CLICKED_PROFILE_ID)

View File

@@ -813,7 +813,9 @@ Public Class frmValidator
Try Try
Dim oSQL As String Dim oSQL As String
oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};" oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};" & vbCrLf &
$"DELETE FROM TBPM_VALIDATION_PROFILE_GROUP_USER WHERE UserID = {USER_ID};" & vbCrLf &
$"DELETE FROM TBTF_PROFILE_FILES_WORK WHERE Action_UserID = {USER_ID};"
DatabaseFallback.ExecuteNonQueryECM(oSQL) DatabaseFallback.ExecuteNonQueryECM(oSQL)
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
@@ -5304,8 +5306,8 @@ Public Class frmValidator
oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride) oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride)
End If End If
If oValueFromSource Is Nothing Then If oValueFromSource Is Nothing Or IsDBNull(oValueFromSource) Then
MyValidationLogger.Debug($"oMyComboBox {oMyCombobox.Name} - Indexvalue from index {oSourceIndexName}: Nothing") MyValidationLogger.Debug($"oMyComboBox {oMyCombobox.Name} - Indexvalue from index {oSourceIndexName} is Nothing or DBNull")
If oDefaultValue = String.Empty Then If oDefaultValue = String.Empty Then
MyValidationLogger.Debug($"oMyComboBox {oMyCombobox.Name}-defaultValue wurde nicht gefunden") MyValidationLogger.Debug($"oMyComboBox {oMyCombobox.Name}-defaultValue wurde nicht gefunden")
oMyCombobox.SelectedIndex = -1 oMyCombobox.SelectedIndex = -1
@@ -5806,19 +5808,19 @@ Public Class frmValidator
oNewValues = New List(Of String) From {oValueFromSource.ToString} oNewValues = New List(Of String) From {oValueFromSource.ToString}
End If End If
Else Else
' ========== BUGFIX START: Wenn KEIN neuer Wert, alte Werte behalten ========== ' ========== BUGFIX START: Wenn KEIN neuer Wert, SelectedValues LÖSCHEN ==========
If hadPreviousSelection AndAlso previousSelectedValues IsNot Nothing AndAlso previousSelectedValues.Count > 0 Then If oDefaultValue <> String.Empty Then
MyValidationLogger.Debug($"[FillIndexValues BUGFIX] Lookup [{oLookupMeta.Name}]: Kein neuer Wert von Quelle → alte Werte BEHALTEN") MyValidationLogger.Debug($"[FillIndexValues] Lookup [{oLookupMeta.Name}]: Verwende DefaultValue = [{oDefaultValue}]")
oNewValues = previousSelectedValues
ElseIf oDefaultValue <> String.Empty Then
MyValidationLogger.Debug($"[FillIndexValues BUGFIX] Lookup [{oLookupMeta.Name}]: Keine alten Werte, verwende DefaultValue = [{oDefaultValue}]")
oNewValues = oDefaultValue.Split(",").ToList() oNewValues = oDefaultValue.Split(",").ToList()
Else Else
MyValidationLogger.Debug($"[FillIndexValues BUGFIX] Lookup [{oLookupMeta.Name}]: KEINE Werte (oValueFromSource=Nothing, oDefaultValue leer, keine vorherigen Werte)") ' WICHTIG: Keine alten Werte mehr übernehmen! → oNewValues bleibt Nothing
MyValidationLogger.Debug($"[FillIndexValues] Lookup [{oLookupMeta.Name}]: Kein Index-Wert vorhanden → SelectedValues werden gelöscht")
oNewValues = Nothing
End If End If
' ========== BUGFIX END: Wert-Beibehaltung ========== ' ========== BUGFIX END: Alte Werte werden NICHT mehr beibehalten ==========
End If End If
' ========== KRITISCH: DataSource-Backup erstellen BEVOR SelectedValues gelöscht wird ========== ' ========== KRITISCH: DataSource-Backup erstellen BEVOR SelectedValues gelöscht wird ==========
Dim savedDataSource = oLookup.Properties.DataSource Dim savedDataSource = oLookup.Properties.DataSource
MyValidationLogger.Debug($"[FillIndexValues BUGFIX] Lookup [{oLookupMeta.Name}]: DataSource-Backup erstellt") MyValidationLogger.Debug($"[FillIndexValues BUGFIX] Lookup [{oLookupMeta.Name}]: DataSource-Backup erstellt")
@@ -7084,13 +7086,18 @@ Public Class frmValidator
Case oControl.GetType = GetType(LookupControl3) Case oControl.GetType = GetType(LookupControl3)
Try Try
Dim lookup As LookupControl3 = oControl Dim lookup As LookupControl3 = oControl
If lookup.Properties.SelectedValues.Count = 0 And oIsRequired = True And pRegularComplete Then If lookup.Properties.SelectedValues.Count = 0 And oIsRequired = True Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] LookupGrid '{oControl.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = $"Pflichtfeld: Keine Auswahl getroffen in LookupGrid '{oControl.Name}'" oErrMsgMissingInput = $"Pflichtfeld: Keine Auswahl getroffen in LookupGrid '{oControl.Name}'"
MyValidationLogger.Warn($"⚠️ {oErrMsgMissingInput}") MyValidationLogger.Warn($"⚠️ {oErrMsgMissingInput}")
oControl.BackColor = Color.Red oControl.BackColor = Color.Red
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If
Else Else
If lookup.Properties.MultiSelect = True Then If lookup.Properties.MultiSelect = True Then
Dim oLookupRows As Integer = lookup.Properties.SelectedValues.Count Dim oLookupRows As Integer = lookup.Properties.SelectedValues.Count
@@ -7142,14 +7149,20 @@ Public Class frmValidator
End If End If
End If End If
Else Else
' Single-Select Lookup ' Single-Select Lookup
oMyInput = lookup.Properties.SelectedValues.FirstOrDefault() oMyInput = lookup.Properties.SelectedValues.FirstOrDefault()
If IsNothing(oMyInput) And oIsRequired = True And pRegularComplete Then If IsNothing(oMyInput) And oIsRequired = True Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] LookupGrid(SingleSelect) '{lookup.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = $"Could not get FirstOrDefault-Value of LookUpGrid! - LookUPGridName: {lookup.Name}" oErrMsgMissingInput = $"Could not get FirstOrDefault-Value of LookUpGrid! - LookUPGridName: {lookup.Name}"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If
ElseIf IsNothing(oMyInput) And oIsRequired = False Then ElseIf IsNothing(oMyInput) And oIsRequired = False Then
For Each ochangedLookub In listChangedLookup For Each ochangedLookub In listChangedLookup
If lookup.Name = ochangedLookub Then If lookup.Name = ochangedLookub Then
@@ -7280,13 +7293,18 @@ Public Class frmValidator
Exit For Exit For
End If End If
If Check_Missing_Control_Value(oControl, "txt") = True And oIsRequired = True And pRegularComplete Then If Check_Missing_Control_Value(oControl, "txt") = True And oIsRequired = True Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] TextEdit '{oControl.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = oWrongInputMessage & " textbox '" & oControl.Name & "'" oErrMsgMissingInput = oWrongInputMessage & " textbox '" & oControl.Name & "'"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
oControl.BackColor = Color.Red oControl.BackColor = Color.Red
frmError.ShowDialog() frmError.ShowDialog()
Exit For Exit For
End If
Else Else
MyValidationLogger.Debug("Reading current value from Textbox") MyValidationLogger.Debug("Reading current value from Textbox")
Dim oTextEdit As BaseEdit = DirectCast(oControl, BaseEdit) Dim oTextEdit As BaseEdit = DirectCast(oControl, BaseEdit)
@@ -7410,7 +7428,11 @@ Public Class frmValidator
Try Try
MyValidationLogger.Debug($"Working on Combobox...") MyValidationLogger.Debug($"Working on Combobox...")
Dim cmb As Windows.Forms.ComboBox = oControl Dim cmb As Windows.Forms.ComboBox = oControl
If cmb.SelectedIndex = -1 And oIsRequired = True And pRegularComplete Then If cmb.SelectedIndex = -1 And oIsRequired = True Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] ComboBox '{cmb.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = "Please Choose an entry out of ComboBox '" & cmb.Name & "'" oErrMsgMissingInput = "Please Choose an entry out of ComboBox '" & cmb.Name & "'"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
@@ -7420,6 +7442,7 @@ Public Class frmValidator
End If End If
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If
Else Else
oMyInput = cmb.Text oMyInput = cmb.Text
MyValidationLogger.Debug($"inputvalue Combobox: {cmb.Text}") MyValidationLogger.Debug($"inputvalue Combobox: {cmb.Text}")
@@ -7545,7 +7568,11 @@ Public Class frmValidator
Case oControl.GetType = GetType(DateTimePicker) Case oControl.GetType = GetType(DateTimePicker)
Try Try
Dim dtp As DateTimePicker = oControl Dim dtp As DateTimePicker = oControl
If oIsRequired = True And dtp.Value.ToString = String.Empty And pRegularComplete Then If oIsRequired = True And dtp.Value.ToString = String.Empty Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] DateTimePicker '{dtp.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = "Please Choose DateValue for field'" & dtp.Name & "'" oErrMsgMissingInput = "Please Choose DateValue for field'" & dtp.Name & "'"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
@@ -7555,6 +7582,7 @@ Public Class frmValidator
End If End If
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If
ElseIf dtp.Value.ToString <> "01.01.0001 00:00:00" Then ElseIf dtp.Value.ToString <> "01.01.0001 00:00:00" Then
oMyInput = CDate(dtp.Value) oMyInput = CDate(dtp.Value)
Dim oObjectValue Dim oObjectValue
@@ -7641,7 +7669,11 @@ Public Class frmValidator
Dim chk As CheckBox = oControl Dim chk As CheckBox = oControl
oMyInput = chk.Checked.ToString oMyInput = chk.Checked.ToString
If chk.CheckState = CheckState.Indeterminate And oIsRequired = True And pRegularComplete Then If chk.CheckState = CheckState.Indeterminate And oIsRequired = True Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] CheckBox '{chk.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = "Please set Checkbox value for field '" & chk.Name & "'" oErrMsgMissingInput = "Please set Checkbox value for field '" & chk.Name & "'"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
@@ -7652,6 +7684,7 @@ Public Class frmValidator
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If End If
End If
Dim WertWD As String Dim WertWD As String
Dim oBoolValue As Boolean Dim oBoolValue As Boolean
@@ -7759,7 +7792,11 @@ Public Class frmValidator
Zeilen += 1 Zeilen += 1
End If End If
Next Next
If oIsRequired = True And Zeilen = 0 And pRegularComplete Then If oIsRequired = True And Zeilen = 0 Then
If pRegularComplete = False Then
MyValidationLogger.Debug($"[CHECK_UPDATE] DataGridView '{dgv.Name}' is required but has no selection. Skipping due to pRegularComplete=False.")
Continue For
Else
oMissing = True oMissing = True
oErrMsgMissingInput = "Fehlende Eingabe in Vektorfeld '" & dgv.Name & "'" oErrMsgMissingInput = "Fehlende Eingabe in Vektorfeld '" & dgv.Name & "'"
MyValidationLogger.Warn(oErrMsgMissingInput) MyValidationLogger.Warn(oErrMsgMissingInput)
@@ -7769,6 +7806,7 @@ Public Class frmValidator
End If End If
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
Exit For Exit For
End If
ElseIf Zeilen > 0 Then ElseIf Zeilen > 0 Then
Dim ZeilenGrid As Integer = 0 Dim ZeilenGrid As Integer = 0
Dim myVektorArr As String() Dim myVektorArr As String()