MS Modules windream integriert

This commit is contained in:
Developer01 2025-04-29 16:20:42 +02:00
parent ceb618dc57
commit 5774eb7686
4 changed files with 147 additions and 50 deletions

View File

@ -40,6 +40,7 @@
Public Const HISTORY_NEW_FROM_VERSION = "HISTORY_New_From_Version" Public Const HISTORY_NEW_FROM_VERSION = "HISTORY_New_From_Version"
Public Const HISTORY_USER_DEFINED = "HISTORY_User_Defined" Public Const HISTORY_USER_DEFINED = "HISTORY_User_Defined"
' Entity Types ' Entity Types
Public Const ENTITY_TYPE_OBJECTTYPE = 10 Public Const ENTITY_TYPE_OBJECTTYPE = 10
@ -54,6 +55,7 @@
' Misc ' Misc
Public Const OBJECT_TYPE_DEFAULT = "Standard" Public Const OBJECT_TYPE_DEFAULT = "Standard"
Public Const DELETE_ATTRIBUTE_VALUE = "DeleteWMAttributeValue"
' File Stream ' File Stream
Public Const STREAM_BINARY_OBJECT = "BinaryObject" Public Const STREAM_BINARY_OBJECT = "BinaryObject"

View File

@ -20,51 +20,84 @@ Public Class Helpers
ReDim myArray(0) ReDim myArray(0)
Select Case pIndexType Select Case pIndexType
Case INDEX_TYPE_HASH ' 36865 Case INDEX_TYPE_HASH ' 36865
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return String.Empty
Else
'Umwandeln in String 'Umwandeln in String
myArray(0) = CStr(pValue) myArray(0) = CStr(pValue)
Return myArray End If
Case INDEX_TYPE_VECTOR_STRING '4097 Case INDEX_TYPE_VECTOR_STRING '4097
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return String.Empty
Else
'Umwandeln in String 'Umwandeln in String
myArray(0) = CStr(pValue) myArray(0) = CStr(pValue)
Return myArray(0) End If
Case INDEX_TYPE_VECTOR_INTEGER '4098 Case INDEX_TYPE_VECTOR_INTEGER '4098
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Integer 'Umwandeln in Integer
myArray(0) = CInt(pValue.Replace(" ", "")) myArray(0) = CInt(pValue.Replace(" ", ""))
Return myArray End If
Case INDEX_TYPE_VECTOR_FLOAT '4099 Case INDEX_TYPE_VECTOR_FLOAT '4099
pValue = pValue. pValue = pValue.
Replace(" ", ""). Replace(" ", "").
Replace(".", ",") Replace(".", ",")
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Double 'Umwandeln in Double
myArray(0) = CDbl(pValue) myArray(0) = CDbl(pValue)
Return myArray End If
Case INDEX_TYPE_VECTOR_BOOLEAN '4100 Case INDEX_TYPE_VECTOR_BOOLEAN '4100
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Boolean 'Umwandeln in Boolean
myArray(0) = CBool(pValue) myArray(0) = CBool(pValue)
Return myArray End If
Case INDEX_TYPE_VECTOR_DATE '4101 Case INDEX_TYPE_VECTOR_DATE '4101
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Date 'Umwandeln in Date
myArray(0) = CDate(pValue) myArray(0) = CDate(pValue)
Return myArray End If
Case INDEX_TYPE_VECTOR_INTEGER_64BIT '4107 Case INDEX_TYPE_VECTOR_INTEGER_64BIT '4107
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Date
myArray(0) = Convert.ToInt64(pValue) myArray(0) = Convert.ToInt64(pValue)
Return myArray End If
Case INDEX_TYPE_VECTOR_DATE_TIME '4103 Case INDEX_TYPE_VECTOR_DATE_TIME '4103
'Umwandeln in Datum Uhrzeit Return Convert.ToDateTime(pValue)
Return pValue If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Date
myArray(0) = Convert.ToDateTime(pValue)
End If
Case 8204 Case 8204
pValue = pValue.Replace(" ", "")
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Umwandeln in Integer 'Umwandeln in Integer
myArray(0) = CInt(pValue.Replace(" ", "")) myArray(0) = CInt(pValue.Replace(" ", ""))
Return myArray End If
Case Else Case Else
'Umwandeln in String 'Umwandeln in String
myArray(0) = CStr(pValue) myArray(0) = CStr(pValue)
Return myArray
End Select End Select
Return myArray
End Function End Function
Friend Shared Function ConvertIndexValue(Type As Integer, pValue As String) As Object Friend Shared Function ConvertIndexValue(Type As Integer, pValue As String) As Object
' Leerzeichen an Anfang und Ende entfernen
pValue = pValue.Trim() pValue = pValue.Trim()
If Type > 4095 Then If Type > 4095 Then
Return ConvertVectorType(Type, pValue) Return ConvertVectorType(Type, pValue)
@ -75,40 +108,102 @@ Public Class Helpers
Case INDEX_TYPE_HASH Case INDEX_TYPE_HASH
Return pValue Return pValue
Case INDEX_TYPE_STRING Case INDEX_TYPE_STRING
' Leerzeichen an Anfang und Ende entfernen
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return String.Empty
Else
Return pValue Return pValue
End If
Case INDEX_TYPE_VECTOR_STRING Case INDEX_TYPE_VECTOR_STRING
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return String.Empty
Else
Return pValue Return pValue
End If
Case INDEX_TYPE_INTEGER Case INDEX_TYPE_INTEGER
pValue = pValue.Replace(" ", String.Empty) pValue = pValue.Replace(" ", String.Empty)
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToInt32(pValue) Return Convert.ToInt32(pValue)
End If
Case INDEX_TYPE_VECTOR_INTEGER Case INDEX_TYPE_VECTOR_INTEGER
pValue = pValue.Replace(" ", String.Empty) pValue = pValue.Replace(" ", String.Empty)
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToInt32(pValue) Return Convert.ToInt32(pValue)
End If
Case INDEX_TYPE_VECTOR_INTEGER_64BIT Case INDEX_TYPE_VECTOR_INTEGER_64BIT
pValue = pValue.Replace(" ", String.Empty) pValue = pValue.Replace(" ", String.Empty)
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToInt64(pValue) Return Convert.ToInt64(pValue)
End If
Case INDEX_TYPE_VECTOR_BOOLEAN Case INDEX_TYPE_VECTOR_BOOLEAN
Return Convert.ToBoolean(pValue) Return Convert.ToBoolean(pValue)
Case INDEX_TYPE_BOOLEAN Case INDEX_TYPE_BOOLEAN
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToBoolean(pValue) Return Convert.ToBoolean(pValue)
End If
Case INDEX_TYPE_DATE Case INDEX_TYPE_DATE
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDateTime(pValue) Return Convert.ToDateTime(pValue)
End If
Case INDEX_TYPE_DATE_TIME Case INDEX_TYPE_DATE_TIME
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDateTime(pValue) Return Convert.ToDateTime(pValue)
End If
Case INDEX_TYPE_TIME Case INDEX_TYPE_TIME
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDateTime(pValue) Return Convert.ToDateTime(pValue)
End If
Case INDEX_TYPE_VECTOR_DATE_TIME Case INDEX_TYPE_VECTOR_DATE_TIME
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDateTime(pValue) Return Convert.ToDateTime(pValue)
End If
Case INDEX_TYPE_VECTOR_DATE Case INDEX_TYPE_VECTOR_DATE
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDateTime(pValue) Return Convert.ToDateTime(pValue)
End If
Case INDEX_TYPE_FLOAT Case INDEX_TYPE_FLOAT
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDouble(pValue) Return Convert.ToDouble(pValue)
End If
Case INDEX_TYPE_VECTOR_FLOAT Case INDEX_TYPE_VECTOR_FLOAT
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
Return Convert.ToDouble(pValue) Return Convert.ToDouble(pValue)
End If
Case INDEX_TYPE_CURRENCY Case INDEX_TYPE_CURRENCY
If pValue = DELETE_ATTRIBUTE_VALUE Then
Return Nothing
Else
'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden 'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden
Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(pValue)) Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(pValue))
Return aValueWrapper Return aValueWrapper
End If
Case Else Case Else
Return pValue Return pValue
End Select End Select

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.9.6.2")> <Assembly: AssemblyVersion("1.9.7.0")>
<Assembly: AssemblyFileVersion("1.9.6.2")> <Assembly: AssemblyFileVersion("1.9.7.0")>

