jj
This commit is contained in:
parent
00dd5fd2e1
commit
1e37da9749
@ -1663,6 +1663,142 @@ Public Class frmValidator
|
||||
End Try
|
||||
|
||||
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)
|
||||
Try
|
||||
Dim value
|
||||
@ -2483,6 +2619,104 @@ Public Class frmValidator
|
||||
End If
|
||||
Dim Type As String = inctrl.GetType.ToString
|
||||
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"
|
||||
Try
|
||||
'Als erstes überprüfen ob überhaupt etwas eingetragen worden ist
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user