MS_10.11.2015_4

This commit is contained in:
SchreiberM 2015-11-10 12:49:51 +01:00
parent 6fc54b316d
commit 7be21b61d3
3 changed files with 281 additions and 25 deletions

View File

@ -762,6 +762,12 @@ Public Class ClassWindream
Public Shared Function DateiIndexieren(ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String)
Try
If LogErrorsOnly = False Then ClassLogger.Add(" - DateiIndexieren wurde aufgerufen", False)
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, _Indexname)
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
WD_File = WD_File.Substring(2)
Dim WMObject As WINDREAMLib.WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject
'MsgBox("DateiIndexieren:" & vbNewLine & ClassDateiimportWindream.GetWindreamDriveLetter & filenameZiel & vbNewLine & Me.selectedProfile.DokumenttypString)
@ -812,6 +818,10 @@ Public Class ClassWindream
If LogErrorsOnly = False Then ClassLogger.Add(" - Indexname: '" & _Indexname & "'", False)
Dim werte = New ArrayList
'Den Typ des Index-Feldes auslesen
'MsgBox(value.GetType.ToString)
If (GetTypeOfIndexAsIntByName(_Indexname) = WMObjectVariableValueTypeVector) Or GetTypeOfIndexAsIntByName(_Indexname) = 4097 Then
If LogErrorsOnly = False Then ClassLogger.Add(" - Es handelt sich um ein Vektor-Feld", False)
@ -856,8 +866,8 @@ Public Class ClassWindream
'MsgBox(arr(0) & vbNewLine & indexe)
Catch ex As Exception
ClassLogger.Add("Hinweis: Die Datei " & WD_File & " konnte nicht indexiert werden.")
ClassLogger.Add("Fehler: " & ex.Message)
ClassLogger.Add("Unexpected Error in DateiIndexieren: the file' " & WD_File & "' could not be indexed!")
ClassLogger.Add("Error-Description: " & ex.Message)
' Me.TreeNodeInfos.Add(temp)
Return False
End Try
@ -922,10 +932,10 @@ Public Class ClassWindream
Select Case (vType)
'Case WMObjectVariableValueTypeUndefined
Case WMObjectVariableValueTypeString
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeString", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeString", False)
convertValue = CStr(value)
Case WMObjectVariableValueTypeInteger
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeInteger", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeInteger", False)
value = value.ToString.Replace(" ", "")
If IsNumeric(value) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!", False)
@ -934,33 +944,33 @@ Public Class ClassWindream
convertValue = CInt(value)
_int = True
Case WMObjectVariableValueTypeFloat
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeFloat", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeFloat", False)
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeFixedPoint
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeFixedPoint", False)
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
_dbl = True
Case WMObjectVariableValueTypeBoolean
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeBoolean", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeBoolean", False)
convertValue = CBool(value)
_bool = True
Case WMObjectVariableValueTypeDate
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeDate", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeDate", False)
_date = True
'Dim _date As Date = value
convertValue = value
Case WMObjectVariableValueTypeTimeStamp
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeTimeStamp", False)
convertValue = CDbl(value)
Case WMObjectVariableValueTypeCurrency
ClassLogger.Add(" - Typ des windream-Indexes: WMObjectVariableValueTypeCurrency", False)
ClassLogger.Add(" - type of windreamIndex WMObjectVariableValueTypeCurrency", False)
'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden
Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(value))
convertValue = aValueWrapper
Case WMObjectVariableValueTypeTime
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeTime", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeTime", False)
'If ((value)) Then
' convertValue = CDate(value)
'Else
@ -969,39 +979,39 @@ Public Class ClassWindream
'Dim _date As Date = value
convertValue = convertValue '*_date.ToShortTimeString
Case WMObjectVariableValueTypeFloat
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeFloat", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeFloat", False)
convertValue = CStr(value)
Case WMObjectVariableValueTypeVariant
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeVariant", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeVariant", False)
convertValue = CStr(value)
Case WMObjectVariableValueTypeFulltext
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: WMObjectVariableValueTypeFulltext", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex WMObjectVariableValueTypeFulltext", False)
convertValue = CStr(value)
Case 4097
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4097 Vektor alphanumerisch", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4097 Vektor alphanumerisch", False)
'Vektor alphanumerisch
vektor = True
Case 4098
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4098 Vektor Numerisch", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4098 Vektor Numerisch", False)
'Vektor Numerisch
vektor = True
Case 4099
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4099 Vektor Kommazahl", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4099 Vektor Kommazahl", False)
'Vektor Kommazahl
vektor = True
Case 4101
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4101 Vektor Date", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4101 Vektor Date", False)
'Vektor Kommazahl
vektor = True
Case 4103
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4103 Vektor DateTime", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4103 Vektor DateTime", False)
'Vektor DateTime
vektor = True
Case 4107
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 4107 Integer 64bit", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 4107 Integer 64bit", False)
vektor = True
Case 36865
If LogErrorsOnly = False Then ClassLogger.Add(" >> Typ des windream-Indexes: 36865 Vektor alphanumerisch", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> type of windreamIndex 36865 Vektor alphanumerisch", False)
'Vektor Kommazahl
vektor = True
Case Else
@ -1052,9 +1062,178 @@ Public Class ClassWindream
End Try
Else
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
If LogErrorsOnly = False Then ClassLogger.Add(" >> Vectorfield: Preparing of Array", False)
Dim myArray()
'If aValues.Length = 2 And aValues(0) = "" Then
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert ist leer/Nothing - Keine Nachindexierung", False)
'End If
'For Each row As DataRow In DT.Rows
'MsgBox(aName & vbNewLine & row.Item("Indexname") & vbNewLine & CStr(row.Item("Wert")))
'Next
Dim Anzahl As Integer = aValues.Length
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 0 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Vectorfield willl be filled with ONE VALUE", False)
ReDim myArray(0)
Select Case vType
Case 36865
'Umwandeln in String
myArray(0) = CStr(value)
Case 4097
'Umwandeln in String
myArray(0) = CStr(value)
Case 4098
'Umwandeln in Integer
value = value.ToString.Replace(" ", "")
myArray(0) = CInt(value)
Case 4099
Dim Str As String = value
Str = Str.ToString.Replace(" ", "")
'Umwandeln in Double
myArray(0) = CDbl(Str.Replace(".", ","))
Case 4101
'Umwandeln in Date
myArray(0) = CDate(value)
Case 4107
myArray(0) = Convert.ToInt64(value)
Case 4103
'Umwandeln in Datum Uhrzeit
myArray(0) = value
Case Else
'Umwandeln in String
myArray(0) = CStr(value)
End Select
'Jetzt überprüfen ob Werte in Vektorfeld angefügt oder überschrieben werden sollen
If LogErrorsOnly = False Then ClassLogger.Add(" >> Converted Value: " & myArray(0).ToString, False)
Dim VektorArray()
VektorArray = Return_VektorArray(oDocument, aName, myArray)
If VektorArray Is Nothing = False Then
ReDim myArray(VektorArray.Length - 1)
Array.Copy(VektorArray, myArray, VektorArray.Length)
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(aName, myArray)
If LogErrorsOnly = False Then
ClassLogger.Add(" >> Vectorindex '" & aName & "' was written", False)
ClassLogger.Add("", False)
End If
'Die Änderungen festsschreiben/speichern
oDocument.Save()
End If
End If
' Else
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> Vektorfeld wird mit MEHREREN Werten gefüllt ", False)
' ' das ausgewählte Profil in _selectedProfile laden
' _selectedProfil = ClassNIProfile.getProfilByName(Profil)
' 'Die Größe des Arrays festlegen
' ReDim myArray(Anzahl - 1)
' Dim i1 As Integer = 0
' 'Die Datatable durchlaufen und Werte für den Index in Array schreiben
' For Each DR In DT.Rows
' If DR.Item("Indexname") = aName.ToString Then
' myArray(i1) = CStr(DR.Item("Wert"))
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> Wert (" & i1 & ") aus Datatable: '" & myArray(i1).ToString & "'", False)
' i1 = i1 + 1
' End If
' Next
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> Array wurde erfolgreich erzeugt", False)
' If _selectedProfil Is Nothing = False Then
' Me._selectedProfil._links.selectedLink = Me._selectedProfil._links.getLinkByIndex(aName)
' If Me._selectedProfil._links.selectedLink IsNot Nothing Then
' Dim VektorArray()
' Select Case Me._selectedProfil._links.selectedLink.vktins_state
' Case 1
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> vektInsState = '1'", False)
' Dim z As Integer = 0
' ReDim VektorArray(myArray.Length)
' For Each str As Object In myArray
' If str Is Nothing = False Then
' 'Das Array anpassen
' ReDim Preserve VektorArray(z)
' 'Den Wert im Array speichern
' VektorArray(z) = str
' z += 1
' End If
' Next
' Case 2 'Anfügen
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> vektInsState = '2'", False)
' VektorArray = Return_VektorArray(oDocument, aName, myArray, False)
' Case 3 'Anfügen mit DuplikatCheck
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> vektInsState = '3'", False)
' VektorArray = Return_VektorArray(oDocument, aName, myArray, True)
' End Select
' If VektorArray Is Nothing = False Then
' 'Das Array wieder anpassen
' ReDim myArray(VektorArray.Length - 1)
' 'Array.Copy(VektorArray, myArray, VektorArray.Length)
' i1 = 0
' For Each _value As Object In VektorArray
' Select Case vType
' Case 36865
' myArray(i1) = CStr(_value)
' Case 4097
' myArray(i1) = CStr(_value)
' Case 4098
' Dim v As String = _value.ToString.Replace(" ", "")
' myArray(i1) = CInt(v)
' Case 4099
' 'Vektroryp Double
' Dim Str As String = _value
' Str = Str.ToString.Replace(" ", "")
' myArray(i1) = CDbl(Str.Replace(".", ","))
' Case 4101
' 'Vektortyp DATE
' Dim dat As String = _value
' myArray(i1) = CDate(dat.Replace(".", ","))
' Case 4107
' myArray(i1) = Convert.ToInt64(_value)
' Case Else
' 'Vektortyp ALPHANUMERISCH
' 'Die Größe des Arrays festlegen
' myArray(i1) = CStr(DR.Item("Wert"))
' End Select
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> Konvertierter Wert (" & i1 & ") : '" & myArray(i1).ToString & "'", False)
' i1 += 1
' Next
' 'Jetzt die Nachindexierung für Vektor-Felder
' oDocument.SetVariableValue(aName, myArray)
' If LogErrorsOnly = False Then ClassLoggerNI.Add(" >> 'SetVariableValue' für VEKTOR erfolgreich", False)
' ' oDocument.LockRights()
' 'Die Änderungen festsschreiben/speichern
' oDocument.Save()
' If LogErrorsOnly = False Then ClassLoggerNI.Add(">> Indexierung erfolgreich beendet (Save ...", False)
' Else
' ClassLoggerNI.Add(" - Achtung: VektorArray Is NOTHING", False)
' oDocument.Save()
' Return True
' End If
' Else
' ClassLoggerNI.Add(" - Achtung: Der Link konnte nicht geladen werden - _selectedProfil._links.selectedLink is NOTHING", False)
' oDocument.Save()
' Return True
' End If
' Else
' ClassLoggerNI.Add(" - Achtung: Das Profil konnte nicht geladen werden - _selectedProfil is NOTHING", False)
' oDocument.Save()
' Return True
' End If
' End If
' End If
'End If
End If
@ -1083,6 +1262,80 @@ Public Class ClassWindream
Return False
End Try
End Function
Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, arr_Indexwerte As Object)
Try
Dim missing As Boolean = False
Dim Anzahl As Integer = 0
Dim ValueArray()
'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
'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) = WDValue.ToString
Anzahl += 1
End If
Next
'Jetzt die Neuen Werte auf Duplikate überprüfen
For Each NewValue As Object In arr_Indexwerte
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) = NewValue.ToString
Anzahl += 1
Else
ClassLogger.Add(" >> Value '" & NewValue.ToString & "' already existing in vectorfield", False)
End If
End If
Next
End If
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> vectorfield is empty....", False)
'Den/die Neuen Wert(e) anfügen
For Each NewValue As Object In arr_Indexwerte
If NewValue Is Nothing = False 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) = NewValue.ToString
Anzahl += 1
Else
ClassLogger.Add(" >> Value '" & NewValue.ToString & "' already existing in Array", False)
End If
Else 'Dererste Wert, also hinzufügen
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
Anzahl += 1
End If
End If
Next
End If
Return ValueArray
Catch ex As Exception
ClassLogger.Add("unexpected error in ClassWindream.Return_VektorArray: " & ex.Message, True)
End Try
End Function
Private Shared Function IsNotEmpty(ByVal aValue As Object)
If aValue IsNot Nothing Then

