diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index 592ed7d..fd6ed74 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -1222,15 +1222,42 @@ Public Class frmValidator viewerID = Proc.Id End If End Sub + + Function ReplaceWindreamDriveLetter(Filepath As String) As String + Return Filepath. + Replace("W:", "\\windream\objects"). + Replace("K:", "\\windream\objects") + End Function + + Function Next_GUID(Filepath As String, ProfilId As Integer, OrderByNewest As Boolean) As Integer + Dim oFilePath = ReplaceWindreamDriveLetter(Filepath).ToUpper() + Dim oSQL = $" + SELECT GUID FROM TBPM_PROFILE_FILES WHERE + PROFIL_ID = {CURRENT_ProfilGUID} AND EDIT = 0 AND IN_WORK = 0 AND + UPPER(REPLACE(FILE_PATH, 'W:','\\windream\objects')) <> '{oFilePath}' AND + UPPER(REPLACE(FILE_PATH, 'W:','\\windream\objects')) NOT IN ( + SELECT UPPER(FILE_PATH) + FROM TBPM_FILES_USER_NOT_INDEXED + WHERE (PROFIL_ID = {ProfilId}) AND (UPPER(USR_NAME) = UPPER('{Environment.UserName}')) + ) + {IIf(OrderByNewest, " ORDER BY DMS_ERSTELLT_DATE DESC", "")} + " + + Return ClassDatabase.Execute_Scalar(oSQL, MyConnectionString, True) + End Function + Function Get_Next_GUID() As Integer Try Dim newGUID As Integer If LogErrorsOnly = False Then ClassLogger.Add(" >> Old Document_Path: " & OLD_Document_Path, False) - If PROFIL_sortbynewest = True Then - newGUID = TBPM_PROFILE_FILESTableAdapter.cmdgetNextFile_GUID_Newest(CURRENT_ProfilGUID, OLD_Document_Path, Environment.UserName) - Else - newGUID = TBPM_PROFILE_FILESTableAdapter.cmdGetNextFile_GUID(CURRENT_ProfilGUID, OLD_Document_Path, Environment.UserName) - End If + 'If PROFIL_sortbynewest = True Then + ' newGUID = TBPM_PROFILE_FILESTableAdapter.cmdgetNextFile_GUID_Newest(CURRENT_ProfilGUID, OLD_Document_Path, Environment.UserName) + 'Else + ' newGUID = TBPM_PROFILE_FILESTableAdapter.cmdGetNextFile_GUID(CURRENT_ProfilGUID, OLD_Document_Path, Environment.UserName) + 'End If + + newGUID = Next_GUID(OLD_Document_Path, CURRENT_ProfilGUID, PROFIL_sortbynewest) + Document_Path = "" CURRENT_DOC_PATH = "" If newGUID > 0 Then @@ -1690,95 +1717,95 @@ Public Class frmValidator ' Try Dim missing As Boolean = False - Dim Anzahl As Integer = 0 + 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 + '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 - End If - Next - End If - Return ValueArray + 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 @@ -2166,16 +2193,16 @@ Public Class frmValidator Try Dim lookup As LookupControl = oControl Dim wertWD = aktivesDokument.GetVariableValue(oWMIndexName) - If wertWD.GetType.ToString.Contains("System.Object") Then + + If IsNothing(wertWD) Then + lookup.SelectedValues = New List(Of String) + ElseIf wertWD.GetType.ToString.Contains("System.Object") Then Dim oArrlist As New List(Of String) For Each oVectorRow As Object In wertWD oArrlist.Add(oVectorRow.ToString) Next lookup.SelectedValues = oArrlist - - Else - End If _CURRENT_INDEX_ARRAY(oCount, 1) = wertWD.ToString Catch ex As Exception