fix nullvalue error

This commit is contained in:
Jonathan Jenne 2019-02-13 11:05:43 +01:00
parent 01acaa5e48
commit eeadc9ab75
2 changed files with 57 additions and 56 deletions

View File

@ -1894,42 +1894,41 @@ Public Class frmValidator
End Function End Function
Sub FillIndexValues() Sub FillIndexValues()
Dim controltype As String Dim oControlType As String
Dim indexname As String Dim oIndexName As String
Dim resultvalue
Try Try
If DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.Rows.Count > 0 Then If DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.Rows.Count > 0 Then
Dim oCount As Integer = 0 Dim oCount As Integer = 0
For Each oControl As Control In Me.pnldesigner.Controls For Each oControl As Control In Me.pnldesigner.Controls
Dim CONTROL_ID = oControl.Tag Dim oControlId = oControl.Tag
Dim controlRow = (From form In DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.AsEnumerable() Dim oControlRow = (From form In DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.AsEnumerable()
Select form Select form
Where form.Item("GUID") = CONTROL_ID).Single() Where form.Item("GUID") = oControlId).Single()
Dim Type As String = oControl.GetType.ToString Dim oType As String = oControl.GetType.ToString
Dim Typ As String = controlRow.Item("CTRL_TYPE") Dim oTyp As String = oControlRow.Item("CTRL_TYPE")
Dim oWMIndexName As String = controlRow.Item("INDEX_NAME") Dim oWMIndexName As String = oControlRow.Item("INDEX_NAME")
' Wenn kein defaultValue existiert, leeren String setzen ' Wenn kein defaultValue existiert, leeren String setzen
Dim defaultValue As String = NotNull(controlRow.Item("DEFAULT_VALUE"), String.Empty) Dim oDefaultValue As String = NotNull(oControlRow.Item("DEFAULT_VALUE"), String.Empty)
indexname = oWMIndexName oIndexName = oWMIndexName
Dim LoadIDX As Boolean = controlRow.Item("LOAD_IDX_VALUE") Dim oLoadIndex As Boolean = oControlRow.Item("LOAD_IDX_VALUE")
If LogErrorsOnly = False Then ClassLogger.Add(" >> INDEX: " & oWMIndexName & " - CONTROLNAME: " & oControl.Name & " - LOAD IDXVALUES: " & LoadIDX.ToString, False) If LogErrorsOnly = False Then ClassLogger.Add(" >> INDEX: " & oWMIndexName & " - CONTROLNAME: " & oControl.Name & " - LOAD IDXVALUES: " & oLoadIndex.ToString, False)
_CURRENT_INDEX_ARRAY(oCount, 0) = oWMIndexName _CURRENT_INDEX_ARRAY(oCount, 0) = oWMIndexName
Select Case Type Select Case oType
Case "System.Windows.Forms.TextBox" Case "System.Windows.Forms.TextBox"
Try Try
controltype = "Textbox" oControlType = "Textbox"
If oWMIndexName = "" Then If oWMIndexName = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical) MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For Exit For
End If End If
If oWMIndexName Is Nothing = False Then If oWMIndexName Is Nothing = False Then
If LoadIDX = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then If oLoadIndex = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then
' Wenn kein Index exisitiert, defaultValue laden ' Wenn kein Index exisitiert, defaultValue laden
oControl.Text = defaultValue oControl.Text = oDefaultValue
_CURRENT_INDEX_ARRAY(oCount, 1) = defaultValue _CURRENT_INDEX_ARRAY(oCount, 1) = oDefaultValue
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select Exit Select
End If End If
@ -1957,8 +1956,8 @@ Public Class frmValidator
End If End If
oControl.Text = NotNull(wertWD, defaultValue) oControl.Text = NotNull(wertWD, oDefaultValue)
_CURRENT_INDEX_ARRAY(oCount, 1) = NotNull(wertWD, defaultValue) _CURRENT_INDEX_ARRAY(oCount, 1) = NotNull(wertWD, oDefaultValue)
End If End If
Catch ex As Exception Catch ex As Exception
@ -1966,13 +1965,13 @@ Public Class frmValidator
My.Settings.Save() My.Settings.Save()
frmError.ShowDialog() frmError.ShowDialog()
ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValuesTextBox: " & ex.Message, True) ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValuesTextBox: " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False) ClassLogger.Add(">> Controltype: " & oControlType, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False) ClassLogger.Add(">> Indexname windream: " & oIndexName, False)
Exit Sub Exit Sub
End Try End Try
Case "System.Windows.Forms.ComboBox" Case "System.Windows.Forms.ComboBox"
controltype = "ComboBox" oControlType = "ComboBox"
Dim cmb As ComboBox = oControl Dim cmb As ComboBox = oControl
Try Try
If oWMIndexName = "" Then If oWMIndexName = "" Then
@ -1980,12 +1979,12 @@ Public Class frmValidator
Exit For Exit For
End If End If
If oWMIndexName Is Nothing = False Then If oWMIndexName Is Nothing = False Then
If LoadIDX = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then If oLoadIndex = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then
If defaultValue = String.Empty Then If oDefaultValue = String.Empty Then
cmb.SelectedIndex = -1 cmb.SelectedIndex = -1
Else Else
cmb.Text = defaultValue cmb.Text = oDefaultValue
_CURRENT_INDEX_ARRAY(oCount, 1) = defaultValue _CURRENT_INDEX_ARRAY(oCount, 1) = oDefaultValue
End If End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select Exit Select
@ -1999,13 +1998,13 @@ Public Class frmValidator
If wertWD Is Nothing Then If wertWD Is Nothing Then
If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert aus index {oWMIndexName}: Nothing", False) If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert aus index {oWMIndexName}: Nothing", False)
If defaultValue = String.Empty Then If oDefaultValue = String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert-defaultValue wurde nicht gefunden", False) If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert-defaultValue wurde nicht gefunden", False)
cmb.SelectedIndex = -1 cmb.SelectedIndex = -1
Else Else
If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert-defaultValue wird geladen", False) If LogErrorsOnly = False Then ClassLogger.Add($" >> Indexwert-defaultValue wird geladen", False)
cmb.Text = defaultValue cmb.Text = oDefaultValue
_CURRENT_INDEX_ARRAY(oCount, 1) = defaultValue _CURRENT_INDEX_ARRAY(oCount, 1) = oDefaultValue
'cmb.SelectedIndex = cmb.FindStringExact(defaultValue) 'cmb.SelectedIndex = cmb.FindStringExact(defaultValue)
End If End If
Else Else
@ -2027,8 +2026,8 @@ Public Class frmValidator
End If End If
Catch ex As Exception Catch ex As Exception
ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValues(Combobox: " & cmb.Name & "): " & ex.Message, True) ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValues(Combobox: " & cmb.Name & "): " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False) ClassLogger.Add(">> Controltype: " & oControlType, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False) ClassLogger.Add(">> Indexname windream: " & oIndexName, False)
errormessage = "Unvorhergesehener Fehler bei FillIndexValues(Combobox: " & cmb.Name & "): " & vbNewLine & ex.Message & vbNewLine & "Check Logfile" errormessage = "Unvorhergesehener Fehler bei FillIndexValues(Combobox: " & cmb.Name & "): " & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save() My.Settings.Save()
frmError.ShowDialog() frmError.ShowDialog()
@ -2036,14 +2035,14 @@ Public Class frmValidator
End Try End Try
Case "System.Windows.Forms.DataGridView" Case "System.Windows.Forms.DataGridView"
controltype = "DataGridView" oControlType = "DataGridView"
Dim dgv As DataGridView = oControl Dim dgv As DataGridView = oControl
If oWMIndexName = "" Then If oWMIndexName = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical) MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For Exit For
End If End If
If oWMIndexName Is Nothing = False Then If oWMIndexName Is Nothing = False Then
If LoadIDX = False Then If oLoadIndex = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select Exit Select
End If End If
@ -2053,10 +2052,10 @@ Public Class frmValidator
If wertWD Is Nothing = False Then If wertWD Is Nothing = False Then
'Es wird gegen ein Vektorfeld nachindexiert 'Es wird gegen ein Vektorfeld nachindexiert
If wertWD.GetType.ToString.Contains("System.Object") Then If wertWD.GetType.ToString.Contains("System.Object") Then
Select Case Typ Select Case oTyp
'Tabellendarstellung 'Tabellendarstellung
Case "TABLE" Case "TABLE"
Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & CONTROL_ID) Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & oControlId)
Dim SpaltenWerte As String() Dim SpaltenWerte As String()
If dt.Rows.Count > 1 Then If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD For Each Zeile As Object In wertWD
@ -2108,7 +2107,7 @@ Public Class frmValidator
End If End If
Case "System.Windows.Forms.CheckBox" Case "System.Windows.Forms.CheckBox"
controltype = "CheckBox" oControlType = "CheckBox"
If oWMIndexName = "" Then If oWMIndexName = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical) MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For Exit For
@ -2117,13 +2116,13 @@ Public Class frmValidator
Dim chk As CheckBox = oControl Dim chk As CheckBox = oControl
If LoadIDX = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then If oLoadIndex = False Or oWMIndexName = "DD PM-ONLY FOR DISPLAY" Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
If defaultValue <> String.Empty Then If oDefaultValue <> String.Empty Then
Dim result = False Dim result = False
_CURRENT_INDEX_ARRAY(oCount, 1) = "False" _CURRENT_INDEX_ARRAY(oCount, 1) = "False"
If Boolean.TryParse(defaultValue, result) Then If Boolean.TryParse(oDefaultValue, result) Then
chk.Checked = result chk.Checked = result
End If End If
@ -2142,14 +2141,14 @@ Public Class frmValidator
End If End If
_CURRENT_INDEX_ARRAY(oCount, 1) = wertWD.ToString _CURRENT_INDEX_ARRAY(oCount, 1) = wertWD.ToString
If wertWD Is Nothing Then If wertWD Is Nothing Then
ClassLogger.Add(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & indexname & "' ist nothing. Check defaultvalue", False) ClassLogger.Add(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Check defaultvalue", False)
chk.Checked = False chk.Checked = False
Else Else
If wertWD.ToString = "" Then If wertWD.ToString = "" Then
ClassLogger.Add(">> Versuch, default Value zu laden", False) ClassLogger.Add(">> Versuch, default Value zu laden", False)
If defaultValue <> String.Empty Then If oDefaultValue <> String.Empty Then
Dim result = False Dim result = False
If Boolean.TryParse(defaultValue, result) Then If Boolean.TryParse(oDefaultValue, result) Then
ClassLogger.Add(">> defaultValue wurde geladen", False) ClassLogger.Add(">> defaultValue wurde geladen", False)
chk.Checked = result chk.Checked = result
Else Else
@ -2191,27 +2190,29 @@ Public Class frmValidator
End If End If
Case "DigitalData.Controls.LookupGrid.LookupControl" Case "DigitalData.Controls.LookupGrid.LookupControl"
Try Try
Dim lookup As LookupControl = oControl Dim oLookup As LookupControl = oControl
Dim wertWD = aktivesDokument.GetVariableValue(oWMIndexName) Dim oWindreamValue = aktivesDokument.GetVariableValue(oWMIndexName)
If IsNothing(wertWD) Then If IsNothing(oWindreamValue) Then
lookup.SelectedValues = New List(Of String) oLookup.SelectedValues = New List(Of String)
ElseIf wertWD.GetType.ToString.Contains("System.Object") Then _CURRENT_INDEX_ARRAY(oCount, 1) = String.Empty
ElseIf oWindreamValue.GetType.ToString.Contains("System.Object") Then
Dim oArrlist As New List(Of String) Dim oArrlist As New List(Of String)
For Each oVectorRow As Object In wertWD For Each oVectorRow As Object In oWindreamValue
oArrlist.Add(oVectorRow.ToString) oArrlist.Add(oVectorRow.ToString)
Next Next
lookup.SelectedValues = oArrlist oLookup.SelectedValues = oArrlist
_CURRENT_INDEX_ARRAY(oCount, 1) = oWindreamValue.ToString
End If End If
_CURRENT_INDEX_ARRAY(oCount, 1) = wertWD.ToString
Catch ex As Exception Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message) ClassLogger.Add(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & oIndexName & " - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Add LookupControl:") MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Add LookupControl:")
End Try End Try
Case "System.Windows.Forms.DateTimePicker" Case "System.Windows.Forms.DateTimePicker"
controltype = "DateTimePicker" oControlType = "DateTimePicker"
Dim DTP As DateTimePicker = oControl Dim DTP As DateTimePicker = oControl
If oWMIndexName = "" Then If oWMIndexName = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical) MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & oControl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
@ -2278,8 +2279,8 @@ Public Class frmValidator
My.Settings.Save() My.Settings.Save()
frmError.ShowDialog() frmError.ShowDialog()
ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValues: " & ex.Message, True) ClassLogger.Add(">> Unvorhergesehener Fehler bei FillIndexValues: " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False) ClassLogger.Add(">> Controltype: " & oControlType, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False) ClassLogger.Add(">> Indexname windream: " & oIndexName, False)
End Try End Try