jj
This commit is contained in:
parent
00dd5fd2e1
commit
1e37da9749
@ -1663,6 +1663,142 @@ Public Class frmValidator
|
|||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
Private Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean, vType As Object)
|
||||||
|
Dim ValueArray()
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim missing As Boolean = False
|
||||||
|
Dim Anzahl As Integer = 0
|
||||||
|
|
||||||
|
'Jeden Wert des Vektorfeldes durchlaufen
|
||||||
|
Dim wertWD = oDocument.GetVariableValue(vktIndexName)
|
||||||
|
If wertWD Is Nothing = False Then
|
||||||
|
'Nochmals prüfen ob wirklich Array
|
||||||
|
If wertWD.GetType.ToString.Contains("System.Object") Then
|
||||||
|
'Keine Duplikatprüfung also einfach neues Array füllen
|
||||||
|
If CheckDuplikat = False Then
|
||||||
|
For Each value As Object In wertWD
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, value)
|
||||||
|
Anzahl += 1
|
||||||
|
Next
|
||||||
|
'Und jetzt den/die Neuen Wert(e) anfügen
|
||||||
|
For Each NewValue As Object In NIIndexe
|
||||||
|
If NewValue Is Nothing = False Then
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, NewValue)
|
||||||
|
Anzahl += 1
|
||||||
|
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
|
||||||
|
'Duplikat Prüfung an, also nur anhängen wenn Wert <>
|
||||||
|
For Each WDValue As Object In wertWD
|
||||||
|
If WDValue Is Nothing = False Then
|
||||||
|
'Erst einmal die ALten Werte schreiben
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, WDValue)
|
||||||
|
Anzahl += 1
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
'Jetzt die Neuen Werte auf Duplikate überprüfen
|
||||||
|
For Each NewValue As Object In NIIndexe
|
||||||
|
If NewValue Is Nothing = False Then
|
||||||
|
If ValueArray.Contains(NewValue) = False Then
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, NewValue)
|
||||||
|
Anzahl += 1
|
||||||
|
Else
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
'Den/die Neuen Wert(e) anfügen
|
||||||
|
For Each NewValue As Object In NIIndexe
|
||||||
|
If NewValue Is Nothing = False Then
|
||||||
|
If CheckDuplikat = True Then
|
||||||
|
If ValueArray Is Nothing = False Then
|
||||||
|
If ValueArray.Contains(NewValue) = False Then
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, NewValue)
|
||||||
|
Anzahl += 1
|
||||||
|
Else
|
||||||
|
End If
|
||||||
|
Else 'Dererste Wert, also hinzufügen
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, NewValue)
|
||||||
|
Anzahl += 1
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Else
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve ValueArray(Anzahl)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
ValueArray(Anzahl) = ConvertVectorType(vType, NewValue)
|
||||||
|
Anzahl += 1
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return ValueArray
|
||||||
|
Catch ex As Exception
|
||||||
|
Return valueArray
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function ConvertVectorType(vType As Object, value As String)
|
||||||
|
Select Case vType
|
||||||
|
Case 36865 ' 36865
|
||||||
|
'Umwandeln in String
|
||||||
|
Return value
|
||||||
|
Case 4097 '4097
|
||||||
|
'Umwandeln in String
|
||||||
|
Return value
|
||||||
|
Case 4098 '4098
|
||||||
|
'Umwandeln in Integer
|
||||||
|
value = value.Replace(" ", "")
|
||||||
|
Return CInt(value)
|
||||||
|
Case 4099 '4099
|
||||||
|
value = value.
|
||||||
|
Replace(" ", "").
|
||||||
|
Replace(".", ",")
|
||||||
|
'Umwandeln in Double
|
||||||
|
Return CDbl(value)
|
||||||
|
Case 4100 '4100
|
||||||
|
'Umwandeln in Boolean
|
||||||
|
Return CBool(value)
|
||||||
|
Case 4101 '4101
|
||||||
|
'Umwandeln in Date
|
||||||
|
Return CDate(value)
|
||||||
|
Case 4107 '4107
|
||||||
|
Return Convert.ToInt64(value)
|
||||||
|
Case 4103 '4103
|
||||||
|
'Umwandeln in Datum Uhrzeit
|
||||||
|
Return value
|
||||||
|
Case Else
|
||||||
|
'Umwandeln in String
|
||||||
|
Return value
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function ReturnVektor_IndexValue(VKTBezeichner As String)
|
Private Function ReturnVektor_IndexValue(VKTBezeichner As String)
|
||||||
Try
|
Try
|
||||||
Dim value
|
Dim value
|
||||||
@ -2483,6 +2619,104 @@ Public Class frmValidator
|
|||||||
End If
|
End If
|
||||||
Dim Type As String = inctrl.GetType.ToString
|
Dim Type As String = inctrl.GetType.ToString
|
||||||
Select Case Type
|
Select Case Type
|
||||||
|
Case "DigitalData.Controls.LookupGrid.LookupControl"
|
||||||
|
Try
|
||||||
|
Dim lookup As LookupControl = inctrl
|
||||||
|
|
||||||
|
If lookup.SelectedValues.Count = 0 And _MUSSEINGABE = True Then
|
||||||
|
missing = True
|
||||||
|
errmessage = $"No value selected in control '{inctrl.Name}'"
|
||||||
|
inctrl.BackColor = Color.Red
|
||||||
|
Exit For
|
||||||
|
Else
|
||||||
|
|
||||||
|
If lookup.MultiSelect = True Then
|
||||||
|
Dim Zeilen As Integer = lookup.SelectedValues.Count
|
||||||
|
|
||||||
|
'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss
|
||||||
|
If Zeilen > 0 Then
|
||||||
|
Dim ZeilenGrid As Integer = 0
|
||||||
|
Dim myVektorArr As String()
|
||||||
|
'Jeden Werte des Datagridviews durchlaufen
|
||||||
|
For Each value As String In lookup.SelectedValues
|
||||||
|
If value Is Nothing = False Then
|
||||||
|
'Das Array anpassen
|
||||||
|
ReDim Preserve myVektorArr(ZeilenGrid)
|
||||||
|
'Den Wert im Array speichern
|
||||||
|
myVektorArr(ZeilenGrid) = value
|
||||||
|
ZeilenGrid += 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
'Jetzt die Datei indexieren
|
||||||
|
If Indexiere_File(aktivesDokument, _IDXName, myVektorArr) = False Then
|
||||||
|
missing = True
|
||||||
|
errmessage = "Fehler beim Indexieren Vektorfeld - ERROR: " & idxerr_message
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
Else
|
||||||
|
|
||||||
|
input = lookup.SelectedValues.FirstOrDefault()
|
||||||
|
|
||||||
|
'den aktuellen Wert in windream auslesen
|
||||||
|
Dim wertWD
|
||||||
|
|
||||||
|
If _IDXName.StartsWith("[%VKT") Then
|
||||||
|
wertWD = ReturnVektor_IndexValue(_IDXName)
|
||||||
|
Else
|
||||||
|
wertWD = aktivesDokument.GetVariableValue(_IDXName)
|
||||||
|
If Not IsNothing(wertWD) Then
|
||||||
|
If wertWD.ToString = "System.Object[]" Then
|
||||||
|
If wertWD.Length = 1 Then
|
||||||
|
wertWD = wertWD(0)
|
||||||
|
Else '
|
||||||
|
ClassLogger.Add(" >> Vectorfield " & _IDXName & "' contains more then one value - First value will be used", False)
|
||||||
|
wertWD = wertWD(0)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
wertWD = ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
'wenn Wert in Windream <> der Eingabe darf indexiert werden
|
||||||
|
If IsNothing(wertWD) Or wertWD <> input Then
|
||||||
|
'Wenn der Wert in ein Vektorfeld geschrieben wird
|
||||||
|
If _IDXName.StartsWith("[%VKT") Then
|
||||||
|
input = Return_PM_VEKTOR(input, _IDXName)
|
||||||
|
'Hier muss nun separat als Vektorfeld indexiert werden
|
||||||
|
If Indexiere_VektorfeldPM(input, PROFIL_VEKTORINDEX) = True Then
|
||||||
|
missing = True
|
||||||
|
errmessage = "Fehler beim Indexieren Textbox als VEKTOR - ERROR: " & idxerr_message
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Dim result() As String
|
||||||
|
ReDim Preserve result(0)
|
||||||
|
result(0) = input
|
||||||
|
If Indexiere_File(aktivesDokument, _IDXName, result) = False Then
|
||||||
|
missing = True
|
||||||
|
errmessage = "Fehler beim Indexieren Textbox - ERROR: " & idxerr_message
|
||||||
|
Exit For
|
||||||
|
Else
|
||||||
|
'Nun das Logging
|
||||||
|
If PROFIL_LOGINDEX <> "" Then
|
||||||
|
input = Return_LOGString(input, wertWD, _IDXName)
|
||||||
|
Indexiere_VektorfeldPM(input, PROFIL_LOGINDEX)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
|
||||||
Case "System.Windows.Forms.TextBox"
|
Case "System.Windows.Forms.TextBox"
|
||||||
Try
|
Try
|
||||||
'Als erstes überprüfen ob überhaupt etwas eingetragen worden ist
|
'Als erstes überprüfen ob überhaupt etwas eingetragen worden ist
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user