This commit is contained in:
SchreiberM
2016-08-17 11:32:45 +02:00
parent b811570870
commit 32192cf542
70 changed files with 7103 additions and 9527 deletions

View File

@@ -1413,6 +1413,84 @@ Public Class ClassWindream
End Try
End Function
Public Shared Function REMOVE_VEKTOR_LINK(ByVal FILEPATH As String, vktIndexName As String, deleteValue As String)
Try
Dim WMObject As WINDREAMLib.WMObject
Dim containsvalue As Boolean = False
Try
' ein windream-Objekt der Datei erzeugen
WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, FILEPATH.Substring(2))
If LogErrorsOnly = False Then ClassLogger.Add(" >> wibdreamObject created", False)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Initializing windream file: " & ex.Message, False)
Return False
End Try
Dim ValueArray()
'Jeden Wert des Vektorfeldes durchlaufen
Dim wertWD = WMObject.GetVariableValue(vktIndexName)
If wertWD Is Nothing = False Then
'Nochmals prüfen ob wirklich Array
If wertWD.GetType.ToString.Contains("System.Object") Then
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, vktIndexName)
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
Dim Anzahl As Integer = 0
For Each WDValue As Object In wertWD
If WDValue Is Nothing = False Then
If WDValue = deleteValue Then
containsvalue = True
End If
If WDValue <> deleteValue Then
'Erst die ALten Werte schreiben
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = Convert_VectorType(vType, WDValue)
Anzahl += 1
End If
End If
Next
End If
End If
If containsvalue = True Then 'And Not IsNothing(ValueArray)
Try
' die Datei sperren
WMObject.lock()
Catch ex As Exception
ClassLogger.Add("Unexpected Error in locking windream file: " & ex.Message, False)
Return False
End Try
'Indexiern des Vektorfeldes
WMObject.SetVariableValue(vktIndexName, ValueArray)
' die Indexinformationen des Dokuments speichern
WMObject.Save()
ClassLogger.Add(" >> The new vectorvalues were saved!", False)
' Unlock in einem unbehandelten Try-Block um Fehler abzufangen,
' wenn eine Datei nicht gesperrt ist
Try
' die Sperrung des Dokuments aufheben
WMObject.unlock()
If LogErrorsOnly = False Then ClassLogger.Add(" >> die Sperrung des Dokuments aufheben", False)
Catch ex As Exception
' nichts tun (Datei war nicht gesperrt)
End Try
' die Indexierungsinformationen für den TreeView-Log zurückgeben
Return True
Else
MsgBox("Could not remove the linked value!", MsgBoxStyle.Information)
Return False
End If
Catch ex As Exception
ClassLogger.Add("unexpected error in ClassWindream.REMOVE_VEKTOR_LINK: " & ex.Message, True)
Return False
End Try
End Function
Private Shared Function Convert_VectorType(vType As Object, value As String)