MS_1708
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user