2.7.9 an WISAG ausgegeben

This commit is contained in:
Developer01
2026-02-05 16:58:19 +01:00
parent 05c4ee9f41
commit 034ca839ba
18 changed files with 851 additions and 408 deletions

View File

@@ -22,7 +22,6 @@ Public Class ClassConfig
' Digital Data Settings ' Digital Data Settings
Public Property UserManagerPath As String = "" Public Property UserManagerPath As String = ""
Public Property UserInheritance_ConfirmationByColumn As New List(Of UserInheritanceConfirmation)
' File Settings ' File Settings
Public Property VersionDelimiter As String = "~" Public Property VersionDelimiter As String = "~"
@@ -52,9 +51,4 @@ Public Class ClassConfig
Public Property ShowFile As Boolean = True Public Property ShowFile As Boolean = True
Public Property ShowSearchesDirect As Boolean = True Public Property ShowSearchesDirect As Boolean = True
End Class End Class
Public Class UserInheritanceConfirmation
Public Property ColumnName As String = ""
Public Property Count As Integer
End Class
End Class End Class

View File

@@ -1,6 +1,5 @@
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports DD_LIB_Standards
Imports DevExpress.Utils Imports DevExpress.Utils
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Controls Imports DevExpress.XtraEditors.Controls
@@ -11,13 +10,10 @@ Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
Imports DigitalData.Controls.LookupGrid Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.Language.Utils
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Language
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.EDMI.API.Constants Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.Language.DataTableEx
Imports DigitalData.Modules.Base Imports DigitalData.Modules.Base
Public Class ClassControlCreator Public Class ClassControlCreator
@@ -362,7 +358,7 @@ Public Class ClassControlCreator
Try Try
oControl.Text = row.Item("CTRL_CAPTION_LANG") oControl.Text = row.Item("CTRL_CAPTION_LANG")
Catch ex As Exception Catch ex As Exception
Logger.Warn("Label [{0}] does not have a translation!", oControl.Name) Logger.Warn("⚠️ Label [{0}] does not have a translation!", oControl.Name)
oControl.Text = row.Item("CTRL_TEXT") oControl.Text = row.Item("CTRL_TEXT")
End Try End Try
Dim oAlignment = row.ItemEx("TEXT_ALIGNMENT", "Near") Dim oAlignment = row.ItemEx("TEXT_ALIGNMENT", "Near")

View File

@@ -156,7 +156,7 @@ Public Class ClassFinalizeDoc
End If End If
Return indexierung_erfolgreich Return indexierung_erfolgreich
Catch ex As Exception Catch ex As Exception
LOGGER.Warn("Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString) LOGGER.Warn("⚠️ Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString)
Return False Return False
End Try End Try

View File

@@ -1,11 +1,12 @@
Imports DLLLicenseManager Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Config Imports DigitalData.Modules.Config
Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports System.Windows.Forms.VisualStyles.VisualStyleElement Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.Logging
Imports DLLLicenseManager
Imports DocumentFormat.OpenXml.Spreadsheet
Public Class ClassInit Public Class ClassInit
Public _lizenzManager As ClassLicenseManager Public _lizenzManager As ClassLicenseManager
@@ -20,21 +21,16 @@ Public Class ClassInit
My.Application.Info.CompanyName, My.Application.Info.CompanyName,
My.Application.Info.ProductName) My.Application.Info.ProductName)
LOGGER = LOGCONFIG.GetLogger("taskFLOW") LOGGER = LOGCONFIG.GetLogger("taskFLOW")
LOGGER.Info("## taskFLOW started - {0}", Now) LOGGER.Info("## taskFLOW started - {0}", Now)
Try Try
Dim directory As New IO.DirectoryInfo(Application.LocalUserAppDataPath & "\Log") Dim directory As New IO.DirectoryInfo(Application.LocalUserAppDataPath & "\Log")
For Each file As IO.FileInfo In directory.GetFiles For Each file As IO.FileInfo In directory.GetFiles
If (Now - file.CreationTime).Days > 29 Then If (Now - file.CreationTime).Days > 29 Then
file.Delete() file.Delete()
Else Else
Exit For Exit For
End If End If
Next Next
Catch ex As Exception Catch ex As Exception
@@ -59,6 +55,15 @@ Public Class ClassInit
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, oUserAppDataPath, oCommonAppDataPath, oStartupPath) CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, oUserAppDataPath, oCommonAppDataPath, oStartupPath)
LOGGER.Info("ConfigManager loaded") LOGGER.Info("ConfigManager loaded")
LOGGER.Info($"oUserAppDataPath will be: {oUserAppDataPath}")
If oStartupPath <> oCommonAppDataPath Then
LOGGER.Info($"oCommonAppDataPath will be: {oCommonAppDataPath}")
LOGGER.Info($"oStartupPath will be: {oStartupPath}")
Else
LOGGER.Info($"oStartupPath is the same as oCommonAppDataPath: {oCommonAppDataPath}")
End If
Try Try
If CONFIG.Config.ConnectionStringTest <> String.Empty And CONFIG.Config.TestMode = True Then If CONFIG.Config.ConnectionStringTest <> String.Empty And CONFIG.Config.TestMode = True Then
LOGGER.Debug("Test Connection String loaded") LOGGER.Debug("Test Connection String loaded")
@@ -85,11 +90,11 @@ Public Class ClassInit
LOGGER.Info($"EDMIAppServer [{CONFIG.Config.EDMIAppServer}] is active!") LOGGER.Info($"EDMIAppServer [{CONFIG.Config.EDMIAppServer}] is active!")
Else Else
LOGGER.Warn($"#### !!! Could not Connect to APPServer [{CONFIG.Config.EDMIAppServer}]!!! ###") LOGGER.Warn($"#### ⚠️ !!! Could not Connect to APPServer [{CONFIG.Config.EDMIAppServer}]!!! ###")
End If End If
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Warn($"Could not initialize the AppServer: {ex.Message}") LOGGER.Warn($"⚠️ Could not initialize the AppServer: {ex.Message}")
End Try End Try
Else Else
@@ -244,12 +249,12 @@ Public Class ClassInit
Try Try
oLICDATE = CDate(split(1)) oLICDATE = CDate(split(1))
Catch ex As Exception Catch ex As Exception
LOGGER.Warn($"Error Converting Value {split(1)} to DATE") LOGGER.Warn($"⚠️ Error Converting Value {split(1)} to DATE")
Try Try
Dim expenddt As Date = Date.ParseExact(split(1), "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) Dim expenddt As Date = Date.ParseExact(split(1), "dd.MM.yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)
oLICDATE = expenddt oLICDATE = expenddt
Catch ex1 As Exception Catch ex1 As Exception
LOGGER.Warn($"Second Error Converting DATE with ParseExact - Setting Date = Today") LOGGER.Warn($"⚠️Second Error Converting DATE with ParseExact - Setting Date = Today")
oLICDATE = Now.Date oLICDATE = Now.Date
End Try End Try
@@ -356,6 +361,7 @@ Public Class ClassInit
USER_EMAIL = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")) USER_EMAIL = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL")), "", DT_CHECKUSER_MODULE.Rows(0).Item("USER_EMAIL"))
USER_LANGUAGE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_LANGUAGE") USER_LANGUAGE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_LANGUAGE")
USER_MODULE_ID = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ID")
USER_IN_MODULE = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ACCESS") USER_IN_MODULE = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ACCESS")
@@ -385,7 +391,7 @@ Public Class ClassInit
USER_RIGHT_FILE_DELETE = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL")), False, DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL")) USER_RIGHT_FILE_DELETE = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL")), False, DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL"))
Catch ex As Exception Catch ex As Exception
LOGGER.Warn("Error in USER_RIGHT_FILE_DELETE: " & ex.Message) LOGGER.Warn("⚠️ Error in USER_RIGHT_FILE_DELETE: " & ex.Message)
USER_RIGHT_FILE_DELETE = False USER_RIGHT_FILE_DELETE = False
End Try End Try
USER_DATE_FORMAT = DT_CHECKUSER_MODULE.Rows(0).Item("USER_DATE_FORMAT") USER_DATE_FORMAT = DT_CHECKUSER_MODULE.Rows(0).Item("USER_DATE_FORMAT")
@@ -525,7 +531,10 @@ Public Class ClassInit
oSql = "SELECT * FROM TBDD_COLUMNS_FORMAT WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'" oSql = "SELECT * FROM TBDD_COLUMNS_FORMAT WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'"
BASEDATA_TBDD_COLUMNS_FORMAT = DatabaseFallback.GetDatatable("TBDD_COLUMNS_FORMAT", New GetDatatableOptions(oSql, DatabaseType.ECM)) BASEDATA_TBDD_COLUMNS_FORMAT = DatabaseFallback.GetDatatable("TBDD_COLUMNS_FORMAT", New GetDatatableOptions(oSql, DatabaseType.ECM))
oStopWatch.Done() oStopWatch.Done()
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Info($"Unexpected Error in InitBasics - last Step [{oStep}]: {ex.Message}", True) LOGGER.Info($"Unexpected Error in InitBasics - last Step [{oStep}]: {ex.Message}", True)
@@ -546,6 +555,48 @@ Public Class ClassInit
LOGGER.Warn($"no profiles for user: '{USER_USERNAME}' configured - Check SQL [{oSql}]!", False) LOGGER.Warn($"no profiles for user: '{USER_USERNAME}' configured - Check SQL [{oSql}]!", False)
End If End If
oSql = "SELECT KEY_NAME, VALUE_TEXT1
FROM TBDD_USER_KEY_VALUE_PAIR
WHERE FK_USER_ID = " & USER_ID & " And [FK_MODULE_ID] = '" & USER_MODULE_ID & "'"
Dim oDT_USER_KEY_VALUE_PAIR As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSql, DatabaseType.ECM))
If UserInheritance_ConfirmationByColumn Is Nothing Then
UserInheritance_ConfirmationByColumn = New List(Of UserInheritanceConfirmation)()
End If
If Not IsNothing(oDT_USER_KEY_VALUE_PAIR) Then
For Each row As DataRow In oDT_USER_KEY_VALUE_PAIR.Rows
Dim keyName As String = row("KEY_NAME").ToString()
' Prüfe ob es sich um einen Inheritance-Key handelt
If keyName.StartsWith("INHERITANCE_CONFIRM_") Then
Dim columnName As String = keyName.Replace("INHERITANCE_CONFIRM_", "")
Dim countValue As Integer = Integer.Parse(row("VALUE_TEXT1").ToString())
Dim existingEntry = UserInheritance_ConfirmationByColumn.FirstOrDefault(
Function(e) String.Equals(e.ColumnName, columnName, StringComparison.OrdinalIgnoreCase))
If existingEntry IsNot Nothing Then
existingEntry.Count = countValue
Else
UserInheritance_ConfirmationByColumn.Add(
New UserInheritanceConfirmation With {
.ColumnName = columnName,
.Count = countValue
})
End If
LOGGER.Debug("Loaded inheritance confirmation for column [{0}] with count [{1}]", columnName, countValue)
End If
Next
Else
LOGGER.Warn("⚠️ oDT_USER_KEY_VALUE_PAIR is nothing")
End If
oStopWatch.Done() oStopWatch.Done()
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)