View File

@ -111,7 +111,7 @@ Partial Class frmDokumentart_NameConvention
Me.btnAddIndexM.Image = Global.DD_Record_Organiser.My.Resources.Resources.add
Me.btnAddIndexM.Location = New System.Drawing.Point(197, 70)
Me.btnAddIndexM.Name = "btnAddIndexM"
Me.btnAddIndexM.Size = New System.Drawing.Size(30, 23)
Me.btnAddIndexM.Size = New System.Drawing.Size(30, 25)
Me.btnAddIndexM.TabIndex = 4
Me.btnAddIndexM.UseVisualStyleBackColor = True
'
@ -161,7 +161,7 @@ Partial Class frmDokumentart_NameConvention
Me.btnAddIndexA.Image = Global.DD_Record_Organiser.My.Resources.Resources.add
Me.btnAddIndexA.Location = New System.Drawing.Point(423, 74)
Me.btnAddIndexA.Name = "btnAddIndexA"
Me.btnAddIndexA.Size = New System.Drawing.Size(30, 23)
Me.btnAddIndexA.Size = New System.Drawing.Size(30, 25)
Me.btnAddIndexA.TabIndex = 5
Me.btnAddIndexA.UseVisualStyleBackColor = True
'
@ -247,7 +247,7 @@ Partial Class frmDokumentart_NameConvention
Me.btndelete.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btndelete.Location = New System.Drawing.Point(498, 62)
Me.btndelete.Name = "btndelete"
Me.btndelete.Size = New System.Drawing.Size(141, 25)
Me.btndelete.Size = New System.Drawing.Size(141, 28)
Me.btndelete.TabIndex = 4
Me.btndelete.Text = "Lösche Konvention"
Me.btndelete.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
@ -269,7 +269,7 @@ Partial Class frmDokumentart_NameConvention
'
Me.btnclose.Image = Global.DD_Record_Organiser.My.Resources.Resources.cancel
Me.btnclose.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnclose.Location = New System.Drawing.Point(498, 196)
Me.btnclose.Location = New System.Drawing.Point(498, 192)
Me.btnclose.Name = "btnclose"
Me.btnclose.Size = New System.Drawing.Size(141, 26)
Me.btnclose.TabIndex = 6

View File

@ -123,6 +123,9 @@
<metadata name="DD_DMSDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="DD_DMSDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="TBPMO_KONFIGURATIONBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>160, 17</value>
</metadata>