diff --git a/app/DD-Record-Organizer/ClassHelper.vb b/app/DD-Record-Organizer/ClassHelper.vb index 55a63bc..44a6e73 100644 --- a/app/DD-Record-Organizer/ClassHelper.vb +++ b/app/DD-Record-Organizer/ClassHelper.vb @@ -4,13 +4,17 @@ Imports DD_LIB_Standards Public Class ClassHelper Public Shared Function FORMAT_WM_PATH(WMpath As String) Try + Dim ochanged As Boolean = False If WMpath.StartsWith("W:") Then WMpath = WMpath.Replace("W:", "\\windream\Objects") + ochanged = True ElseIf WMpath.StartsWith("\") Then If WMpath.StartsWith("\\windream\Objects") = False Then WMpath = "\\windream\Objects" & WMpath + ochanged = True End If End If + If LogErrorsOnly = False And ochanged = True Then ClassLogger.Add(" >> WMpath is: " & WMpath, False) Return WMpath Catch ex As Exception Return WMpath @@ -154,7 +158,7 @@ Public Class ClassHelper Public Shared Sub File_open(RESULT_DOC_PATH As Object, DocID As String) Try RESULT_DOC_PATH = FORMAT_WM_PATH(RESULT_DOC_PATH) - + CURRENT_OFFICE_FILE_CHANGED = False If RESULT_DOC_PATH <> Nothing Then If USER_GENERAL_VIEWER = "NONE" Then Dim EXT = Path.GetExtension(RESULT_DOC_PATH) @@ -216,19 +220,54 @@ Public Class ClassHelper Private Shared Sub File_SYSOPEN(RESULT_DOC_PATH As Object, DocID As String) Try If RESULT_DOC_PATH <> Nothing Then - If System.IO.File.Exists(RESULT_DOC_PATH) = True Then - Process.Start(RESULT_DOC_PATH) - Else - If clsWD_GET.WDFile_exists(RESULT_DOC_PATH, clsDatabase.DB_PROXY_INITIALIZED, ClassProxy.MyLinkedServer, True) = False Then - MSGBOX_Handler("ERROR", "File not found (1):", "File '" & RESULT_DOC_PATH & "' not existing or Windream-Malfunction...." & vbNewLine & - " - Maybe You are not provided with reading rights?!" & vbNewLine & - " - Check Your windream-drive: is W accessible? Can You navigate to the filepath?" & vbNewLine & "Please inform Your admin!") - Else - MSGBOX_Handler("ERROR", "File not found (2):", "File '" & RESULT_DOC_PATH & "' exists in windream BUT is not accessible!" & vbNewLine & - " - Maybe You are not provided with reading rights?!" & vbNewLine & - " - Check Your windream-drive: is W accessible? Can You navigate to the filepath?" & vbNewLine & "Please inform Your admin!") + Try + Dim oMyProcess = New Process() + Try + Dim oPSI As New ProcessStartInfo(RESULT_DOC_PATH) + + oMyProcess.StartInfo.FileName = RESULT_DOC_PATH + oMyProcess.StartInfo.UseShellExecute = True + oMyProcess.StartInfo.RedirectStandardOutput = False + oMyProcess.Start() + oMyProcess.WaitForExit() + Catch ex As Exception + ClassLogger.Add("Error in Process1.Start(): " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True) + Exit Sub + End Try + + + + Dim oExtension = Path.GetExtension(RESULT_DOC_PATH).ToLower + If LogErrorsOnly = False Then ClassLogger.Add($"Checking oExtension [{oExtension}]...", False) + If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) Then + Dim osql = $"SELECT Count(DocID) FROM VWPMO_DOC_SYNC WHERE DocID = {DocID}" + Dim oFileExists = clsDatabase.Execute_Scalar(osql, False) + If oFileExists = 0 Then + CURRENT_OFFICE_FILE_CHANGED = True + ClassLogger.Add("The docId of handled file changed during editing mode!- OldDocID: " & DocID, False) + osql = $"SELECT dwDocID FROM windream60.dbo.BaseAttributes WHERE dwVersionID = {DocID}" + Dim oNEW_DOC As DataTable = clsDatabase.Return_Datatable(osql, False) + If oNEW_DOC.Rows.Count = 1 Then + Dim oNEWDocID = oNEW_DOC.Rows(0).Item(0) + ClassLogger.Add($"New DocID is {oNEWDocID}!!", False) + osql = $"EXEC PRPMO_DOC_CHANGE_DOCID {DocID},{oNEWDocID},'{USER_USERNAME}'" + If LogErrorsOnly = False Then ClassLogger.Add(osql, False) + If clsDatabase.Execute_non_Query(osql, False) = False Then + ClassLogger.Add($"Could not relink the DocID!!", False) + End If + End If + End If End If - End If + + Catch ex As Exception + ClassLogger.Add("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True) + Try + Process.Start(RESULT_DOC_PATH) + Catch ex1 As Exception + ClassLogger.Add("Error in Process.Start(1): " & ex1.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID, True) + End Try + + End Try End If Catch ex As Exception MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical) @@ -239,14 +278,12 @@ Public Class ClassHelper Private Shared Sub FOLDER_OPEN(PATH As Object, DocID As String) Try If PATH <> Nothing Then - + If LogErrorsOnly = False Then ClassLogger.Add(" >> in FOLDER_OPEN(" & PATH & ")", False) If System.IO.Directory.Exists(PATH) = True Then Process.Start(PATH) Else MsgBox("Folder '" & PATH & "' not existing or accessible!", MsgBoxStyle.Exclamation) End If - - End If Catch ex As Exception MsgBox("Unexpected Error in FOLDER_OPEN:" & vbNewLine & ex.Message & vbNewLine & PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical) diff --git a/app/DD-Record-Organizer/ClassImport_Windream.vb b/app/DD-Record-Organizer/ClassImport_Windream.vb index 18cf853..aaf46f9 100644 --- a/app/DD-Record-Organizer/ClassImport_Windream.vb +++ b/app/DD-Record-Organizer/ClassImport_Windream.vb @@ -143,11 +143,11 @@ Public Class ClassImport_Windream If Not IsDBNull(oDYNAMIC_FOLDER) Then If oDYNAMIC_FOLDER <> String.Empty Then If CREATE_FOLDER_INDEX(oDYNAMIC_FOLDER, DocTypeID) = True And CURRENT_VARIABLE_FOLDER <> "" Then - If CURRENT_VARIABLE_FOLDER_OVERRIDE = True Then - oWMTARGET_FOLDER = CURRENT_VARIABLE_FOLDER - Else - oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_VARIABLE_FOLDER - End If + 'If CURRENT_VARIABLE_FOLDER_OVERRIDE = True Then + ' oWMTARGET_FOLDER = CURRENT_VARIABLE_FOLDER + 'Else + oWMTARGET_FOLDER = oWMTARGET_FOLDER & "\" & CURRENT_VARIABLE_FOLDER + 'End If Else MsgBox("Unexpected Error in Creating Variable Folder - Check logfile!", MsgBoxStyle.Critical) @@ -489,6 +489,7 @@ Public Class ClassImport_Windream For Each element As System.Text.RegularExpressions.Match In elemente If LogErrorsOnly = False Then ClassLogger.Add(" >> Elementname in FolderString: '" & element.ToString & "'", False) Dim EL_SUBSTRING = element.Value.Substring(2, 1).ToUpper + If LogErrorsOnly = False Then ClassLogger.Add(" >> EL_SUBSTRING is: '" & EL_SUBSTRING & "'", False) Select Case EL_SUBSTRING 'Manueller Indexwert Case "A" @@ -518,6 +519,7 @@ Public Class ClassImport_Windream If IsDBNull(AUTOindexresult) Then ClassLogger.Add(">> unexpected: AUTOindexresult is DBNULL - " & sql_command, False) Else + If LogErrorsOnly = False Then ClassLogger.Add(" >> AUTOindexresult is: '" & AUTOindexresult & "'", False) FolderConvention = FolderConvention.Replace(element.ToString, AUTOindexresult) End If End If @@ -584,6 +586,7 @@ Public Class ClassImport_Windream Dim split() As String = elmt If split.Length = 2 Then Dim VARTYPE = split(0) + If LogErrorsOnly = False Then ClassLogger.Add(" >> VARTYPE is: '" & VARTYPE & "'", False) Select Case VARTYPE Case "ARDoctype" FolderConvention = FolderConvention.Replace(element.ToString, CURRENT_DOKARTSTRING) @@ -687,6 +690,7 @@ Public Class ClassImport_Windream ClassLogger.Add(" -Undefined pattern found in folderconvention" & vbNewLine & "Elementname: " & element.Value.ToUpper) MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:") End Select + If LogErrorsOnly = False Then ClassLogger.Add($" >> FolderConvention so far is: '{FolderConvention}'", False) Next CURRENT_VARIABLE_FOLDER = FolderConvention Return True diff --git a/app/DD-Record-Organizer/ClassInit.vb b/app/DD-Record-Organizer/ClassInit.vb index e376ae0..93fc24a 100644 --- a/app/DD-Record-Organizer/ClassInit.vb +++ b/app/DD-Record-Organizer/ClassInit.vb @@ -125,6 +125,13 @@ Public Class ClassInit sql = String.Format("select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID") CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS = ClassDatabase.Return_Datatable(sql, True) clsCURRENT.LOG_ERRORS_ONLY = LogErrorsOnly + + sql = String.Format("select* from TBPMO_FILE_FORMATS_CHANGE") + Dim oDTFF_CHANGE As DataTable = ClassDatabase.Return_Datatable(sql, True) + For Each oRow As DataRow In oDTFF_CHANGE.Rows + FILE_FORMATS_CHANGE_DURING_EDIT.Add(oRow.Item("FILE_EXT")) + Next + Catch ex As Exception MsgBox("Unexpected Error in InitBasics2:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try diff --git a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb index 13c7d60..e9e7f00 100644 --- a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb +++ b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb @@ -52,6 +52,7 @@ Public CURRENT_CONSTRUCTOR_DETAIL_ID As Integer Public CURRENT_FILEID As Integer Public CURRENT_FILENAME As String + Public CURRENT_OFFICE_FILE_CHANGED As Boolean = False Public CURRENT_NEWFILENAME As String Public CURRENT_CONTROL_DOCTYPE_MATCH As String = "" Public CURRENT_NOTIFICATION_MSG As String @@ -79,6 +80,7 @@ Public JUMP_RECORD_ID As Integer Public TEMP_FILES As List(Of String) = New List(Of String) + Public FILE_FORMATS_CHANGE_DURING_EDIT As List(Of String) = New List(Of String) Public LICENSE_EXPIRED As Boolean = False Public LICENSE_COUNT As Integer = 0 diff --git a/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb b/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb index 5acefcd..765dc0c 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb +++ b/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb @@ -389,7 +389,8 @@ Partial Class frmConstructor_Main ' 'tstxtRenameNode ' - Me.tstxtRenameNode.BackColor = System.Drawing.SystemColors.ActiveCaption + Me.tstxtRenameNode.BackColor = System.Drawing.SystemColors.Control + Me.tstxtRenameNode.ForeColor = System.Drawing.SystemColors.ControlText Me.tstxtRenameNode.Name = "tstxtRenameNode" resources.ApplyResources(Me.tstxtRenameNode, "tstxtRenameNode") ' diff --git a/app/DD-Record-Organizer/frmConstructor_Main.resx b/app/DD-Record-Organizer/frmConstructor_Main.resx index 989f0c3..d95fce8 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.resx +++ b/app/DD-Record-Organizer/frmConstructor_Main.resx @@ -296,7 +296,7 @@ Knoten umbenennen - 212, 22 + 216, 26 Knotentext: @@ -305,7 +305,7 @@ 152, 23 - 209, 6 + 213, 6 @@ -316,7 +316,7 @@ - 212, 22 + 216, 26 Auf dieser Ebene @@ -331,7 +331,7 @@ - 212, 22 + 216, 26 Unterhalb @@ -550,7 +550,7 @@ 0, 27 - 981, 210 + 988, 210 2 @@ -693,7 +693,7 @@ 0, 0 - 981, 27 + 988, 27 1 @@ -777,7 +777,7 @@ 0, 0 - 699, 374 + 699, 381 4 @@ -807,7 +807,7 @@ 0, 26 - 555, 323 + 562, 330 5 @@ -854,10 +854,10 @@ Ansicht eingeschränkt - Klick Bearbeiten für Entsperren - 0, 349 + 0, 356 - 555, 25 + 562, 25 0 @@ -884,7 +884,7 @@ 0, 0 - 555, 26 + 562, 26 0 @@ -905,7 +905,7 @@ Panel2 - 1270, 378 + 1270, 385 1 @@ -1081,7 +1081,7 @@ 1 - 1270, 405 + 1270, 412 Detailansicht @@ -1099,7 +1099,7 @@ 0 - 1276, 436 + 1276, 443 3 diff --git a/app/DD-Record-Organizer/frmConstructor_Main.vb b/app/DD-Record-Organizer/frmConstructor_Main.vb index ad95159..487cde8 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.vb +++ b/app/DD-Record-Organizer/frmConstructor_Main.vb @@ -6814,6 +6814,7 @@ Public Class frmConstructor_Main End If For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows ClassHelper.File_open(row.Item("DOC_PATH"), row.Item("DOC_ID")) + If CURRENT_OFFICE_FILE_CHANGED = True Then RUN_WDSEARCH_GRID() Next Else If clsWD_GET.WDFile_exists(ClassWindreamDocGrid.SELECTED_DOC_PATH, DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED, ClassProxy.MyLinkedServer, True) = True Then diff --git a/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx b/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx index b5bb716..d63f742 100644 --- a/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx +++ b/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx @@ -2025,7 +2025,7 @@ 0, 27 - 305, 225 + 305, 222 2 @@ -2213,7 +2213,7 @@ 0, 0 - 1265, 27 + 1261, 27 1 @@ -2234,7 +2234,7 @@ 22 - 1265, 252 + 1261, 249 Automatische Indexe @@ -2270,7 +2270,7 @@ 0, 27 - 305, 225 + 305, 222 3 @@ -2458,7 +2458,7 @@ 0, 0 - 1265, 27 + 1261, 27 2 @@ -2479,7 +2479,7 @@ 1 - 1265, 252 + 1261, 249 Manuelle Indexe @@ -2817,7 +2817,7 @@ 0, 0 - 1265, 27 + 1261, 27 2 @@ -2838,7 +2838,7 @@ 5 - 1265, 252 + 1261, 249 Zurodnung Dokumentart - Entität @@ -3273,7 +3273,7 @@ 6 - 1265, 252 + 1261, 249 Variabler Ordnerpfad diff --git a/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb b/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb index 100dddd..14065a3 100644 --- a/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb +++ b/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb @@ -280,12 +280,12 @@ Public Class frmWM_DoctypeConfig Exit Sub End Try Try - Dim sql = String.Format("SELECT [CONTROL_ID] , [CONTROL_COL_NAME]AS DISPLAY FROM [VWPMO_CONTROL_SCREEN] " & _ - "WHERE CTRLTYPE_ID in (2,3,4) and FORM_ID = {0} UNION ALL " & _ - "SELECT [CONTROL_ID] , [CTRLSCR_CAPTION] AS DISPLAY FROM [VWPMO_CONTROL_SCREEN] " & _ - "WHERE CTRLTYPE_ID = 1 AND [CONTROL_SQLCOMMAND_1] <> '' and FORM_ID = {0} UNION ALL " & _ - "SELECT '999', 'Doctype' AS DISPLAY " & _ - "ORDER BY DISPLAY", GUIDTextBox.Text) + Dim sql = String.Format("SELECT [CONTROL_ID] , [CONTROL_COL_NAME]AS DISPLAY FROM [VWPMO_CONTROL_SCREEN] " & + "WHERE CTRLTYPE_ID in (2,3,4) and FORM_VIEW_ID = {0} UNION ALL " & + "SELECT [CONTROL_ID] , [CTRLSCR_CAPTION] AS DISPLAY FROM [VWPMO_CONTROL_SCREEN] " & + "WHERE CTRLTYPE_ID = 1 AND [CONTROL_SQLCOMMAND_1] <> '' and FORM_VIEW_ID = {0} UNION ALL " & + "SELECT '999', 'Doctype' AS DISPLAY " & + "ORDER BY DISPLAY", cmbFormViewVariablePath.SelectedValue) Dim DT1 As DataTable = ClassDatabase.Return_Datatable(sql) If DT1.Rows.Count >= 1 Then cmbIndex_Controls.DataSource = DT1