View File

@@ -232,9 +232,12 @@ Public Class ClassParamRefresh
Dim oParam = oMode.Replace("TF.InheritanceCalcReset=", "") Dim oParam = oMode.Replace("TF.InheritanceCalcReset=", "")
Try Try
If CBool(oParam) = True Then If CBool(oParam) = True Then
LOGGER.Info("InheritanceMsgAmount wird auf 0 zurückgesetzt") LOGGER.Info("Inheritance_Counts werden auf 0 zurückgesetzt bzw gelöscht")
Dim oDELETESQL = "DELETE FROM TBDD_USER_KEY_VALUE_PAIR
WHERE FK_USER_ID = " & USER_ID & " And [FK_MODULE_ID] = '" & USER_MODULE_ID & "' AND KEY_NAME LIKE 'INHERITANCE_CONFIRM_%'"
DatabaseECM.ExecuteNonQuery(oDELETESQL)
CONFIG.Config.UserInheritance_ConfirmationByColumn = Nothing UserInheritance_ConfirmationByColumn = Nothing
CONFIG.Save() CONFIG.Save()
End If End If
Catch ex As Exception Catch ex As Exception

View File

@@ -211,7 +211,7 @@ LOGGER.Error(ex)
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
Try Try
If IsNothing(Me.oSession) Then If IsNothing(Me.oSession) Then
LOGGER.Warn("GetTypeOfIndex: WMSession is nothing") LOGGER.Warn("⚠️ GetTypeOfIndex: WMSession is nothing")
Return Nothing Return Nothing
End If End If
Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname) Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
@@ -272,7 +272,7 @@ LOGGER.Error(ex)
Public Function GetIndicesByObjecttype(ByVal Objecttype_name As String) As String() Public Function GetIndicesByObjecttype(ByVal Objecttype_name As String) As String()
Try Try
If IsNothing(Me.oSession) Then If IsNothing(Me.oSession) Then
LOGGER.Warn("GetIndicesByObjecttype: WMSession is nothing") LOGGER.Warn("⚠️ GetIndicesByObjecttype: WMSession is nothing")
Return Nothing Return Nothing
End If End If
Dim oObjectType As WMObject Dim oObjectType As WMObject
@@ -325,7 +325,7 @@ LOGGER.Error(ex)
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
Try Try
If IsNothing(Me.oSession) Then If IsNothing(Me.oSession) Then
LOGGER.Warn("GetObjecttypeByName: WMSession is nothing") LOGGER.Warn("⚠️ GetObjecttypeByName: WMSession is nothing")
Return Nothing Return Nothing
End If End If
' alle Objekttypen auslesen ' alle Objekttypen auslesen

View File