View File

@ -1220,7 +1220,7 @@ Public Class Windream
End Try End Try
End Function End Function
Public Function SetFileIndex(Path As String, IndexName As String, Value As String, ObjectType As String) As Boolean Public Function SetFileIndex(Path As String, pIndexName As String, pStringValue As String, pObjectType As String) As Boolean
If TestSessionLoggedIn() = False Then If TestSessionLoggedIn() = False Then
Return False Return False
End If End If
@ -1238,15 +1238,15 @@ Public Class Windream
End If End If
If oWMObject.aObjectType.aName = Constants.OBJECT_TYPE_DEFAULT Then If oWMObject.aObjectType.aName = Constants.OBJECT_TYPE_DEFAULT Then
oWMObject.aObjectType = GetObjectByName(ObjectType, WMEntityObjectType) oWMObject.aObjectType = GetObjectByName(pObjectType, WMEntityObjectType)
End If End If
Try Try
Dim oType As Integer = GetIndexType(IndexName) Dim oType As Integer = GetIndexType(pIndexName)
If Not IsNothing(oType) Then If Not IsNothing(oType) Then
Dim oConvertedValue As Object = Helpers.ConvertIndexValue(oType, Value) Dim oConvertedValue As Object = Helpers.ConvertIndexValue(oType, pStringValue)
oWMObject.SetVariableValue(IndexName, oConvertedValue) oWMObject.SetVariableValue(pIndexName, oConvertedValue)
oWMObject.Save() oWMObject.Save()
If UnlockObject(oWMObject) = False Then If UnlockObject(oWMObject) = False Then