@@ -70,7 +70,7 @@ Namespace ControlCreator
Dim oConnectionId As Integer = oRow.ItemEx("CONNECTION_ID", 0) Dim oConnectionId As Integer = oRow.ItemEx("CONNECTION_ID", 0)
Dim oSqlCommand As String = oRow.ItemEx("SQL_COMMAND", "") Dim oSqlCommand As String = oRow.ItemEx("SQL_COMMAND", "")
If oConnectionId > 0 And oSqlCommand <> "" Then If oSqlCommand <> "" Then
Try Try
Dim oComboboxDataTable As DataTable = Nothing Dim oComboboxDataTable As DataTable = Nothing
Dim oColumnName As String = oRow.Item("SPALTENNAME") Dim oColumnName As String = oRow.Item("SPALTENNAME")
@@ -93,7 +93,7 @@ Namespace ControlCreator
_GridTables.Item(pControlId).Add(oColumnName, oRepositoryItem) _GridTables.Item(pControlId).Add(oColumnName, oRepositoryItem)
End If End If
Catch ex As Exception Catch ex As Exception
_Logger.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), pControlName) _Logger.Warn("⚠️ Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), pControlName)
_Logger.Error(ex) _Logger.Error(ex)
End Try End Try
End If End If
@@ -321,7 +321,7 @@ Namespace ControlCreator
End If End If
Next Next
Catch ex As Exception Catch ex As Exception
_Logger.Warn("Error in CustomRowCellEdit for [{0}]", e.CellValue) _Logger.Warn("⚠️ Error in CustomRowCellEdit for [{0}]", e.CellValue)
_Logger.Error(ex) _Logger.Error(ex)
End Try End Try
End Sub End Sub
@@ -484,16 +484,17 @@ Namespace ControlCreator
End Try End Try
End Sub End Sub
Private Function GetInheritanceConfirmationEntry(columnName As String) As ClassConfig.UserInheritanceConfirmation Private Function GetInheritanceConfirmationEntry(columnName As String) As UserInheritanceConfirmation
Dim entries = CONFIG.Config.UserInheritance_ConfirmationByColumn Dim entries = UserInheritance_ConfirmationByColumn
If entries Is Nothing Then If entries Is Nothing Then
entries = New List(Of ClassConfig.UserInheritanceConfirmation)() entries = New List(Of UserInheritanceConfirmation)()
CONFIG.Config.UserInheritance_ConfirmationByColumn = entries UserInheritance_ConfirmationByColumn = entries
End If End If
Dim entry = entries.FirstOrDefault(Function(item) String.Equals(item.ColumnName, columnName, StringComparison.OrdinalIgnoreCase)) Dim entry = entries.FirstOrDefault(Function(item) String.Equals(item.ColumnName, columnName, StringComparison.OrdinalIgnoreCase))
If entry Is Nothing Then If entry Is Nothing Then
entry = New ClassConfig.UserInheritanceConfirmation With { entry = New UserInheritanceConfirmation With {
.ColumnName = columnName, .ColumnName = columnName,
.Count = 0 .Count = 0
} }

View File

@@ -1,10 +1,11 @@
Imports WINDREAMLib Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.EDMI.API
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Windream Imports DigitalData.Modules.Windream
Imports DigitalData.Modules.ZooFlow
Imports taskFLOW.ClassConfig
Imports WINDREAMLib
Module ModuleRuntimeVariables Module ModuleRuntimeVariables
@@ -62,6 +63,7 @@ Module ModuleRuntimeVariables
Public Property USER_IS_ADMIN As Boolean = False Public Property USER_IS_ADMIN As Boolean = False
Public Property USER_ID = 0 Public Property USER_ID = 0
Public Property USER_MODULE_ID = 0
Public Property USER_PRENAME = "" Public Property USER_PRENAME = ""
Public Property USER_SURNAME = "" Public Property USER_SURNAME = ""
Public Property USER_SHORTNAME = "" Public Property USER_SHORTNAME = ""
@@ -80,6 +82,11 @@ Module ModuleRuntimeVariables
Public Property USER_USERNAME_ORG As String = "" Public Property USER_USERNAME_ORG As String = ""
Public Property USER_GHOST_MODE_ACTIVE As Boolean = False Public Property USER_GHOST_MODE_ACTIVE As Boolean = False
Public Property USER_GHOST_MODE_USRNAME As String = "" Public Property USER_GHOST_MODE_USRNAME As String = ""
Public Class UserInheritanceConfirmation
Public Property ColumnName As String = ""
Public Property Count As Integer
End Class
Public Property UserInheritance_ConfirmationByColumn As New List(Of UserInheritanceConfirmation)
Public Property FORCE_LAYOUT_OVERVIEW As Boolean = False Public Property FORCE_LAYOUT_OVERVIEW As Boolean = False
Public Property SHOW_CHARTS As Boolean = True Public Property SHOW_CHARTS As Boolean = True

View File

@@ -163,7 +163,7 @@ Public Class Validator
' Logger.Error(ex) ' Logger.Error(ex)
' Dim st As New StackTrace(True) ' Dim st As New StackTrace(True)
' st = New StackTrace(ex, True) ' st = New StackTrace(ex, True)
' Logger.Warn("Unexpected error in Check_UpdateIndexe TextBox :" & ex.Message, True) ' LOGGER.Warn("⚠️ Unexpected error in Check_UpdateIndexe TextBox :" & ex.Message, True)
' Return False ' Return False
' End Try ' End Try
'End Function 'End Function

View File

@@ -5,7 +5,6 @@ Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DigitalData.Modules.Language
''' <summary> ''' <summary>
''' Defines common Functions for Checking for and replacing placeholders. ''' Defines common Functions for Checking for and replacing placeholders.
''' This Class also includes a child class `Pattern` for passing around Patterns. ''' This Class also includes a child class `Pattern` for passing around Patterns.
@@ -72,7 +71,72 @@ Public Class clsPatterns
_ControlLookupCache = Nothing _ControlLookupCache = Nothing
LOGGER.Debug("Control cache cleared") LOGGER.Debug("Control cache cleared")
End Sub End Sub
''' <summary>
''' Aktualisiert den Wert eines Controls im Cache
''' </summary>
Public Shared Sub UpdateControlInCache(controlName As String, newValue As Object)
SyncLock _ControlLookupCache ' Thread-Safety
If _ControlLookupCache Is Nothing OrElse Not _ControlLookupCache.ContainsKey(controlName) Then
LOGGER.Warn($"Control [{controlName}] not found in cache for update")
Return
End If
' Hole das Control aus dem Cache
Dim ctrl As Control = _ControlLookupCache(controlName)
' Aktualisiere den WERT des Controls basierend auf seinem Typ
Try
Select Case ctrl.GetType
Case GetType(TextEdit), GetType(MemoEdit)
DirectCast(ctrl, BaseEdit).EditValue = newValue
Case GetType(LookupControl3)
Dim lookup = DirectCast(ctrl, LookupControl3)
If TypeOf newValue Is List(Of String) Then
lookup.Properties.SelectedValues = DirectCast(newValue, List(Of String))
ElseIf TypeOf newValue Is String Then
lookup.Properties.SelectedValues = New List(Of String) From {newValue.ToString()}
End If
Case GetType(Windows.Forms.ComboBox)
DirectCast(ctrl, ComboBox).Text = newValue?.ToString()
Case GetType(CheckBox)
If TypeOf newValue Is Boolean Then
DirectCast(ctrl, CheckBox).Checked = CBool(newValue)
End If
Case GetType(DateTimePicker)
If TypeOf newValue Is Date Then
DirectCast(ctrl, DateTimePicker).Value = CDate(newValue)
End If
Case Else
LOGGER.Warn($"Unsupported control type for cache update: {ctrl.GetType.Name}")
End Select
LOGGER.Debug($"Cache updated for control [{controlName}] with value type [{newValue?.GetType().Name}]")
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn($"Failed to update control [{controlName}]: {ex.Message}")
End Try
End SyncLock
End Sub
''' <summary>
''' Batch-Update für mehrere Controls
''' </summary>
Public Shared Sub UpdateMultipleControlsInCache(updates As Dictionary(Of String, Object))
If updates Is Nothing OrElse updates.Count = 0 Then Return
SyncLock _ControlLookupCache
For Each kvp In updates
UpdateControlInCache(kvp.Key, kvp.Value)
Next
LOGGER.Debug($"Batch cache update completed for {updates.Count} controls")
End SyncLock
End Sub
''' <summary> ''' <summary>
''' Wraps a pattern-type and -value in the common format: {#type#value} ''' Wraps a pattern-type and -value in the common format: {#type#value}
''' </summary> ''' </summary>
@@ -206,14 +270,16 @@ Public Class clsPatterns
End Sub End Sub
Public Shared Function ReplaceControlValues(pInput As String, oPanel As DevExpress.XtraEditors.XtraScrollableControl, oIsSQL As Boolean) As String Public Shared Function ReplaceControlValues(pInput As String, oPanel As DevExpress.XtraEditors.XtraScrollableControl, oIsSQL As Boolean) As String
Dim oResult = pInput Dim oResult = pInput
' Cache beim ersten Aufruf erstellen: ' Cache beim ersten Aufruf erstellen mit Lock
If _ControlLookupCache Is Nothing Then SyncLock GetType(clsPatterns) ' Class-Level Lock
_ControlLookupCache = New Dictionary(Of String, Control)() If _ControlLookupCache Is Nothing Then
For Each ctrl As Control In oPanel.Controls _ControlLookupCache = New Dictionary(Of String, Control)()
RecursiveAddToCache(ctrl, _ControlLookupCache) For Each ctrl As Control In oPanel.Controls
Next RecursiveAddToCache(ctrl, _ControlLookupCache)
LOGGER.Debug($"Control cache initialized with {_ControlLookupCache.Count} controls") Next
End If LOGGER.Debug($"Control cache initialized with {_ControlLookupCache.Count} controls")
End If
End SyncLock
Try Try
Dim oTryCounter = 0 Dim oTryCounter = 0
@@ -236,14 +302,23 @@ Public Class clsPatterns
End If End If
LOGGER.Debug("Found placeholder for control [{0}].", oControlName) LOGGER.Debug("Found placeholder for control [{0}].", oControlName)
' Beim Cache-Zugriff Lock verwenden
Dim oControl As Control = Nothing Dim oControl As Control = Nothing
If Not _ControlLookupCache.TryGetValue(oControlName, oControl) Then SyncLock _ControlLookupCache
LOGGER.Warn($"Control [{oControlName}] not found in cache!") If Not _ControlLookupCache.TryGetValue(oControlName, oControl) Then
' Fallback: Rekursive Suche als letzte Maßnahme LOGGER.Warn($"Control [{oControlName}] not found in cache!")
' Fallback außerhalb des Lock
End If
End SyncLock
' Fallback außerhalb des Lock
If oControl Is Nothing Then
oControl = oPanel.Controls.Find(oControlName, True).FirstOrDefault() oControl = oPanel.Controls.Find(oControlName, True).FirstOrDefault()
If oControl IsNot Nothing Then If oControl IsNot Nothing Then
LOGGER.Info($"Control [{oControlName}] found via fallback search. Adding to cache.") LOGGER.Info($"Control [{oControlName}] found via fallback. Adding to cache.")
_ControlLookupCache(oControlName) = oControl SyncLock _ControlLookupCache
_ControlLookupCache(oControlName) = oControl
End SyncLock
End If End If
End If End If
@@ -308,7 +383,7 @@ Public Class clsPatterns
Dim oView As GridView = oGrid.FocusedView Dim oView As GridView = oGrid.FocusedView
If oColumnName = String.Empty Then If oColumnName = String.Empty Then
LOGGER.Warn("Used placeholder for Table [{0}] but without Column Name!", oControlName) LOGGER.Warn("⚠️ Used placeholder for Table [{0}] but without Column Name!", oControlName)
oReplaceValue = ERROR_REPLACE_VALUE oReplaceValue = ERROR_REPLACE_VALUE
End If End If
@@ -317,7 +392,7 @@ Public Class clsPatterns
SingleOrDefault() SingleOrDefault()
If oColumn?.SummaryItem?.SummaryValue Is Nothing Then If oColumn?.SummaryItem?.SummaryValue Is Nothing Then
LOGGER.Warn("Column [{0}] not found in Grid!", oColumnName) LOGGER.Warn("⚠️ Column [{0}] not found in Grid!", oColumnName)
oReplaceValue = ERROR_REPLACE_VALUE oReplaceValue = ERROR_REPLACE_VALUE
Else Else
oReplaceValue = oColumn.SummaryItem.SummaryValue oReplaceValue = oColumn.SummaryItem.SummaryValue
@@ -333,7 +408,7 @@ Public Class clsPatterns
End If End If
oResult = ReplacePattern(oResult, PATTERN_CTRL, oReplaceValue) oResult = ReplacePattern(oResult, PATTERN_CTRL, oReplaceValue)
Else Else
LOGGER.Warn("Could not get a Control for [{0}].", oControlName) LOGGER.Warn("⚠️ Could not get a Control for [{0}].", oControlName)
End If End If
oTryCounter += 1 oTryCounter += 1
@@ -341,7 +416,7 @@ Public Class clsPatterns
Return oResult Return oResult
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Warn("Error in ReplaceControlValues:" & ex.Message) LOGGER.Warn("⚠️ Error in ReplaceControlValues:" & ex.Message)
Return oResult Return oResult
End Try End Try
End Function End Function

View File

@@ -246,7 +246,7 @@ Partial Class frmMain
' '
'Panel1 'Panel1
' '
Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke Me.Panel1.BackColor = System.Drawing.Color.Transparent
Me.Panel1.Controls.Add(Me.GridControlWorkflows) Me.Panel1.Controls.Add(Me.GridControlWorkflows)
Me.Panel1.Controls.Add(Me.Panel2) Me.Panel1.Controls.Add(Me.Panel2)
Me.Panel1.Controls.Add(Me.NavBarControl1) Me.Panel1.Controls.Add(Me.NavBarControl1)

View File

@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAAaABCwGgAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAAbABCwGwAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

File diff suppressed because it is too large Load Diff

View File

@@ -918,7 +918,7 @@ Public Class frmMassValidator
Else Else
'not implemented 'not implemented
LOGGER.Warn("Depending_Control_Set_Result for [{0}] NOT IMPLEMENTED", displayboxname) LOGGER.Warn("⚠️ Depending_Control_Set_Result for [{0}] NOT IMPLEMENTED", displayboxname)
End If End If
Else Else
If oResultTable.Rows.Count = 1 Then If oResultTable.Rows.Count = 1 Then
@@ -929,7 +929,7 @@ Public Class frmMassValidator
End If End If
End If End If
Else Else
LOGGER.Warn("Result Table is nothing!") LOGGER.Warn("⚠️ Result Table is nothing!")
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Info("Unexpected Ersror in Depending_Control_Set_Result - ERROR: " & ex.Message) LOGGER.Info("Unexpected Ersror in Depending_Control_Set_Result - ERROR: " & ex.Message)

View File

@@ -36,7 +36,7 @@ Public Class frmMonitor
Try Try
oDocID = GridView1.GetFocusedRowCellValue(GridView1.Columns("ObjectID")) oDocID = GridView1.GetFocusedRowCellValue(GridView1.Columns("ObjectID"))
Catch ex1 As Exception Catch ex1 As Exception
LOGGER.Warn("Could not get Doc/ObjectReference: " & ex.Message) LOGGER.Warn("⚠️ Could not get Doc/ObjectReference: " & ex.Message)
MsgBox("Could not get Doc/ObjectReference: " & ex.Message, MsgBoxStyle.Critical, "Load_Detail") MsgBox("Could not get Doc/ObjectReference: " & ex.Message, MsgBoxStyle.Critical, "Load_Detail")
Exit Sub Exit Sub
End Try End Try

View File

@@ -129,7 +129,8 @@ Public Class frmValidator
Private _SqlControlsByGuid As Dictionary(Of Integer, List(Of DataRow)) Private _SqlControlsByGuid As Dictionary(Of Integer, List(Of DataRow))
Private _LookupControlsByRepository As Dictionary(Of RepositoryItemLookupControl3, LookupControl3) Private _LookupControlsByRepository As Dictionary(Of RepositoryItemLookupControl3, LookupControl3)
Private _CachedFinalIndexing As DataTable = Nothing Private _CachedFinalIndexing As DataTable = Nothing
Private _isUpdatingLookup As Boolean = False
Private _suppressLookupEvents As Boolean = False
Private Class Translation_Strings Private Class Translation_Strings
Inherits My.Resources.frmValidator_Strings Inherits My.Resources.frmValidator_Strings
End Class End Class
@@ -186,7 +187,7 @@ Public Class frmValidator
' === MESSPUNKT 1: Start === ' === MESSPUNKT 1: Start ===
Dim perfStart As DateTime = If(LOG_HOTSPOTS, DateTime.Now, Nothing) Dim perfStart As DateTime = If(LOG_HOTSPOTS, DateTime.Now, Nothing)
Dim perfLastCheck As DateTime = perfStart Dim perfLastCheck As DateTime = perfStart
If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF] frmValidation_Load START") If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_Load] START")
Try Try
MyValidationLogger.Debug("###frmValidation_Load###") MyValidationLogger.Debug("###frmValidation_Load###")
@@ -215,7 +216,7 @@ Public Class frmValidator
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Initialisierung: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Initialisierung: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -257,7 +258,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Position/Size: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Position/Size: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -277,7 +278,7 @@ Public Class frmValidator
DocumentViewer1.Init(LOGCONFIG, GDPICTURE_LICENSE, oDVSettings) DocumentViewer1.Init(LOGCONFIG, GDPICTURE_LICENSE, oDVSettings)
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach DocumentViewer.Init: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach DocumentViewer.Init: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -295,7 +296,7 @@ Public Class frmValidator
DTVWCONTROLS_INDEX.Select(oExpression, "Y_LOC, X_LOC").CopyToDataTable(DTVWCONTROL_INDEX, LoadOption.PreserveChanges) DTVWCONTROLS_INDEX.Select(oExpression, "Y_LOC, X_LOC").CopyToDataTable(DTVWCONTROL_INDEX, LoadOption.PreserveChanges)
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach DTVWCONTROL_INDEX laden ({DTVWCONTROL_INDEX.Rows.Count} Rows): {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach DTVWCONTROL_INDEX laden ({DTVWCONTROL_INDEX.Rows.Count} Rows): {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -354,7 +355,7 @@ Public Class frmValidator
CURRENT_PROFILE_LOG_INDEX = PROFIL_LOGINDEX CURRENT_PROFILE_LOG_INDEX = PROFIL_LOGINDEX
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Profile-Properties: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Profile-Properties: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -382,7 +383,7 @@ Public Class frmValidator
If profileLangUser.TryGetValue(notRespQKey, row) Then oProfileNotResponsibleQuestion = row.Item("STRING1") If profileLangUser.TryGetValue(notRespQKey, row) Then oProfileNotResponsibleQuestion = row.Item("STRING1")
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Language-Loop ({CURRENT_DT_PROFILE_LANGUAGE.Rows.Count} Rows): {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Language-Loop ({CURRENT_DT_PROFILE_LANGUAGE.Rows.Count} Rows): {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -434,7 +435,7 @@ Public Class frmValidator
MyValidationLogger.Debug("Buttontext validation loaded") MyValidationLogger.Debug("Buttontext validation loaded")
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Button-Setup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Button-Setup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -521,7 +522,7 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Rejection/NR-Setup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Rejection/NR-Setup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -557,10 +558,10 @@ Public Class frmValidator
MyValidationLogger.Debug("Right_Delete: " & USER_RIGHT_FILE_DELETE.ToString) MyValidationLogger.Debug("Right_Delete: " & USER_RIGHT_FILE_DELETE.ToString)
' === MESSPUNKT 10: Create_Controls (KRITISCH - wahrscheinlich größter Hotspot) === ' === MESSPUNKT 10: Create_Controls (KRITISCH - wahrscheinlich größter Hotspot) ===
If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF] Vor Create_Controls") If LOG_HOTSPOTS Then MyValidationLogger.Info($"[PERF frmValidation_Load] Vor Create_Controls")
Create_Controls() Create_Controls()
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] Nach Create_Controls: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] Nach Create_Controls: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
End If End If
@@ -570,7 +571,7 @@ Public Class frmValidator
' === MESSPUNKT 11: Gesamt-Zeit === ' === MESSPUNKT 11: Gesamt-Zeit ===
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF] GESAMT frmValidation_Load: {(DateTime.Now - perfStart).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_Load] GESAMT frmValidation_Load: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
End If End If
Catch ex As Exception Catch ex As Exception
@@ -581,6 +582,14 @@ Public Class frmValidator
End Sub End Sub
Private Sub frmValidation_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Private Sub frmValidation_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim perfStart As DateTime = DateTime.MinValue
Dim perfLastCheck As DateTime = DateTime.MinValue
If LOG_HOTSPOTS Then
perfStart = DateTime.Now
perfLastCheck = perfStart
MyValidationLogger.Info("[PERF frmValidation_FormClosing] START")
End If
Try Try
_FormClosing = True _FormClosing = True
@@ -589,6 +598,12 @@ Public Class frmValidator
frmMessages.Close() frmMessages.Close()
End If End If
End If End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Messages-Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Try Try
' Position und Größe speichern ' Position und Größe speichern
My.Settings.frmValidatorSize = Me.Size My.Settings.frmValidatorSize = Me.Size
@@ -598,9 +613,24 @@ Public Class frmValidator
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
MyValidationLogger.Info("Error in Load FormLayout: " & ex.Message) MyValidationLogger.Info("Error in Load FormLayout: " & ex.Message)
End Try End Try
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Settings.Save: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
My.Settings.frmValidatorSize = Me.Size My.Settings.frmValidatorSize = Me.Size
My.Settings.Save() My.Settings.Save()
If INACTIVITY_DURATION <> 0 Then frmMain.Timer_Inactivity_Reset_Disable("FormClosing")
If INACTIVITY_DURATION <> 0 Then
frmMain.Timer_Inactivity_Reset_Disable("FormClosing")
End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Timer-Reset: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
End Try End Try
@@ -608,13 +638,20 @@ Public Class frmValidator
Try Try
Dim oSQL As String Dim oSQL As String
If CURRENT_DOC_GUID <> 0 Then If CURRENT_DOC_GUID <> 0 Then
Dim oPRoc = String.Format("EXEC PRTF_PROFILE_FILES_WORK {0},{1},{2},'FreeFile'", CURRENT_DOC_ID, CURRENT_ProfilGUID, USER_ID)
oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};" & vbNewLine & oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};" & vbNewLine &
$"UPDATE TBPM_PROFILE_FILES Set IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID};" oPRoc
Else Else
oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};" oSQL = $"DELETE FROM TBPM_DOCWALKOVER WHERE UserID = {USER_ID};"
End If End If
DatabaseFallback.ExecuteNonQueryECM(oSQL) DatabaseFallback.ExecuteNonQueryECM(oSQL)
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DB-Cleanup: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
MsgBox("Error in delete jumped files:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) MsgBox("Error in delete jumped files:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
@@ -622,25 +659,43 @@ Public Class frmValidator
Reset_CurrentReferences() Reset_CurrentReferences()
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach Reset_CurrentReferences: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Try Try
If Not IsNothing(DocumentViewer1) Then If Not IsNothing(DocumentViewer1) Then
DocumentViewer1.CloseDocument() DocumentViewer1.CloseDocument()
DocumentViewer1.Done() DocumentViewer1.Done()
End If End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach DocumentViewer.Done: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in DocumentViewerValidator.Done: {ex.Message}") MyValidationLogger.Warn($"Unexpected error in DocumentViewerValidator.Done: {ex.Message}")
End Try End Try
Try Try
_frmValidatorSearch.Close() _frmValidatorSearch.Close()
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
End Try End Try
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
End If
End Sub End Sub
Sub Reset_CurrentReferences() Sub Reset_CurrentReferences()
MyValidationLogger.Info("Attention: Reset_CurrentReferences....")
If Not IsNothing(DT_AdditionalSearches_Resultset_Docs) Then If Not IsNothing(DT_AdditionalSearches_Resultset_Docs) Then
DT_AdditionalSearches_Resultset_Docs.Clear() DT_AdditionalSearches_Resultset_Docs.Clear()
End If End If
@@ -858,7 +913,7 @@ Public Class frmValidator
lookup.Properties.ValueMember = oDTContent.Columns.Item(0).ColumnName lookup.Properties.ValueMember = oDTContent.Columns.Item(0).ColumnName
lookup.Properties.DisplayMember = oDTContent.Columns.Item(0).ColumnName lookup.Properties.DisplayMember = oDTContent.Columns.Item(0).ColumnName
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn("Error in LookUpLoadSQLData: " & ex.Message) MyValidationLogger.Warn("⚠️ Error in LookUpLoadSQLData: " & ex.Message)
End Try End Try
ElseIf TypeOf control Is DevExpress.XtraEditors.TextEdit Or TypeOf control Is MemoEdit Then ElseIf TypeOf control Is DevExpress.XtraEditors.TextEdit Or TypeOf control Is MemoEdit Then
@@ -870,7 +925,7 @@ Public Class frmValidator
DirectCast(control, BaseEdit).EditValue = value DirectCast(control, BaseEdit).EditValue = value
oValue = value oValue = value
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn("Error in TextBoxLoadSQLData: " & ex.Message) MyValidationLogger.Warn("⚠️ Error in TextBoxLoadSQLData: " & ex.Message)
End Try End Try
ElseIf TypeOf control Is Windows.Forms.ComboBox Then ElseIf TypeOf control Is Windows.Forms.ComboBox Then
Try Try
@@ -887,7 +942,7 @@ Public Class frmValidator
oMyComboBox.SelectedIndex = oselectedIndex oMyComboBox.SelectedIndex = oselectedIndex
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn("Error in ComboBoxLoadSQLData: " & ex.Message) MyValidationLogger.Warn("⚠️ Error in ComboBoxLoadSQLData: " & ex.Message)
End Try End Try
ElseIf TypeOf control Is GridControl Then ElseIf TypeOf control Is GridControl Then
@@ -913,7 +968,7 @@ Public Class frmValidator
dataGridView.DataSource = oDataSource dataGridView.DataSource = oDataSource
End If End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn("Error in GridControlSQLData: " & ex.Message) MyValidationLogger.Warn("⚠️ Error in GridControlSQLData: " & ex.Message)
End Try End Try
End If End If
Next Next
@@ -1362,6 +1417,9 @@ Public Class frmValidator
MyValidationLogger.Debug($"Control [{oMeta.Name}] marked as dirty") MyValidationLogger.Debug($"Control [{oMeta.Name}] marked as dirty")
End If End If
' *** NEU: Cache aktualisieren ***
clsPatterns.UpdateControlInCache(oTextbox.Name, oTextbox.EditValue)
SetControlValues_FromControl(oTextbox) SetControlValues_FromControl(oTextbox)
Controls2beEnabled(oTextbox.Name) Controls2beEnabled(oTextbox.Name)
ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER) ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER)
@@ -1444,8 +1502,7 @@ Public Class frmValidator
MyValidationLogger.Info("Unexpected Error in Eventhandler Variable SQL Result - ERROR: " & ex.Message) MyValidationLogger.Info("Unexpected Error in Eventhandler Variable SQL Result - ERROR: " & ex.Message)
End Try End Try
If oTextBox.Name <> last_control.Name Then If oTextBox.Name <> last_control.Name Then
SendKeys.Send("{TAB}") Me.SelectNextControl(oTextBox, True, True, True, True)
_ControlHandleStarted = True
End If End If
End If End If
End If End If
@@ -1458,12 +1515,12 @@ Public Class frmValidator
Dim oControlID = DirectCast(oButton.Tag, ClassControlCreator.ControlMetadata).Guid Dim oControlID = DirectCast(oButton.Tag, ClassControlCreator.ControlMetadata).Guid
Dim oSQL = ControlCreator.GET_CONTROL_PROPERTY(DT_CONTROLS, oControlID, "SQL_UEBERPRUEFUNG") Dim oSQL = ControlCreator.GET_CONTROL_PROPERTY(DT_CONTROLS, oControlID, "SQL_UEBERPRUEFUNG")
If IsNothing(oSQL) Then If IsNothing(oSQL) Then
MyValidationLogger.Warn("onCustomButtonClick - SQL_UEBERPRUEFUNG IS NOTHING") MyValidationLogger.Warn("⚠️ onCustomButtonClick - SQL_UEBERPRUEFUNG IS NOTHING")
Exit Sub Exit Sub
End If End If
If Check_UpdateIndexe() = False Then If Check_UpdateIndexe() = False Then
MyValidationLogger.Warn("onCustomButtonClick - Check_UpdateIndexe = False >> Exit Click") MyValidationLogger.Warn("⚠️ onCustomButtonClick - Check_UpdateIndexe = False >> Exit Click")
Exit Sub Exit Sub
End If End If
Override_SQLCommand = ControlCreator.GET_CONTROL_PROPERTY(DT_CONTROLS, oControlID, "SQL2") Override_SQLCommand = ControlCreator.GET_CONTROL_PROPERTY(DT_CONTROLS, oControlID, "SQL2")
@@ -1659,7 +1716,7 @@ Public Class frmValidator
Public Sub onLookUpselectedValue(sender As Object, SelectedValues As List(Of String)) Public Sub onLookUpselectedValue(sender As Object, SelectedValues As List(Of String))
Try Try
MyValidationLogger.Debug("onLookUpselectedValue") MyValidationLogger.Debug("onLookUpselectedValue")
If _FormLoaded = False Then If _FormLoaded = False Or _suppressLookupEvents Then
Exit Sub Exit Sub
End If End If
@@ -1668,38 +1725,61 @@ Public Class frmValidator
Exit Sub Exit Sub
End If End If
Dim oRepositoryItem As RepositoryItemLookupControl3 = sender ' *** WICHTIG: Auch hier globalen Guard setzen ***
Dim oLookup As LookupControl3 = Nothing _suppressLookupEvents = True
Try
Dim oRepositoryItem As RepositoryItemLookupControl3 = sender
Dim oLookup As LookupControl3 = Nothing
If _LookupControlsByRepository IsNot Nothing Then If _LookupControlsByRepository IsNot Nothing Then
_LookupControlsByRepository.TryGetValue(oRepositoryItem, oLookup) _LookupControlsByRepository.TryGetValue(oRepositoryItem, oLookup)
End If End If
If oLookup Is Nothing Then If oLookup Is Nothing Then
oLookup = TryCast(oRepositoryItem.OwnerEdit, LookupControl3) oLookup = TryCast(oRepositoryItem.OwnerEdit, LookupControl3)
End If End If
If oLookup Is Nothing Then If oLookup Is Nothing Then
MyValidationLogger.Warn("onLookUpselectedValue: LookupControl not found for RepositoryItem") MyValidationLogger.Warn("⚠️ onLookUpselectedValue: LookupControl not found for RepositoryItem")
Exit Sub Exit Sub
End If End If
LookupControl_DependingControls(oLookup, SelectedValues) LookupControl_DependingControls(oLookup, SelectedValues)
LookupControl_EnablingControls(oLookup, SelectedValues) LookupControl_EnablingControls(oLookup, SelectedValues)
LookupControl_DependingColumn(oLookup, SelectedValues) LookupControl_DependingColumn(oLookup, SelectedValues)
Finally
_suppressLookupEvents = False
End Try
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn("Unexpected error in onLookUpselectedValue - " + ex.Message) MyValidationLogger.Warn("⚠️ Unexpected error in onLookUpselectedValue - " + ex.Message)
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
_suppressLookupEvents = False ' Sicherheits-Reset
End Try End Try
End Sub End Sub
Private _lookupUpdateDepth As Integer = 0
Private Const MAX_LOOKUP_DEPTH As Integer = 5
Public Sub LookupListChanged(sender As Object, SelectedValues As List(Of String)) Public Sub LookupListChanged(sender As Object, SelectedValues As List(Of String))
If _FormLoaded = False Or PanelValidatorControl.Enabled = False Then If _FormLoaded = False Or PanelValidatorControl.Enabled = False Then
Exit Sub Exit Sub
End If End If
' *** GLOBALER GUARD: Blockiert ALLE Lookup-Updates während Verarbeitung ***
If _suppressLookupEvents Then
MyValidationLogger.Debug("LookupListChanged suppressed (global guard active)")
Exit Sub
End If
' *** DEPTH-GUARD: Verhindert extrem tiefe Rekursionen ***
If _lookupUpdateDepth >= MAX_LOOKUP_DEPTH Then
MyValidationLogger.Warn($"Lookup recursion depth exceeded ({_lookupUpdateDepth}). Aborting.")
Exit Sub
End If
Try Try
_suppressLookupEvents = True ' <-- Globaler Guard aktivieren
_lookupUpdateDepth += 1
Dim oLookup As RepositoryItemLookupControl3 = sender Dim oLookup As RepositoryItemLookupControl3 = sender
Dim oLookupControl As LookupControl3 = Nothing Dim oLookupControl As LookupControl3 = Nothing
@@ -1724,8 +1804,11 @@ Public Class frmValidator
oMeta.IsDirty = True oMeta.IsDirty = True
MyValidationLogger.Debug($"LookupControl [{oMeta.Name}] marked as dirty") MyValidationLogger.Debug($"LookupControl [{oMeta.Name}] marked as dirty")
listChangedLookup.Add(oLookupControl.Name) listChangedLookup.Add(oLookupControl.Name)
' *** Cache aktualisieren ***
clsPatterns.UpdateControlInCache(oLookupControl.Name, SelectedValues)
Else Else
listChangedLookup.Add(oLookup.Name) listChangedLookup.Add(oLookup.Name)
clsPatterns.UpdateControlInCache(oLookup.Name, SelectedValues)
End If End If
ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER) ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER)
@@ -1744,10 +1827,13 @@ Public Class frmValidator
Exit For Exit For
End If End If
Next Next
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
Finally
_lookupUpdateDepth -= 1
_suppressLookupEvents = False ' <-- Globaler Guard deaktivieren
End Try End Try
End Sub End Sub
Private Sub GridView_CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs) Private Sub GridView_CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs)
Dim oView As GridView = sender Dim oView As GridView = sender
@@ -1768,6 +1854,8 @@ Public Class frmValidator
Dim oMeta As ClassControlCreator.ControlMetadata = oCheckbox.Tag Dim oMeta As ClassControlCreator.ControlMetadata = oCheckbox.Tag
oMeta.IsDirty = True oMeta.IsDirty = True
MyValidationLogger.Debug($"CheckBox [{oMeta.Name}] marked as dirty") MyValidationLogger.Debug($"CheckBox [{oMeta.Name}] marked as dirty")
' *** NEU: Cache aktualisieren ***
clsPatterns.UpdateControlInCache(oCheckbox.Name, oCheckbox.Checked)
Try Try
CheckBox_DependingControls(oCheckbox) CheckBox_DependingControls(oCheckbox)
@@ -1855,7 +1943,7 @@ Public Class frmValidator
Dim oControlId2Set As Integer Dim oControlId2Set As Integer
'If Not Integer.TryParse(oControl2Set, oControlId2Set) Then 'If Not Integer.TryParse(oControl2Set, oControlId2Set) Then
' Logger.Warn("Careful: the oControl2Set contains no CONTROL_GUID") ' LOGGER.Warn("⚠️ Careful: the oControl2Set contains no CONTROL_GUID")
' Exit Sub ' Exit Sub
'End If 'End If
@@ -1991,7 +2079,7 @@ Public Class frmValidator
Case Else Case Else
MyValidationLogger.Warn("SetControlData used on unsupported control") MyValidationLogger.Warn("⚠️ SetControlData used on unsupported control")
End Select End Select
@@ -2011,36 +2099,38 @@ Public Class frmValidator
Next Next
End Sub End Sub
Private Sub LookupControl_DependingControls(LookupControl As LookupControl3, SelectedValues As List(Of String)) Private Sub LookupControl_DependingControls(LookupControl As LookupControl3, SelectedValues As List(Of String))
Dim oLOOKUPValue = SelectedValues.Item(0 Dim oLOOKUPValue = SelectedValues.Item(0)
)
Dim oLOOKUPName = LookupControl.Name Dim oLOOKUPName = LookupControl.Name
MyValidationLogger.Debug($"oLOOKUPValue Is [{oLOOKUPValue}]!") MyValidationLogger.Debug($"oLOOKUPValue Is [{oLOOKUPValue}]!")
Dim oControlID = DirectCast(LookupControl.Tag, ClassControlCreator.ControlMetadata).Guid Dim oControlID = DirectCast(LookupControl.Tag, ClassControlCreator.ControlMetadata).Guid
Dim oFilteredDatatable As DataTable = DT_CONTROLS.Clone() Dim oFilteredDatatable As DataTable = DT_CONTROLS.Clone()
Dim oExpression = $"SQL_UEBERPRUEFUNG Like '%#CTRL#{oLOOKUPName}%'" Dim oExpression = $"SQL_UEBERPRUEFUNG Like '%#CTRL#{oLOOKUPName}%'"
DT_CONTROLS.Select(oExpression).CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges) DT_CONTROLS.Select(oExpression).CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges)
If oFilteredDatatable.Rows.Count > 0 Then If oFilteredDatatable.Rows.Count > 0 Then
MyValidationLogger.Debug($"We got {oFilteredDatatable.Rows.Count} depending controls!!") MyValidationLogger.Debug($"We got {oFilteredDatatable.Rows.Count} depending controls!!")
Else Else
MyValidationLogger.Debug($"Sorry NO depending controls!!") MyValidationLogger.Debug($"Sorry NO depending controls!!")
End If End If
For Each oRowDependingControl As DataRow In oFilteredDatatable.Rows For Each oRowDependingControl As DataRow In oFilteredDatatable.Rows
Dim oDEPENDING_GUID = oRowDependingControl.Item("GUID") Dim oDEPENDING_GUID = oRowDependingControl.Item("GUID")
Dim oDEPENDING_CtrlName = oRowDependingControl.Item("NAME") Dim oDEPENDING_CtrlName = oRowDependingControl.Item("NAME")
MyValidationLogger.Debug($"Control {oDEPENDING_CtrlName} is depending on lookUp {oLOOKUPName}..") MyValidationLogger.Debug($"Control {oDEPENDING_CtrlName} is depending on lookUp {oLOOKUPName}..")
If _DependingControl_In_Action = True Then If _DependingControl_In_Action = True Then
MyValidationLogger.Info($"..but _dependingControl_in_action = True ==> Exit Sub!") MyValidationLogger.Info($"..but _dependingControl_in_action = True ==> Exit Sub!")
Exit Sub Exit Sub
End If End If
If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then
Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG"))
oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True)
_DependingControl_In_Action = True _DependingControl_In_Action = True
'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"LookupControl_DependingControls - oControlID: {oControlID}")
'Dim oDTDEPENDING_RESULT As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With {
' .ConnectionId = oRowDependingControl.Item("CONNECTION_ID")
'})
Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID")) Dim oDTDEPENDING_RESULT As DataTable = GetCachedDatatable(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"))
If Not IsNothing(oDTDEPENDING_RESULT) Then If Not IsNothing(oDTDEPENDING_RESULT) Then
Try Try
Dim oFound As Boolean = False Dim oFound As Boolean = False
@@ -2049,72 +2139,78 @@ Public Class frmValidator
If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid = oDEPENDING_GUID Then If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid = oDEPENDING_GUID Then
oFound = True oFound = True
MyValidationLogger.Debug($"Got the depending control ID:{oDEPENDING_GUID}..Setting the values..") MyValidationLogger.Debug($"Got the depending control ID:{oDEPENDING_GUID}..Setting the values..")
Select Case True
Case oControl.GetType() = GetType(DevExpress.XtraEditors.TextEdit) Or oControl.GetType() = GetType(MemoEdit) ' *** WICHTIG: Während Suppress-Modus Updates durchführen ***
Try Dim wasSuppressed = _suppressLookupEvents
Dim oValue As Object = oDTDEPENDING_RESULT.Rows(0).Item(0) _suppressLookupEvents = True
MyValidationLogger.Debug(String.Format("Setting EditValue with value [{0}]", oValue))
oValue = ObjectEx.NotNull(Of Object)(oValue, Nothing) Try
Select Case True
Case oControl.GetType() = GetType(DevExpress.XtraEditors.TextEdit) Or oControl.GetType() = GetType(MemoEdit)
Try Try
'oControl.Text = oValue Dim oValue As Object = oDTDEPENDING_RESULT.Rows(0).Item(0)
DirectCast(oControl, DevExpress.XtraEditors.TextEdit).EditValue = oValue MyValidationLogger.Debug(String.Format("Setting EditValue with value [{0}]", oValue))
oValue = ObjectEx.NotNull(Of Object)(oValue, Nothing)
Try
DirectCast(oControl, DevExpress.XtraEditors.TextEdit).EditValue = oValue
Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in Checking oTEXT: {ex.Message}")
End Try
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in Checking oTEXT: {ex.Message}") MyValidationLogger.Warn($"Unexpected error in Dim oTEXT = oDTDEPENDING_RESULT.Rows(0).Item(0): {ex.Message}")
End Try End Try
Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in Dim oTEXT = oDTDEPENDING_RESULT.Rows(0).Item(0): {ex.Message}")
End Try
Dim oColor
Try
oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("BackgroundColor"))
oControl.BackColor = oColor
Catch ex As Exception
oControl.BackColor = Color.White
End Try
Try
Dim btntext = oDTDEPENDING_RESULT.Rows(0).Item("btnFinishCaption")
btnSave.Text = btntext & " (F2)"
Catch ex As Exception
End Try
Try
oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("btnFinishColor"))
btnSave.BackColor = oColor
Catch ex As Exception
btnSave.BackColor = Color.Transparent
End Try
Case oControl.GetType() = GetType(LookupControl3)
Dim oDependingLookup As LookupControl3 = oControl
oDependingLookup.Properties.DataSource = oDTDEPENDING_RESULT
oDependingLookup.Properties.ValueMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName
oDependingLookup.Properties.DisplayMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName
Case oControl.GetType() = GetType(GridControl)
'ClassControlCreator.GridTables
Case oControl.GetType() = GetType(CheckBox)
Try
Dim oCheckState = CBool(oDTDEPENDING_RESULT.Rows(0).Item(0))
Dim oDependingChk As CheckBox = oControl
oDependingChk.CheckState = oCheckState
Dim oColor Dim oColor
Try Try
oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("BackgroundColor")) oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("BackgroundColor"))
oControl.BackColor = oColor oControl.BackColor = oColor
Catch ex As Exception Catch ex As Exception
oControl.BackColor = Color.White
End Try
Try
Dim btntext = oDTDEPENDING_RESULT.Rows(0).Item("btnFinishCaption")
btnSave.Text = btntext & " (F2)"
Catch ex As Exception
End Try
Try
oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("btnFinishColor"))
btnSave.BackColor = oColor
Catch ex As Exception
btnSave.BackColor = Color.Transparent
End Try End Try
Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in Checking oCheckBoxDependingControlLOOKUP: {ex.Message}")
End Try
Case oControl.GetType() = GetType(LookupControl3)
Dim oDependingLookup As LookupControl3 = oControl
oDependingLookup.Properties.DataSource = oDTDEPENDING_RESULT
oDependingLookup.Properties.ValueMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName
oDependingLookup.Properties.DisplayMember = oDTDEPENDING_RESULT.Columns.Item(0).ColumnName
Case oControl.GetType() = GetType(GridControl)
' GridControl-Handling
Case oControl.GetType() = GetType(CheckBox)
Try
Dim oCheckState = CBool(oDTDEPENDING_RESULT.Rows(0).Item(0))
Dim oDependingChk As CheckBox = oControl
oDependingChk.CheckState = oCheckState
Dim oColor
Try
oColor = System.Drawing.Color.FromName(oDTDEPENDING_RESULT.Rows(0).Item("BackgroundColor"))
oControl.BackColor = oColor
Catch ex As Exception
End Try
Catch ex As Exception
MyValidationLogger.Warn($"Unexpected error in Checking oCheckBoxDependingControlLOOKUP: {ex.Message}")
End Try
End Select
Finally
' Restore previous state
_suppressLookupEvents = wasSuppressed
End Try
End Select
_DependingControl_In_Action = False _DependingControl_In_Action = False
Exit For Exit For
End If End If
Next Next
If oFound = False Then If oFound = False Then
@@ -2127,19 +2223,10 @@ Public Class frmValidator
Else Else
MyValidationLogger.Warn($"Datatable for Depending Controls was nothing! Check the SQL [{oSqlCommand}]") MyValidationLogger.Warn($"Datatable for Depending Controls was nothing! Check the SQL [{oSqlCommand}]")
End If End If
SendKeys.Send("{TAB}")
_ControlHandleStarted = True
Else Else
MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!") MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!")
End If End If
Next Next
If oFilteredDatatable.Rows.Count = 1 Then
End If
End Sub End Sub
Private Sub CheckBox_DependingControls(pCheckbox As CheckBox) Private Sub CheckBox_DependingControls(pCheckbox As CheckBox)
Dim oCheckboxname = pCheckbox.Name Dim oCheckboxname = pCheckbox.Name
@@ -2249,8 +2336,7 @@ Public Class frmValidator
MyValidationLogger.Warn($"Error while setting depending control-value for [{oDEPENDING_CtrlName}]: " & ex.Message) MyValidationLogger.Warn($"Error while setting depending control-value for [{oDEPENDING_CtrlName}]: " & ex.Message)
_DependingControl_In_Action = False _DependingControl_In_Action = False
End Try End Try
SendKeys.Send("{TAB}")
_ControlHandleStarted = True
Else Else
MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!") MyValidationLogger.Debug($"Error: Check CoNN ID and SQL on NULL VALUES!")
End If End If
@@ -2360,6 +2446,8 @@ Public Class frmValidator
If oCombobox.SelectedIndex <> -1 And _Indexe_Loaded = True Then If oCombobox.SelectedIndex <> -1 And _Indexe_Loaded = True Then
Dim oMeta As ClassControlCreator.ControlMetadata = oCombobox.Tag Dim oMeta As ClassControlCreator.ControlMetadata = oCombobox.Tag
oMeta.IsDirty = True oMeta.IsDirty = True
' *** NEU: Cache aktualisieren ***
clsPatterns.UpdateControlInCache(oCombobox.Name, oCombobox.Text)
MyValidationLogger.Debug($"ComboBox [{oMeta.Name}] marked as dirty") MyValidationLogger.Debug($"ComboBox [{oMeta.Name}] marked as dirty")
If oCombobox.Name = last_control.Name Then If oCombobox.Name = last_control.Name Then
'Abschluss() 'Abschluss()
@@ -2588,7 +2676,7 @@ Public Class frmValidator
Else Else
'not implemented 'not implemented
MyValidationLogger.Warn("Depending_Control_Set_Result for [{0}] NOT IMPLEMENTED", displayboxname) MyValidationLogger.Warn("⚠️ Depending_Control_Set_Result for [{0}] NOT IMPLEMENTED", displayboxname)
End If End If
Else Else
If oResultTable.Rows.Count = 1 Then If oResultTable.Rows.Count = 1 Then
@@ -2599,7 +2687,7 @@ Public Class frmValidator
End If End If
End If End If
Else Else
MyValidationLogger.Warn("Result Table is nothing!") MyValidationLogger.Warn("⚠️ Result Table is nothing!")
End If End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Info("Unexpected Ersror in Depending_Control_Set_Result - ERROR: " & ex.Message) MyValidationLogger.Info("Unexpected Ersror in Depending_Control_Set_Result - ERROR: " & ex.Message)
@@ -2771,7 +2859,7 @@ Public Class frmValidator
MyValidationLogger.Debug($"Get_Next_GUID: Amount_Docs2Validate [{Amount_Docs2Validate}]...") MyValidationLogger.Debug($"Get_Next_GUID: Amount_Docs2Validate [{Amount_Docs2Validate}]...")
Catch ex As Exception Catch ex As Exception
Amount_Docs2Validate = 0 Amount_Docs2Validate = 0
MyValidationLogger.Warn("Amount_Docs2Validate Error: " & ex.Message) MyValidationLogger.Warn("⚠️ Amount_Docs2Validate Error: " & ex.Message)
End Try End Try
Else Else
MyValidationLogger.Info($">> Attention: GetNextGUID - Could not get the next GUID - SQL [{oSQL}]") MyValidationLogger.Info($">> Attention: GetNextGUID - Could not get the next GUID - SQL [{oSQL}]")
@@ -2848,7 +2936,7 @@ Public Class frmValidator
Dim oDT As DataTable = DatabaseFallback.GetDatatableECM(oSQL) Dim oDT As DataTable = DatabaseFallback.GetDatatableECM(oSQL)
If oDT Is Nothing OrElse oDT.Rows.Count = 0 Then If oDT Is Nothing OrElse oDT.Rows.Count = 0 Then
MyValidationLogger.Warn("GetDocPathWindows: No result for file paths!") MyValidationLogger.Warn("⚠️ GetDocPathWindows: No result for file paths!")
Return False Return False
End If End If
@@ -2907,6 +2995,7 @@ Public Class frmValidator
Sub Load_Next_Document(first As Boolean) Sub Load_Next_Document(first As Boolean)
Dim oMilliseconts As Double
clsPatterns.ClearControlCache() ' Cache-Invalidierung clsPatterns.ClearControlCache() ' Cache-Invalidierung
Dim perfStart As DateTime = DateTime.MinValue Dim perfStart As DateTime = DateTime.MinValue
@@ -2980,7 +3069,7 @@ Public Class frmValidator
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
If IsNothing(IDB_DT_DOC_DATA) Then If IsNothing(IDB_DT_DOC_DATA) Then
MyValidationLogger.Warn("ATTENTION: IDB-Data is nothing. Check the IDB_DOC_DATA_SQL Variable Source") MyValidationLogger.Warn("⚠️ ATTENTION: IDB-Data is nothing. Check the IDB_DOC_DATA_SQL Variable Source")
Exit Sub Exit Sub
Else Else
If IDB_DT_DOC_DATA.Rows.Count = 1 Then If IDB_DT_DOC_DATA.Rows.Count = 1 Then
@@ -2993,10 +3082,7 @@ Public Class frmValidator
MyValidationLogger.Info($"[PERF LND] Nach CreateWMObject/Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF LND] Nach CreateWMObject/Load_IDB_DOC_DATA: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
PRTF_PROFILE_FILES_WORK("InWork")
Dim sql = $"UPDATE TBPM_PROFILE_FILES Set IN_WORK = 1, IN_WORK_WHEN = GETDATE(), WORK_USER = '{USER_USERNAME}' WHERE GUID = {CURRENT_DOC_GUID}"
DatabaseFallback.ExecuteNonQueryECM(sql)
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach IN_WORK-UPDATE: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF LND] Nach IN_WORK-UPDATE: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
@@ -3059,14 +3145,25 @@ Public Class frmValidator
End If End If
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach LoadDocument_DDViewer: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ LoadDocument_DDViewer lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach LoadDocument_DDViewer: {oMilliseconts}ms")
End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
FillIndexValues(first) FillIndexValues(first)
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach FillIndexValues: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ FillIndexValues lasted far to long: {oMilliseconts}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach FillIndexValues: {oMilliseconts}ms")
End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
@@ -3182,7 +3279,13 @@ Public Class frmValidator
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
End Try End Try
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF LND] Nach Show_WF_Messages: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") oMilliseconts = (DateTime.Now - perfLastCheck).TotalMilliseconds
If oMilliseconts > 6000 Then
MyValidationLogger.Warn($"[PERF LND] ⚠️ Show_WF_Messages lasted far to long: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
Else
MyValidationLogger.Info($"[PERF LND] Nach Show_WF_Messages: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
End If
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
Controls2B_EnDisabled() Controls2B_EnDisabled()
@@ -3260,7 +3363,7 @@ Public Class frmValidator
End Try End Try
If ActiveWorkflowType = ConstAHWorkflow_BlindFile Or PROFILE_SHOW_DOCUMENT = False Then If ActiveWorkflowType = ConstAHWorkflow_BlindFile Or PROFILE_SHOW_DOCUMENT = False Then
If PROFILE_SHOW_DOCUMENT = False And ActiveWorkflowType <> ConstAHWorkflow_BlindFile Then If PROFILE_SHOW_DOCUMENT = False And ActiveWorkflowType <> ConstAHWorkflow_BlindFile Then
MyValidationLogger.Warn("PROFILE_SHOW_DOCUMENT = False - DocumentViewer won't be displayed. Configuration error?") MyValidationLogger.Warn("⚠️ PROFILE_SHOW_DOCUMENT = False - DocumentViewer won't be displayed. Configuration error?")
End If End If
SplitContainer1.Panel2Collapsed = True SplitContainer1.Panel2Collapsed = True
If Not IsNothing(DocumentViewer1) Then If Not IsNothing(DocumentViewer1) Then
@@ -3280,6 +3383,7 @@ Public Class frmValidator
' Load Document in Document Viewer ' Load Document in Document Viewer
Dim oFileName = $"{CURRENT_DOC_ID}.{Current_Document.Extension}" Dim oFileName = $"{CURRENT_DOC_ID}.{Current_Document.Extension}"
If Not IsNothing(DocumentViewer1) Then If Not IsNothing(DocumentViewer1) Then
MyValidationLogger.Info("LoadDocument_DDViewer - Current_Document.FullPath: " & Current_Document.FullPath)
If (OPERATION_MODE_FS = ClassConstants.OpModeFS_PWM Or OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM) Then If (OPERATION_MODE_FS = ClassConstants.OpModeFS_PWM Or OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM) Then
DocumentViewer1.LoadFile_FromPath(Current_Document.FullPath) DocumentViewer1.LoadFile_FromPath(Current_Document.FullPath)
'Erstmal auskommentiert 'Erstmal auskommentiert
@@ -3617,17 +3721,26 @@ Public Class frmValidator
Dim oIndexName As String Dim oIndexName As String
Dim oControName As String Dim oControName As String
Dim oIDBOverride As Boolean = False Dim oIDBOverride As Boolean = False
Try Try
' ========== OPTIMIERUNG 1: Einmalige Gruppierung ==========
Dim columnsByControl As Dictionary(Of Integer, DataTable) = Nothing
If DT_COLUMNS_GRID IsNot Nothing AndAlso DT_COLUMNS_GRID.Rows.Count > 0 Then
columnsByControl = New Dictionary(Of Integer, DataTable)()
For Each groupRow In DT_COLUMNS_GRID.AsEnumerable().GroupBy(Function(r) r.Field(Of Integer)("CONTROL_ID"))
Dim controlId As Integer = groupRow.Key
Dim dt = groupRow.OrderBy(Function(r) r.Field(Of Integer)("SEQUENCE")).CopyToDataTable()
columnsByControl(controlId) = dt
Next
End If
' ========== ENDE OPTIMIERUNG ==========
If DTVWCONTROL_INDEX.Rows.Count > 0 Then If DTVWCONTROL_INDEX.Rows.Count > 0 Then
Dim oCount As Integer = 0 Dim oCount As Integer = 0
For Each oControl As Control In Me.PanelValidatorControl.Controls For Each oControl As Control In Me.PanelValidatorControl.Controls
'If SingleAttribute <> "" Then
' oIDBOverride = True
' If SingleAttribute <> oControl.Name Then
' Continue For
' End If
'End If
Dim oValueFromSource Dim oValueFromSource
Dim oFormattedValue As String = "" Dim oFormattedValue As String = ""
Dim oControlId = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid Dim oControlId = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid
@@ -3859,8 +3972,17 @@ Public Class frmValidator
If LOG_PERF Then PerformanceLogger.Info("FillIndexValues/GridControl") If LOG_PERF Then PerformanceLogger.Info("FillIndexValues/GridControl")
oControlType = "DevExpress.XtraGrid.GridControl" oControlType = "DevExpress.XtraGrid.GridControl"
Dim oMyGridControl As GridControl = oControl Dim oMyGridControl As GridControl = oControl '
Dim oDTColumnsPerDevExGrid As DataTable = DT_COLUMNS_GRID.Clone() ' ========== OPTIMIERUNG: Dictionary-Lookup statt Select() ==========
Dim oDTColumnsPerDevExGrid As DataTable = Nothing
If columnsByControl IsNot Nothing AndAlso columnsByControl.TryGetValue(oControlId, oDTColumnsPerDevExGrid) Then
MyValidationLogger.Debug($"Grid [{oControl.Name}]: {oDTColumnsPerDevExGrid.Rows.Count} Spalten aus Cache geladen")
Else
' Fallback (sollte nicht auftreten)
oDTColumnsPerDevExGrid = DT_COLUMNS_GRID.Clone()
MyValidationLogger.Warn($"Grid [{oControl.Name}]: Keine Spalten-Definition gefunden!")
End If
' ========== ENDE OPTIMIERUNG ==========
Try Try
If oSourceIndexName = "" Then If oSourceIndexName = "" Then
@@ -3885,8 +4007,8 @@ Public Class frmValidator
Select Case oTyp Select Case oTyp
'Tabellendarstellung 'Tabellendarstellung
Case "TABLE" Case "TABLE"
Dim oExpression = $"CONTROL_ID = {oControlId}" 'Dim oExpression = $"CONTROL_ID = {oControlId}"
DT_COLUMNS_GRID.Select(oExpression, "SEQUENCE").CopyToDataTable(oDTColumnsPerDevExGrid, LoadOption.PreserveChanges) 'DT_COLUMNS_GRID.Select(oExpression, "SEQUENCE").CopyToDataTable(oDTColumnsPerDevExGrid, LoadOption.PreserveChanges)
Dim oColValuesfromSource As String() Dim oColValuesfromSource As String()
MyValidationLogger.Debug($"DevExpressGrid: {oDTColumnsPerDevExGrid.Rows.Count} Columns configured for control {oControlId}.") MyValidationLogger.Debug($"DevExpressGrid: {oDTColumnsPerDevExGrid.Rows.Count} Columns configured for control {oControlId}.")
@@ -3927,7 +4049,7 @@ Public Class frmValidator
End If End If
Catch ex As Exception Catch ex As Exception
' Ausführliches Logging bei Fehlern inkl. aktuell bekannter Metadaten ' Ausführliches Logging bei Fehlern inkl. aktuell bekannter Metadaten
MyValidationLogger.Warn("Grid row assign FAILED RowIdx = {0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}]", MyValidationLogger.Warn("⚠️ Grid row assign FAILED RowIdx = {0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}]",
oDataSource.Rows.Count, index, colName, colType, rawValue) oDataSource.Rows.Count, index, colName, colType, rawValue)
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
' Optional: weitere Kontexthilfe z.B. ob Spalte DBNull erlaubt ' Optional: weitere Kontexthilfe z.B. ob Spalte DBNull erlaubt
@@ -3951,7 +4073,7 @@ Public Class frmValidator
oColValuesfromSource = Split(oValueFromSource.ToString, PMDelimiter) oColValuesfromSource = Split(oValueFromSource.ToString, PMDelimiter)
If oColValuesfromSource.Length > 8 Then If oColValuesfromSource.Length > 8 Then
MyValidationLogger.Warn("Fill Grid Error - Max 8 columns can be configured!") MyValidationLogger.Warn("⚠️ Fill Grid Error - Max 8 columns can be configured!")
End If End If
Dim oRowData As New List(Of Object) Dim oRowData As New List(Of Object)
@@ -3993,7 +4115,7 @@ Public Class frmValidator
oColValuesfromSource = Split(oRow.Item(0).ToString, PMDelimiter) oColValuesfromSource = Split(oRow.Item(0).ToString, PMDelimiter)
If oColValuesfromSource.Length > 8 Then If oColValuesfromSource.Length > 8 Then
MyValidationLogger.Warn("Fill Grid With DatatableSplit Error - Max 8 columns can be configured!") MyValidationLogger.Warn("⚠️ Fill Grid With DatatableSplit Error - Max 8 columns can be configured!")
End If End If
MyValidationLogger.Debug($"oColValuesfromSource splitted - Length ({oColValuesfromSource.Length.ToString})") MyValidationLogger.Debug($"oColValuesfromSource splitted - Length ({oColValuesfromSource.Length.ToString})")
Dim oRowData As New List(Of Object) Dim oRowData As New List(Of Object)
@@ -4050,23 +4172,22 @@ Public Class frmValidator
End If End If
End If End If
Try Try
'Dim oFilteredDatatable As DataTable = DTGRID_COLUMNS.Clone()
'Dim oExpression = $"CONTROL_ID = {oControlRow.Item("GUID")}"
'DTGRID_COLUMNS.Select(oExpression, "SEQUENCE").CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges)
Dim oMyGridView As DevExpress.XtraGrid.Views.Grid.GridView = oMyGridControl.MainView Dim oMyGridView As DevExpress.XtraGrid.Views.Grid.GridView = oMyGridControl.MainView
oMyGridView.OptionsView.ColumnAutoWidth = False oMyGridView.OptionsView.ColumnAutoWidth = False
'AddHandler oMyGridView.ColumnWidthChanged, AddressOf GridControlColumnWidthChanged
For Each oRow As DataRow In oDTColumnsPerDevExGrid.Rows
For Each oActGridColumn As DevExpress.XtraGrid.Columns.GridColumn In oMyGridView.Columns
Dim oGridDXFieldName = oActGridColumn.FieldName
Dim GridDXColumnEditName = oActGridColumn.ColumnEditName
If oRow.Item("SPALTENNAME") = oGridDXFieldName Then
oActGridColumn.Width = oRow.Item("SPALTENBREITE")
Exit For
End If
' ========== OPTIMIERUNG: Dictionary statt doppelter Loop ==========
If oDTColumnsPerDevExGrid IsNot Nothing AndAlso oDTColumnsPerDevExGrid.Rows.Count > 0 Then
Dim columnsByName = oMyGridView.Columns.Cast(Of GridColumn)().ToDictionary(Function(c) c.FieldName, StringComparer.OrdinalIgnoreCase)
For Each oRow As DataRow In oDTColumnsPerDevExGrid.Rows
Dim columnName = oRow.Item("SPALTENNAME").ToString()
Dim column As GridColumn = Nothing
If columnsByName.TryGetValue(columnName, column) Then
column.Width = oRow.Item("SPALTENBREITE")
End If
Next Next
Next End If
' ========== ENDE OPTIMIERUNG ==========
Dim i = 0 Dim i = 0
' RestoreDevExpressGridControl_Layout(CURRENT_CLICKED_PROFILE_ID, oControlId, oMyGridView) ' RestoreDevExpressGridControl_Layout(CURRENT_CLICKED_PROFILE_ID, oControlId, oMyGridView)
@@ -4813,7 +4934,7 @@ Public Class frmValidator
' End If ' End If
'End If 'End If
Else Else
MyValidationLogger.Warn("ATTENTION: DYNAMIC VALUE IS NOTHING!") MyValidationLogger.Warn("⚠️ ATTENTION: DYNAMIC VALUE IS NOTHING!")
Continue For Continue For
End If End If
End If End If
@@ -4865,7 +4986,7 @@ Public Class frmValidator
MyValidationLogger.Debug("...as single indexing") MyValidationLogger.Debug("...as single indexing")
If oValue.ToUpper = "SQL-Command".ToUpper Then If oValue.ToUpper = "SQL-Command".ToUpper Then
MsgBox("Something went wrong while final-indexing. Check Your log and inform the admin-team!", MsgBoxStyle.Critical, ADDITIONAL_TITLE) MsgBox("Something went wrong while final-indexing. Check Your log and inform the admin-team!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
MyValidationLogger.Warn("Something went wrong while final-indexing") MyValidationLogger.Warn("⚠️ Something went wrong while final-indexing")
Exit For Exit For
End If End If
Dim oFIResult As Boolean = False Dim oFIResult As Boolean = False
@@ -5119,7 +5240,7 @@ Public Class frmValidator
If oErrorOcurred = True Then If oErrorOcurred = True Then
MsgBox("Unhandled error occured in Finish Workflow-Step...Please check your log!", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) MsgBox("Unhandled error occured in Finish Workflow-Step...Please check your log!", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
Else Else
'PRTF_PROFILE_FILES_WORK("Worked") PRTF_PROFILE_FILES_WORK("Worked")
MyValidationLogger.Debug("Validation of document ended successfully!") MyValidationLogger.Debug("Validation of document ended successfully!")
Dim oPROCSQL = $"EXEC PRPM_CHECK_NEXT_WF {CURRENT_DOC_GUID}" Dim oPROCSQL = $"EXEC PRPM_CHECK_NEXT_WF {CURRENT_DOC_GUID}"
If DatabaseFallback.ExecuteNonQueryECM(oPROCSQL) = False Then If DatabaseFallback.ExecuteNonQueryECM(oPROCSQL) = False Then
@@ -5645,7 +5766,7 @@ Public Class frmValidator
MyValidationLogger.Error(ex) MyValidationLogger.Error(ex)
Dim st As New StackTrace(True) Dim st As New StackTrace(True)
st = New StackTrace(ex, True) st = New StackTrace(ex, True)
MyValidationLogger.Warn("Unexpected error in Check_UpdateIndexe TextBox :" & ex.Message, True) MyValidationLogger.Warn("⚠️ Unexpected error in Check_UpdateIndexe TextBox :" & ex.Message, True)
OpenfrmError(oErrMsgMissingInput) OpenfrmError(oErrMsgMissingInput)
' Nach Fehler: Dirty-Flag zurücksetzen ' Nach Fehler: Dirty-Flag zurücksetzen
@@ -6018,7 +6139,7 @@ Public Class frmValidator
Next ' End For Each oControl Next ' End For Each oControl
If oMissing = True Then If oMissing = True Then
MyValidationLogger.Warn("Check_UpdateIndexe: ERROR or Missing Indexing - returning False") MyValidationLogger.Warn("⚠️ Check_UpdateIndexe: ERROR or Missing Indexing - returning False")
Return False Return False
Else Else
MyValidationLogger.Debug("Check_UpdateIndexe: Everything OK - returning True") MyValidationLogger.Debug("Check_UpdateIndexe: Everything OK - returning True")
@@ -6290,8 +6411,8 @@ Public Class frmValidator
Try Try
MyValidationLogger.Debug("Skipping document....(Datei_ueberspringen)") MyValidationLogger.Debug("Skipping document....(Datei_ueberspringen)")
Dim oPRoc = String.Format("EXEC PRTF_PROFILE_FILES_WORK {0},{1},{2},{3}", CURRENT_DOC_ID, CURRENT_ProfilGUID, USER_ID, "FreeFile")
Dim oSQL = $"UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID};" & vbNewLine & Dim oSQL = oPRoc & vbNewLine &
$"EXECUTE PRPM_FILES_NOT_INDEXED '{USER_USERNAME}',{CURRENT_ProfilGUID},'{WMDocPathWindows}',{CURRENT_DOC_GUID};" $"EXECUTE PRPM_FILES_NOT_INDEXED '{USER_USERNAME}',{CURRENT_ProfilGUID},'{WMDocPathWindows}',{CURRENT_DOC_GUID};"
DatabaseFallback.ExecuteNonQueryECM(oSQL) DatabaseFallback.ExecuteNonQueryECM(oSQL)
@@ -6692,7 +6813,7 @@ Public Class frmValidator
Dim oConverter As New PDFConverter(LOGCONFIG) Dim oConverter As New PDFConverter(LOGCONFIG)
If oConverter.ConvertPDFADocumentToPDFDocument(WMDocPathWindows, oTempFullFilename) = False Then If oConverter.ConvertPDFADocumentToPDFDocument(WMDocPathWindows, oTempFullFilename) = False Then
MyValidationLogger.Warn("File [{0}] could not be converted to plain PDF!", WMDocPathWindows) MyValidationLogger.Warn("⚠️ File [{0}] could not be converted to plain PDF!", WMDocPathWindows)
oFile2Export = WMDocPathWindows oFile2Export = WMDocPathWindows
Else Else
MyValidationLogger.Info("File [{0}] successfully converted to plain PDF!", oTempFullFilename) MyValidationLogger.Info("File [{0}] successfully converted to plain PDF!", oTempFullFilename)
@@ -6700,11 +6821,11 @@ Public Class frmValidator
oFile2Export = oTempFullFilename oFile2Export = oTempFullFilename
End If End If
Else Else
MyValidationLogger.Warn("No converting as File [{0}] not ending with pdf [{1}]", WMDocPathWindows, oExtension.ToLower) MyValidationLogger.Warn("⚠️ No converting as File [{0}] not ending with pdf [{1}]", WMDocPathWindows, oExtension.ToLower)
oFile2Export = WMDocPathWindows oFile2Export = WMDocPathWindows
End If End If
Else Else
MyValidationLogger.Warn("No converting as barbtnitmExport.Tag.ToString <> Convert to PDF") MyValidationLogger.Warn("⚠️ No converting as barbtnitmExport.Tag.ToString <> Convert to PDF")
oFile2Export = WMDocPathWindows oFile2Export = WMDocPathWindows
End If End If
Else Else

View File

@@ -442,7 +442,7 @@ Public Class frmValidatorSearch
.ShowSettingButton = True .ShowSettingButton = True
}) })
Catch ex As Exception Catch ex As Exception
LOGGER.Warn("Error initializing DocViewDocsValdiatorSearch: " & ex.Message) LOGGER.Warn("⚠️ Error initializing DocViewDocsValdiatorSearch: " & ex.Message)
End Try End Try
OperationMode = GetOperationMode() OperationMode = GetOperationMode()
@@ -631,7 +631,7 @@ Public Class frmValidatorSearch
End If End If
Else Else
LOGGER.Warn("Attention: RESULT_DOC_PATH is nothing") LOGGER.Warn("⚠️ Attention: RESULT_DOC_PATH is nothing")
End If End If
Catch ex As Exception Catch ex As Exception
MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical) MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)

View File

@@ -1078,7 +1078,6 @@
<None Include="FinalIndexDataSet.xss"> <None Include="FinalIndexDataSet.xss">
<DependentUpon>FinalIndexDataSet.xsd</DependentUpon> <DependentUpon>FinalIndexDataSet.xsd</DependentUpon>
</None> </None>
<None Include="frmValidator.v" />
<None Include="My Project\app.manifest" /> <None Include="My Project\app.manifest" />
<None Include="My Project\Application.myapp"> <None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator> <Generator>MyApplicationCodeGenerator</Generator>