5 Commits

Author SHA1 Message Date
Developer01
04d9aac24f Navigation auf TreeList umgestellt, Monitor-Layout refactored
- NavBarControl entfernt, Navigation erfolgt jetzt über TreeList_Cockpit mit modernem Design und Rechteprüfung (Monitor/Charts).
- TreeList lädt Cockpit-Struktur aus DB, blendet Knoten je nach Berechtigung aus und zeigt mehrsprachige Fehler bei fehlender Konfiguration.
- Klick auf Monitor- oder Chart-Knoten öffnet gezielt Monitor/Dashboard mit passender Konfiguration.
- Methoden zum Laden/Speichern/Entfernen von Monitor-Grid-Layouts vereinheitlicht und auf Cockpit-spezifische Layout-Dateien umgestellt.
- TreeList-Breite und Splitter-Positionen werden benutzerspezifisch gespeichert.
- Neuer Refresh-Button für TreeList im Ribbon ergänzt.
- Diverse Refactorings, Logging- und Fehlerbehandlungs-Verbesserungen.
2026-05-13 14:23:24 +02:00
Developer01
d74beddb35 Cockpit-Navigation: DevExpress TreeList integriert
Das Hauptfenster nutzt nun eine moderne, hierarchische Cockpit-Navigation auf Basis der DevExpress TreeList. Die TreeList ersetzt die bisherige alleinige Navigation über die NavBar und lädt ihre Struktur dynamisch aus der Datenbank. Knoten können asynchron Zähler nachladen und verschiedene Typen (Übersicht, Profil, SQL) abbilden. Die Datenlade-Logik wurde für die TreeList angepasst und erweitert. UI und Ressourcen wurden modernisiert, die TreeList ist für zukünftige Erweiterungen vorbereitet. Die NavBar bleibt erhalten, ist aber nicht mehr Hauptnavigation.
2026-05-13 09:52:20 +02:00
Developer01
a3fb1cbafc Sichtbarkeit & Logging für rbnPgGroupAttmt verbessert
- AssemblyVersion auf 2.9.1.0 erhöht
- Sichtbarkeit von rbnPgGroupAttmt wird nun explizit vor Rückgabe gesetzt, abhängig von den Suchergebnissen
- In FillIndexValues wird jetzt korrekt auf "CONNECTION_ID" geprüft und geloggt (statt "CONN_ID")
- Gleiches gilt für das finale Indexing bei dynamischen SQL-Befehlen
- Logmeldungen und Tab-Preloading-Verhalten wurden entsprechend angepasst und überprüft
2026-05-12 08:49:01 +02:00
Developer01
960acb0ce1 Nochmal 2026-05-05 18:22:06 +02:00
Developer01
b95e580f06 V 2.9.9.0
Verbesserung DocSearchLoad, Mapping Sharedrive

Refactoring Zusatzsuchen, Dokumentenhandling & Cleanup

Umfangreiches Refactoring der Zusatzsuchen-Logik (Validator/ValidatorSearch): Vereinheitlichung und Typprüfung der DataTables, zentrale Filterung, robustere Tab-Steuerung und thread-sicheres Nachladen. Netzlaufwerk-Mapping und Dokumentenpfad-Handling wurden entfernt bzw. auf neue Handler ausgelagert. Profilsuchen-Handling vereinheitlicht, Parametrierung (Working Mode) klarer strukturiert. Diverse Bugfixes, verbessertes Logging, Cleanup von Ressourcen und Projektdateien, veraltete Komponenten entfernt. Update auf DocumentViewer 2.6.0.0. Die Anwendung ist robuster, wartbarer und für Erweiterungen vorbereitet.
2026-05-05 18:21:54 +02:00
40 changed files with 6773 additions and 9709 deletions

View File

@@ -99,23 +99,17 @@
</Component>--> </Component>-->
<Component Id="WindreamLibs" Guid="4D11FC99-50D9-4E54-B18A-8885C9112646"> <Component Id="WindreamLibs" Guid="4D11FC99-50D9-4E54-B18A-8885C9112646">
<File Id="WINDREAMLibDLL" Name="Interop.WINDREAMLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll" KeyPath="yes"/> <File Id="WINDREAMLibDLL" Name="Interop.WINDREAMLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WINDREAMLib.dll" KeyPath="yes"/>
<File Id="WMOTOOLLib" Name="Interop.WMOTOOLLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll"/> <File Id="WMOTOOLLib" Name="Interop.WMOTOOLLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WMOTOOLLib.dll"/>
<File Id="WMOSRCHLib" Name="Interop.WMOSRCHLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOSRCHLib.dll"/> <File Id="WMOSRCHLib" Name="Interop.WMOSRCHLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WMOSRCHLib.dll"/>
<File Id="WMOBRWSLib" Name="Interop.WMOBRWSLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOBRWSLib.dll"/> <File Id="WMOBRWSLib" Name="Interop.WMOBRWSLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WMOBRWSLib.dll"/>
</Component> </Component>
<Component Id="FormsUtilsLibs" Guid="51c183a7-af21-481a-bd34-0e547e6f6e1c"> <Component Id="FormsUtilsLibs" Guid="51c183a7-af21-481a-bd34-0e547e6f6e1c">
<File Id="FormsUtilsLib" Name="FormsUtils.dll" Source="P:\Visual Studio Projekte\Bibliotheken\FormsUtils.dll" KeyPath="yes" /> <File Id="FormsUtilsLib" Name="FormsUtils.dll" Source="M:\Bibliotheken\3rdParty\FormsUtils.dll" KeyPath="yes" />
</Component>
<Component Id="IndependentsoftLibs" Guid="C3B3BB48-DB41-4419-A4B8-0E4DC5E8856B">
<File Id="MSGLib" Name="Independentsoft.Msg.dll" Source="P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\22_11_19\Independentsoft.Msg.dll" KeyPath="yes"/>
</Component> </Component>
<Component Id="DDLibs" Guid="BA2979E3-3778-48B8-B0D8-4B77825B9293"> <Component Id="DDLibs" Guid="BA2979E3-3778-48B8-B0D8-4B77825B9293">
<File Id="DLLLicenseManager" Name="DLLLicenseManager.dll" Source="P:\Visual Studio Projekte\Bibliotheken\DLLLicenseManager.dll" KeyPath="yes"/>
<File Id="DDLibStandards" Name="DD_LIB_Standards.dll" Source="P:\Visual Studio Projekte\Bibliotheken\DD_LIB_Standards.dll"/>
<File Id="LookupGrid" Name="DigitalData.Controls.LookupGrid.dll" Source="DigitalData.Controls.LookupGrid.dll"/> <File Id="LookupGrid" Name="DigitalData.Controls.LookupGrid.dll" Source="DigitalData.Controls.LookupGrid.dll"/>
<File Id="DDSnapPanel" Name="DigitalData.Controls.SnapPanel.dll" Source="DigitalData.Controls.SnapPanel.dll"/> <File Id="DDSnapPanel" Name="DigitalData.Controls.SnapPanel.dll" Source="DigitalData.Controls.SnapPanel.dll"/>
<File Id="DDCommonGUIs" Name="DigitalData.GUIs.Common.dll" Source="DigitalData.GUIs.Common.dll"/> <File Id="DDCommonGUIs" Name="DigitalData.GUIs.Common.dll" Source="DigitalData.GUIs.Common.dll"/>
@@ -139,58 +133,58 @@
</Component> </Component>
<Component Id="RuntimeLibs" Guid="F7170744-3DB5-4275-ACCD-7F3B9BDE1D6E"> <Component Id="RuntimeLibs" Guid="F7170744-3DB5-4275-ACCD-7F3B9BDE1D6E">
<File Id="Newtonsoft.Json" Name="Newtonsoft.Json.dll" Source="Newtonsoft.Json.dll" KeyPath="yes" /> <File Id="Newtonsoft.Json" Name="Newtonsoft.Json.dll" Source="Newtonsoft.Json.dll" KeyPath="yes" />
<File Id="System.Memory" Name="System.Memory.dll" Source="System.Memory.dll" />
<File Id="System.Runtime.CompilerServices.Unsafe" Name="System.Runtime.CompilerServices.Unsafe.dll" Source="System.Runtime.CompilerServices.Unsafe.dll" />
<File Id="System.Buffers" Name="System.Buffers.dll" Source="System.Buffers.dll" />
<File Id="System.Collections.Immutable" Name="System.Collections.Immutable.dll" Source="System.Collections.Immutable.dll" />
<File Id="System.Numerics.Vectors" Name="System.Numerics.Vectors.dll" Source="System.Numerics.Vectors.dll" />
<File Id="System.Security.Cryptography.Pkcs" Name="System.Security.Cryptography.Pkcs.dll" Source="System.Security.Cryptography.Pkcs.dll" />
<File Id="System.Text.Json" Name="System.Text.Json.dll" Source="System.Text.Json.dll" /> <File Id="System.Text.Json" Name="System.Text.Json.dll" Source="System.Text.Json.dll" />
<File Id="System.Text.Encodings.Web" Name="System.Text.Encodings.Web.dll" Source="System.Text.Encodings.Web.dll" />
<File Id="System.Threading.Tasks.Extensions" Name="System.Threading.Tasks.Extensions.dll" Source="System.Threading.Tasks.Extensions.dll" />
<File Id="Microsoft.Bcl.AsyncInterfaces" Name="Microsoft.Bcl.AsyncInterfaces.dll" Source="Microsoft.Bcl.AsyncInterfaces.dll" />
<File Id="protobuf_net" Name="protobuf-net.dll" Source="protobuf-net.dll" />
<File Id="DocumentFormat.OpenXml" Name="DocumentFormat.OpenXml.dll" Source="DocumentFormat.OpenXml.dll" />
<File Id="DocumentFormat.OpenXml.Framework" Name="DocumentFormat.OpenXml.Framework.dll" Source="DocumentFormat.OpenXml.Framework.dll" />
<File Id="FirebirdSql.Data.FirebirdClient" Name="FirebirdSql.Data.FirebirdClient.dll" Source="FirebirdSql.Data.FirebirdClient.dll" /> <File Id="FirebirdSql.Data.FirebirdClient" Name="FirebirdSql.Data.FirebirdClient.dll" Source="FirebirdSql.Data.FirebirdClient.dll" />
<File Id="EntityFramework" Name="EntityFramework.dll" Source="EntityFramework.dll" /> <File Id="EntityFramework" Name="EntityFramework.dll" Source="EntityFramework.dll" />
<File Id="EntityFramework.SqlServer" Name="EntityFramework.SqlServer.dll" Source="EntityFramework.SqlServer.dll" /> <File Id="EntityFramework.SqlServer" Name="EntityFramework.SqlServer.dll" Source="EntityFramework.SqlServer.dll" />
<File Id="EntityFramework.Firebird" Name="EntityFramework.Firebird.dll" Source="EntityFramework.Firebird.dll" /> <File Id="EntityFramework.Firebird" Name="EntityFramework.Firebird.dll" Source="EntityFramework.Firebird.dll" />
</Component> </Component>
<Component Id="Oracle" Guid="CF76DB5D-3263-450F-96C6-F02F5447A0A1">
<File Id="Oracle.ManagedDataAccess" Name="Oracle.ManagedDataAccess.dll" Source="P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll" KeyPath="yes"/>
</Component>
<Component Id="PDFsharp" Guid="9cd1cfb7-3f84-4a8b-aa51-642b723fcd70">
<File Id="PdfSharpgdi" Name="PdfSharp-gdi.dll" Source="P:\Visual Studio Projekte\Bibliotheken\PdfSharp-gdi.dll" KeyPath="yes"/>
</Component>
<Component Id="GDPictureLibs" Guid="9ea5ab43-58ff-4813-9a8b-f854784f0275"> <Component Id="GDPictureLibs" Guid="9ea5ab43-58ff-4813-9a8b-f854784f0275">
<File Id="GdPicture.NET.14" Name="GdPicture.NET.14.dll" KeyPath="yes" /> <File Id="GdPicture.NET.14" Name="GdPicture.NET.14.dll" KeyPath="yes" />
<File Id="GdPicture.NET.14.filters" Name="GdPicture.NET.14.filters.dll" /> <File Id="GdPicture.NET.14.CAD" Name="GdPicture.NET.14.CAD.dll" />
<File Id="GdPicture.NET.14.filters.64" Name="GdPicture.NET.14.filters.64.dll" /> <File Id="GdPicture.NET.14.CAD.DWG" Name="GdPicture.NET.14.CAD.DWG.dll" />
<File Id="GdPicture.NET.14.image" Name="GdPicture.NET.14.image.gdimgplug.dll" /> <File Id="GdPicture.NET.14.filters" Name="GdPicture.NET.14.filters.dll" />
<File Id="GdPicture.NET.14.image64" Name="GdPicture.NET.14.image.gdimgplug.64.dll" /> <File Id="GdPicture.NET.14.filters64" Name="GdPicture.NET.14.filters.64.dll" />
<File Id="GdPicture.NET.14.Imaging.Rendering.Skia" Name="GdPicture.NET.14.Imaging.Rendering.Skia.dll" /> <File Id="GdPicture.NET.14.image" Name="GdPicture.NET.14.image.gdimgplug.dll" />
<File Id="GdPicture.NET.14.Rendering.Skia.64" Name="GdPicture.NET.14.Imaging.Rendering.Skia.64.dll" /> <File Id="GdPicture.NET.14.image64" Name="GdPicture.NET.14.image.gdimgplug.64.dll" />
<File Id="GdPicture.NET.14.Imaging" Name="GdPicture.NET.14.Imaging.dll" /> <File Id="GdPicture.NET.14.Imaging.Formats" Name="GdPicture.NET.14.Imaging.Formats.dll" />
<File Id="GdPicture.NET.14.Common" Name="GdPicture.NET.14.Common.dll" />
<File Id="GdPicture.NET.14.Imaging.Rendering" Name="GdPicture.NET.14.Imaging.Rendering.dll" /> <File Id="GdPicture.NET.14.Imaging.Rendering" Name="GdPicture.NET.14.Imaging.Rendering.dll" />
<File Id="GdPicture.NET.14.Imaging.Rendering.Skia" Name="GdPicture.NET.14.Imaging.Rendering.Skia.dll" />
<File Id="GdPicture.NET.14.Rendering.Skia.64" Name="GdPicture.NET.14.Imaging.Rendering.Skia.64.dll" />
<File Id="GdPicture.NET.14.Imaging" Name="GdPicture.NET.14.Imaging.dll" />
<File Id="GdPicture.NET.14.Imaging.ML.64" Name="GdPicture.NET.14.Imaging.ML.64.dll" />
<File Id="GdPicture.NET.14.Imaging.ML" Name="GdPicture.NET.14.Imaging.ML.dll" />
<File Id="GdPicture.NET.14.Imaging.Formats.Conversion" Name="GdPicture.NET.14.Imaging.Formats.Conversion.dll" />
<File Id="GdPicture.NET.14.Common" Name="GdPicture.NET.14.Common.dll" />
<File Id="GdPicture.NET.14.Document" Name="GdPicture.NET.14.Document.dll" /> <File Id="GdPicture.NET.14.Document" Name="GdPicture.NET.14.Document.dll" />
<File Id="GdPicture.NET.14.PDF" Name="GdPicture.NET.14.PDF.dll" /> <File Id="GdPicture.NET.14.PDF" Name="GdPicture.NET.14.PDF.dll" />
<File Id="GdPicture.NET.14.Imaging.Formats" Name="GdPicture.NET.14.Imaging.Formats.dll" />
<File Id="GdPicture.NET.14.RTF" Name="GdPicture.NET.14.RTF.dll" /> <File Id="GdPicture.NET.14.RTF" Name="GdPicture.NET.14.RTF.dll" />
<File Id="GdPicture.NET.14.SVG" Name="GdPicture.NET.14.SVG.dll" />
<File Id="GdPicture.NET.14.OpenDocument" Name="GdPicture.NET.14.OpenDocument.dll" /> <File Id="GdPicture.NET.14.OpenDocument" Name="GdPicture.NET.14.OpenDocument.dll" />
<File Id="GdPicture.NET.14.OpenXML" Name="GdPicture.NET.14.OpenXML.dll" /> <File Id="GdPicture.NET.14.OpenXML" Name="GdPicture.NET.14.OpenXML.dll" />
<File Id="GdPicture.NET.14.Email" Name="GdPicture.NET.14.Email.dll" /> <File Id="GdPicture.NET.14.Email" Name="GdPicture.NET.14.Email.dll" />
<File Id="GdPicture.NET.14.HTML" Name="GdPicture.NET.14.HTML.dll" /> <File Id="GdPicture.NET.14.HTML" Name="GdPicture.NET.14.HTML.dll" />
<File Id="GdPicture.NET.14.MSOfficeBinary" Name="GdPicture.NET.14.MSOfficeBinary.dll"/> <File Id="GdPicture.NET.14.MSOfficeBinary" Name="GdPicture.NET.14.MSOfficeBinary.dll"/>
<File Id="GdPicture.NET.14.CAD" Name="GdPicture.NET.14.CAD.dll"/>
<File Id="GdPicture.NET.14.CAD.DWG" Name="GdPicture.NET.14.CAD.DWG.dll"/>
<File Id="BouncyCastle.Cryptography" Name="BouncyCastle.Cryptography.dll"/> <File Id="BouncyCastle.Cryptography" Name="BouncyCastle.Cryptography.dll"/>
<File Id="System.ValueTuple" Name="System.ValueTuple.dll" /> <File Id="DocumentFormat.OpenXml" Name="DocumentFormat.OpenXml.dll" />
<File Id="DocumentFormat.OpenXml.Framework" Name="DocumentFormat.OpenXml.Framework.dll" />
<File Id="Microsoft.Bcl.AsyncInterfaces" Name="Microsoft.Bcl.AsyncInterfaces.dll" />
<File Id="OpenMcdf" Name="OpenMcdf.dll" />
<File Id="protobufnet.Core" Name="protobuf-net.Core.dll" />
<File Id="protobufnet" Name="protobuf-net.dll" />
<File Id="RtfPipe" Name="RtfPipe.dll" />
<File Id="System.Buffers" Name="System.Buffers.dll" />
<File Id="System.CodeDom" Name="System.CodeDom.dll" />
<File Id="System.Collections.Immutable" Name="System.Collections.Immutable.dll" />
<File Id="System.IO.Packaging" Name="System.IO.Packaging.dll" /> <File Id="System.IO.Packaging" Name="System.IO.Packaging.dll" />
<File Id="System.Memory" Name="System.Memory.dll" />
<File Id="System.Numerics.Vectors" Name="System.Numerics.Vectors.dll" />
<File Id="System.Runtime.CompilerServices.Unsafe" Name="System.Runtime.CompilerServices.Unsafe.dll" />
<File Id="System.Security.Cryptography.Pkcs" Name="System.Security.Cryptography.Pkcs.dll" />
<File Id="System.Text.Encodings.Web" Name="System.Text.Encodings.Web.dll" />
<File Id="System.Threading.Tasks.Extensions" Name="System.Threading.Tasks.Extensions.dll" />
<File Id="System.ValueTuple" Name="System.ValueTuple.dll" />
</Component> </Component>
<Component Id="DevExpressLibs" Guid="CB40DAAE-348E-4BD3-B275-9A526EB8F191"> <Component Id="DevExpressLibs" Guid="CB40DAAE-348E-4BD3-B275-9A526EB8F191">
@@ -307,9 +301,6 @@
<ComponentRef Id="FormsUtilsLibs"/> <ComponentRef Id="FormsUtilsLibs"/>
<ComponentRef Id="DDLibs" /> <ComponentRef Id="DDLibs" />
<ComponentRef Id="RuntimeLibs" /> <ComponentRef Id="RuntimeLibs" />
<ComponentRef Id="Oracle" />
<ComponentRef Id="PDFsharp" />
<ComponentRef Id="IndependentsoftLibs" />
<ComponentRef Id="DevExpressLibs" /> <ComponentRef Id="DevExpressLibs" />
<ComponentRef Id="GDPictureLibs" /> <ComponentRef Id="GDPictureLibs" />
<ComponentRef Id="Devexpress.Locales.de" /> <ComponentRef Id="Devexpress.Locales.de" />

View File

@@ -7,8 +7,6 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupVS19", "SetupVS19\Setu
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "taskFLOW", "TaskFlow\taskFLOW.vbproj", "{6ACA1432-09A2-47EF-A704-C0AA73905756}" Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "taskFLOW", "TaskFlow\taskFLOW.vbproj", "{6ACA1432-09A2-47EF-A704-C0AA73905756}"
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DocumentViewer", "..\..\..\2_DLL Projekte\Controls.DocumentViewer\DocumentViewer.vbproj", "{0958CDDF-4A16-41F6-8837-8335F71D599C}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
CD_ROM|Any CPU = CD_ROM|Any CPU CD_ROM|Any CPU = CD_ROM|Any CPU
@@ -63,26 +61,6 @@ Global
{6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|Any CPU.Build.0 = Release|x86 {6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|Any CPU.Build.0 = Release|x86
{6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|x86.ActiveCfg = Debug|x86 {6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|x86.ActiveCfg = Debug|x86
{6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|x86.Build.0 = Debug|x86 {6ACA1432-09A2-47EF-A704-C0AA73905756}.SingleImage|x86.Build.0 = Debug|x86
{0958CDDF-4A16-41F6-8837-8335F71D599C}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.CD_ROM|x86.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.CD_ROM|x86.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|x86.ActiveCfg = Debug|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Debug|x86.Build.0 = Debug|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.DVD-5|Any CPU.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.DVD-5|Any CPU.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.DVD-5|x86.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.DVD-5|x86.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|Any CPU.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|x86.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.Release|x86.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.SingleImage|Any CPU.Build.0 = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.SingleImage|x86.ActiveCfg = Release|Any CPU
{0958CDDF-4A16-41F6-8837-8335F71D599C}.SingleImage|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@@ -418,518 +418,4 @@ Public Class ClassAllgemeineFunktionen
' Ergebnis zurückgeben ' Ergebnis zurückgeben
Return b64 Return b64
End Function End Function
#Region "Windows API Deklarationen"
<DllImport("mpr.dll", CharSet:=CharSet.Auto)>
Private Shared Function WNetAddConnection2(ByRef lpNetResource As NETRESOURCE,
ByVal lpPassword As String,
ByVal lpUsername As String,
ByVal dwFlags As Integer) As Integer
End Function
<DllImport("mpr.dll", CharSet:=CharSet.Auto)>
Private Shared Function WNetCancelConnection2(ByVal lpName As String,
ByVal dwFlags As Integer,
ByVal fForce As Boolean) As Integer
End Function
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)>
Private Structure NETRESOURCE
Public dwScope As Integer
Public dwType As Integer
Public dwDisplayType As Integer
Public dwUsage As Integer
Public lpLocalName As String
Public lpRemoteName As String
Public lpComment As String
Public lpProvider As String
End Structure
Private Const RESOURCETYPE_DISK As Integer = 1
Private Const CONNECT_UPDATE_PROFILE As Integer = 1
Private Const ERROR_SUCCESS As Integer = 0
Private Const ERROR_ALREADY_ASSIGNED As Integer = 85
#End Region
''' <summary>
''' Struktur für Netzlaufwerk-Informationen
''' </summary>
Public Structure NetworkDriveInfo
Public DriveLetter As String
Public NetworkPath As String
Public DriveType As IO.DriveType
Public IsReady As Boolean
Public TotalSize As Long
Public FreeSpace As Long
End Structure
''' <summary>
''' Ermittelt den nächsten freien Laufwerksbuchstaben (alphabetisch absteigend von Z bis A)
''' </summary>
''' <param name="blacklist">Liste der nicht erlaubten Laufwerksbuchstaben (z.B. "Y,M,V")</param>
''' <returns>Nächster freier Laufwerksbuchstabe mit Doppelpunkt (z.B. "Z:") oder String.Empty wenn keiner frei</returns>
Public Shared Function GetNextFreeDriveLetter(Optional blacklist As String = "") As String
Try
' Blacklist verarbeiten (Großbuchstaben ohne Doppelpunkte)
Dim blacklistArray As New List(Of Char)
If Not String.IsNullOrEmpty(blacklist) Then
For Each item In blacklist.Split(","c)
Dim letter = item.Trim().ToUpper().Replace(":", "")
If letter.Length = 1 AndAlso Char.IsLetter(letter(0)) Then
blacklistArray.Add(letter(0))
End If
Next
End If
' Alle aktuell verwendeten Laufwerksbuchstaben ermitteln
Dim usedDrives As New List(Of Char)
For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives()
Dim letter As Char = drive.Name(0)
usedDrives.Add(Char.ToUpper(letter))
Next
' Alphabetisch absteigend von Z bis A durchgehen
For i As Integer = Asc("Z"c) To Asc("A"c) Step -1
Dim currentLetter As Char = Chr(i)
' Prüfen ob Buchstabe verfügbar ist
If Not usedDrives.Contains(currentLetter) AndAlso Not blacklistArray.Contains(currentLetter) Then
LOGGER.Debug($"Nächster freier Laufwerksbuchstabe gefunden: {currentLetter}:")
Return currentLetter & ":"
End If
Next
LOGGER.Warn("Kein freier Laufwerksbuchstabe gefunden!")
Return String.Empty
Catch ex As Exception
LOGGER.Error($"Fehler beim Ermitteln des nächsten freien Laufwerksbuchstabens: {ex.Message}")
LOGGER.Error(ex)
Return String.Empty
End Try
End Function
''' <summary>
''' Prüft ob ein Laufwerksbuchstabe verfügbar ist (nicht verwendet und nicht in Blacklist)
''' </summary>
''' <param name="driveLetter">Zu prüfender Laufwerksbuchstabe</param>
''' <param name="blacklist">Liste der nicht erlaubten Laufwerksbuchstaben</param>
''' <returns>True wenn verfügbar, False wenn bereits verwendet oder in Blacklist</returns>
Public Shared Function IsDriveLetterAvailable(driveLetter As String, Optional blacklist As String = "") As Boolean
Try
' Formatierung sicherstellen
driveLetter = driveLetter.Trim().ToUpper().Replace(":", "")
If driveLetter.Length <> 1 OrElse Not Char.IsLetter(driveLetter(0)) Then
LOGGER.Warn($"Ungültiger Laufwerksbuchstabe: {driveLetter}")
Return False
End If
Dim letter As Char = driveLetter(0)
' Blacklist prüfen
If Not String.IsNullOrEmpty(blacklist) Then
For Each item In blacklist.Split(","c)
Dim blacklistedLetter = item.Trim().ToUpper().Replace(":", "")
If blacklistedLetter.Length = 1 AndAlso blacklistedLetter(0) = letter Then
LOGGER.Debug($"Laufwerk {letter}: ist in der Blacklist")
Return False
End If
Next
End If
' Prüfen ob bereits verwendet
For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives()
If Char.ToUpper(drive.Name(0)) = letter Then
LOGGER.Debug($"Laufwerk {letter}: ist bereits verwendet")
Return False
End If
Next
Return True
Catch ex As Exception
LOGGER.Error($"Fehler beim Prüfen der Laufwerksverfügbarkeit: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
''' <summary>
''' Mappt ein Netzlaufwerk mit automatischer Laufwerksbuchstabenwahl oder spezifischem Buchstaben
''' </summary>
''' <param name="driveLetter">Gewünschter Laufwerksbuchstabe (leer = automatisch den nächsten freien wählen)</param>
''' <param name="networkPath">UNC-Pfad des Netzwerkshares</param>
''' <param name="blacklist">Komma-getrennte Liste verbotener Laufwerksbuchstaben (z.B. "Y,M,V")</param>
''' <param name="userName">Optionaler Benutzername für Authentifizierung</param>
''' <param name="password">Optionales Passwort für Authentifizierung</param>
''' <param name="persistent">Soll das Mapping persistent sein?</param>
''' <returns>Verwendeter Laufwerksbuchstabe bei Erfolg, String.Empty bei Fehler</returns>
Public Shared Function MapNetworkDrive(driveLetter As String,
networkPath As String,
Optional blacklist As String = "",
Optional userName As String = Nothing,
Optional password As String = Nothing,
Optional persistent As Boolean = True) As String
Try
Dim targetDriveLetter As String = ""
' Szenario 1: Kein Laufwerksbuchstabe angegeben -> Automatische Auswahl
If String.IsNullOrEmpty(driveLetter) Then
LOGGER.Info("Kein Laufwerksbuchstabe angegeben - suche nächsten freien Buchstaben...")
targetDriveLetter = GetNextFreeDriveLetter(blacklist)
If String.IsNullOrEmpty(targetDriveLetter) Then
LOGGER.Error("Kein freier Laufwerksbuchstabe verfügbar!")
Return String.Empty
End If
LOGGER.Info($"Automatisch gewählter Laufwerksbuchstabe: {targetDriveLetter}")
Else
' Szenario 2: Spezifischer Laufwerksbuchstabe angegeben
targetDriveLetter = driveLetter.Trim().ToUpper()
If Not targetDriveLetter.EndsWith(":") Then
targetDriveLetter &= ":"
End If
' Prüfen ob Laufwerk verfügbar ist
If Not IsDriveLetterAvailable(targetDriveLetter, blacklist) Then
LOGGER.Error($"Laufwerk {targetDriveLetter} ist nicht verfügbar (bereits verwendet oder in Blacklist)")
Return String.Empty
End If
End If
' Laufwerk mappen
If MapNetworkDriveInternal(targetDriveLetter, networkPath, userName, password, persistent) Then
LOGGER.Info($"✓ Netzlaufwerk {targetDriveLetter} erfolgreich gemappt zu {networkPath}")
Return targetDriveLetter
Else
LOGGER.Error($"✗ Fehler beim Mappen von {targetDriveLetter}")
Return String.Empty
End If
Catch ex As Exception
LOGGER.Error($"Fehler in MapNetworkDrive: {ex.Message}")
LOGGER.Error(ex)
Return String.Empty
End Try
End Function
''' <summary>
''' Interne Methode zum tatsächlichen Mappen eines Netzlaufwerks
''' </summary>
Private Shared Function MapNetworkDriveInternal(driveLetter As String,
networkPath As String,
userName As String,
password As String,
persistent As Boolean) As Boolean
Try
' Erst trennen falls vorhanden (ohne Fehler wenn nicht vorhanden)
DisconnectNetworkDrive(driveLetter, True)
' NETRESOURCE-Struktur vorbereiten
Dim netResource As New NETRESOURCE With {
.dwType = RESOURCETYPE_DISK,
.lpLocalName = driveLetter,
.lpRemoteName = networkPath
}
Dim flags As Integer = If(persistent, CONNECT_UPDATE_PROFILE, 0)
' WICHTIG: Credentials als Nothing übergeben = Verwende aktuelle Windows-Credentials
' Wenn der Share öffentlich oder mit aktuellen Credentials erreichbar ist, funktioniert es
Dim result As Integer = WNetAddConnection2(netResource, password, userName, flags)
Select Case result
Case ERROR_SUCCESS
LOGGER.Debug($"✓ Laufwerk {driveLetter} erfolgreich gemappt")
Return True
Case 1326 ' ERROR_LOGON_FAILURE
LOGGER.Error($"❌ Authentifizierungsfehler (1326): Anmeldung fehlgeschlagen für [{networkPath}]")
LOGGER.Error($" → Der UNC-Pfad erfordert möglicherweise spezielle Credentials")
LOGGER.Error($" → Oder der aktuelle Benutzer hat keine Berechtigung")
Return False
Case 53 ' ERROR_BAD_NETPATH
LOGGER.Error($"❌ Netzwerkpfad nicht gefunden (53): [{networkPath}]")
Return False
Case 67 ' ERROR_BAD_NET_NAME
LOGGER.Error($"❌ Netzwerkname ungültig (67): [{networkPath}]")
Return False
Case 85 ' ERROR_ALREADY_ASSIGNED
LOGGER.Warn($"⚠️ Laufwerk {driveLetter} ist bereits zugewiesen (85)")
' Versuche es zu trennen und erneut zu verbinden
DisconnectNetworkDrive(driveLetter, force:=True)
System.Threading.Thread.Sleep(500) ' Kurze Pause
result = WNetAddConnection2(netResource, password, userName, flags)
If result = ERROR_SUCCESS Then
LOGGER.Info($"✓ Laufwerk {driveLetter} nach erneutem Versuch erfolgreich gemappt")
Return True
Else
Return False
End If
Case Else
LOGGER.Error($"❌ WNetAddConnection2 Error Code: {result}")
Return False
End Select
Catch ex As Exception
LOGGER.Error($"Fehler in MapNetworkDriveInternal: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
''' <summary>
''' Test-Funktion um UNC-Pfad-Zugriff zu prüfen
''' </summary>
Public Shared Function TestUNCAccess(uncPath As String) As Boolean
Try
LOGGER.Info($"🔍 Teste Zugriff auf UNC-Pfad: [{uncPath}]")
' Teste ob Pfad existiert und erreichbar ist
If System.IO.Directory.Exists(uncPath) Then
LOGGER.Info($"✓ UNC-Pfad ist direkt erreichbar ohne Mapping")
' Teste Lese-Berechtigung
Try
Dim files = System.IO.Directory.GetFiles(uncPath)
LOGGER.Info($"✓ Lese-Berechtigung vorhanden ({files.Length} Dateien gefunden)")
Return True
Catch permEx As UnauthorizedAccessException
LOGGER.Error($"❌ Keine Lese-Berechtigung: {permEx.Message}")
Return False
End Try
Else
LOGGER.Error($"❌ UNC-Pfad nicht erreichbar oder existiert nicht")
Return False
End If
Catch ex As Exception
LOGGER.Error($"❌ Fehler beim Testen des UNC-Zugriffs: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
''' <summary>
''' Trennt ein Netzlaufwerk mit Windows-API
''' </summary>
Public Shared Function DisconnectNetworkDrive(driveLetter As String, Optional force As Boolean = True) As Boolean
Try
' Formatierung sicherstellen
driveLetter = driveLetter.Trim().ToUpper()
If Not driveLetter.EndsWith(":") Then
driveLetter &= ":"
End If
Dim flags As Integer = CONNECT_UPDATE_PROFILE
Dim result As Integer = WNetCancelConnection2(driveLetter, flags, force)
If result = ERROR_SUCCESS Then
LOGGER.Debug($"Netzlaufwerk {driveLetter} erfolgreich getrennt")
Return True
ElseIf result = ERROR_ALREADY_ASSIGNED Then
LOGGER.Debug($"Netzlaufwerk {driveLetter} war nicht verbunden")
Return True
Else
LOGGER.Warn($"Warnung beim Trennen von {driveLetter}: Error Code {result}")
Return False
End If
Catch ex As Exception
LOGGER.Debug($"Fehler beim Trennen von {driveLetter} (ignoriert): {ex.Message}")
Return False
End Try
End Function
''' <summary>
''' Ermittelt alle gemappten Netzlaufwerke
''' </summary>
Public Shared Function GetMappedNetworkDrives() As List(Of NetworkDriveInfo)
Dim mappedDrives As New List(Of NetworkDriveInfo)
Try
For Each drive As IO.DriveInfo In IO.DriveInfo.GetDrives()
If drive.DriveType = IO.DriveType.Network Then
Dim driveInfo As New NetworkDriveInfo With {
.DriveLetter = drive.Name,
.NetworkPath = GetNetworkPath(drive.Name),
.DriveType = drive.DriveType,
.IsReady = drive.IsReady
}
If drive.IsReady Then
Try
driveInfo.TotalSize = drive.TotalSize
driveInfo.FreeSpace = drive.AvailableFreeSpace
Catch ex As Exception
LOGGER.Debug($"Konnte Größeninformationen für {drive.Name} nicht ermitteln: {ex.Message}")
End Try
End If
mappedDrives.Add(driveInfo)
End If
Next
LOGGER.Debug($"Insgesamt {mappedDrives.Count} Netzlaufwerk(e) gefunden")
Return mappedDrives
Catch ex As Exception
LOGGER.Error($"Fehler beim Ermitteln der Netzlaufwerke: {ex.Message}")
LOGGER.Error(ex)
Return mappedDrives
End Try
End Function
''' <summary>
''' Ermittelt den UNC-Pfad eines gemappten Laufwerks
''' </summary>
Public Shared Function GetNetworkPath(driveLetter As String) As String
Try
driveLetter = driveLetter.Trim().ToUpper()
If Not driveLetter.EndsWith(":") Then
driveLetter &= ":"
End If
Dim network As Object = CreateObject("WScript.Network")
Dim enumDrives As Object = network.EnumNetworkDrives()
For i As Integer = 0 To enumDrives.Count - 1 Step 2
If enumDrives.Item(i).ToString.Equals(driveLetter, StringComparison.OrdinalIgnoreCase) Then
Return enumDrives.Item(i + 1).ToString()
End If
Next
Return String.Empty
Catch ex As Exception
LOGGER.Debug($"Fehler beim Ermitteln des Netzwerkpfads für {driveLetter}: {ex.Message}")
Return String.Empty
End Try
End Function
''' <summary>
''' Prüft ob ein bestimmtes Laufwerk als Netzlaufwerk gemappt ist
''' </summary>
Public Shared Function IsDriveMapped(driveLetter As String) As Boolean
Try
driveLetter = driveLetter.Trim().ToUpper()
If Not driveLetter.EndsWith(":") Then
driveLetter &= ":"
End If
If Not driveLetter.EndsWith("\") Then
driveLetter &= "\"
End If
Dim driveInfo As New IO.DriveInfo(driveLetter)
Return driveInfo.DriveType = IO.DriveType.Network AndAlso driveInfo.IsReady
Catch ex As Exception
Return False
End Try
End Function
''' <summary>
''' Gibt eine formatierte Übersicht aller gemappten Netzlaufwerke zurück
''' </summary>
Public Shared Function GetMappedDrivesInfo() As String
Dim result As New System.Text.StringBuilder()
Dim drives = GetMappedNetworkDrives()
If drives.Count = 0 Then
Return "Keine Netzlaufwerke gefunden."
End If
result.AppendLine($"Gemappte Netzlaufwerke ({drives.Count}):")
result.AppendLine(New String("-"c, 60))
For Each drive In drives
result.AppendLine($"Laufwerk: {drive.DriveLetter}")
result.AppendLine($" Pfad: {drive.NetworkPath}")
result.AppendLine($" Status: {If(drive.IsReady, "Verfügbar", "Nicht verfügbar")}")
If drive.IsReady AndAlso drive.TotalSize > 0 Then
Dim totalGB As Double = drive.TotalSize / (1024.0 ^ 3)
Dim freeGB As Double = drive.FreeSpace / (1024.0 ^ 3)
result.AppendLine($" Größe: {totalGB:N2} GB (Frei: {freeGB:N2} GB)")
End If
result.AppendLine()
Next
Return result.ToString()
End Function
''' <summary>
''' Mappt ein spezifisches Laufwerk (z.B. "V") mit Blacklist-Prüfung
''' </summary>
Public Function MapSpecificDrive(driveLetter As String, blacklist As String, networkPath As String) As Boolean
Try
' Formatierung sicherstellen
driveLetter = driveLetter.Trim().ToUpper().Replace(":", "")
If String.IsNullOrEmpty(driveLetter) OrElse driveLetter.Length <> 1 Then
LOGGER.Warn($"⚠️ Ungültiger Laufwerksbuchstabe: [{driveLetter}]")
Return False
End If
Dim driveWithColon As String = driveLetter & ":"
' Prüfen ob Laufwerk verfügbar ist
If Not IsDriveLetterAvailable(driveWithColon, blacklist) Then
LOGGER.Warn($"⚠️ Laufwerk {driveWithColon} ist nicht verfügbar (bereits verwendet oder in Blacklist)")
Return False
End If
' UNC-Pfad vorbereiten (ohne abschließenden Backslash)
Dim uncPath As String = networkPath.TrimEnd("\"c)
' Laufwerk mappen (OHNE Credentials, persistent=False für temporäres Mapping)
Dim result = MapNetworkDrive(driveWithColon, uncPath, blacklist, userName:=Nothing, password:=Nothing, persistent:=False)
If Not String.IsNullOrEmpty(result) Then
LOGGER.Debug($"✓ Laufwerk {driveWithColon} erfolgreich gemappt zu [{uncPath}]")
Return True
Else
LOGGER.Error($"❌ Fehler beim Mappen von {driveWithColon}")
Return False
End If
Catch ex As Exception
LOGGER.Error($"Fehler in MapSpecificDrive: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
''' <summary>
''' Mappt automatisch den nächsten freien Laufwerksbuchstaben (Z→A)
''' </summary>
Public Function MapDriveAutomatic(blacklist As String, networkPath As String) As String
Try
' UNC-Pfad vorbereiten (ohne abschließenden Backslash)
Dim uncPath As String = networkPath.TrimEnd("\"c)
LOGGER.Debug($"🔍 Suche automatisch freien Laufwerksbuchstaben...")
LOGGER.Debug($" Blacklist: [{blacklist}]")
LOGGER.Debug($" Netzwerkpfad: [{uncPath}]")
' Automatisches Mapping (leer = automatische Auswahl, persistent=False)
Dim result = MapNetworkDrive("", uncPath, blacklist, userName:=Nothing, password:=Nothing, persistent:=False)
If Not String.IsNullOrEmpty(result) Then
LOGGER.Debug($"✓ Automatisch gewähltes Laufwerk: {result}")
Return result
Else
LOGGER.Error($"❌ Kein freier Laufwerksbuchstabe verfügbar")
Return String.Empty
End If
Catch ex As Exception
LOGGER.Error($"Fehler in MapDriveAutomatic: {ex.Message}")
LOGGER.Error(ex)
Return String.Empty
End Try
End Function
End Class End Class

View File

@@ -32,6 +32,8 @@ Public Class ClassConfig
Public Property ReminderTimer As Integer = 5 Public Property ReminderTimer As Integer = 5
Public Property OverviewRefresh_Intervall As Integer = 2 Public Property OverviewRefresh_Intervall As Integer = 2
Public Property MainTreeList_Width As Integer = 250
Public Property MonitorSplitter1_Distance As Integer = 510 Public Property MonitorSplitter1_Distance As Integer = 510
Public Property MonitorSplitter2_Distance As Integer = 270 Public Property MonitorSplitter2_Distance As Integer = 270
Public Property MonitorSplitter3_Distance As Integer = 400 Public Property MonitorSplitter3_Distance As Integer = 400
@@ -43,8 +45,12 @@ Public Class ClassConfig
Public Property NOTES_ONCLICK As Boolean = True Public Property NOTES_ONCLICK As Boolean = True
Public Property GridFontSizeDelta As Integer = 0 Public Property GridFontSizeDelta As Integer = 0
Public Property ProfileConfig As New ProfileUserConfig Public Property ProfileConfig As New ProfileUserConfig
Public Property InvDashboardSplitterPositions As New List(Of InvDashboardSplitterPosition)
Public Class InvDashboardSplitterPosition
Public Property CockpitChartId As Integer
Public Property SplitterPosition As Integer
End Class
Public Class ProfileUserConfig Public Class ProfileUserConfig
Public Property ProfileID As Integer Public Property ProfileID As Integer

View File

@@ -1,311 +0,0 @@
Imports System.IO
Imports DigitalData.Modules.Logging
''' <summary>
''' Zentrale Klasse für Dokumentenpfad-Verwaltung mit optionalem Laufwerks-Mapping und Temp-Kopie
''' </summary>
Public Class ClassDocumentPathHandler
Private ReadOnly _logger As Logger
Private _mappedDrive As String = ""
''' <summary>
''' Initialisiert den DocumentPathHandler
''' </summary>
''' <param name="logger">Logger-Instanz</param>
Public Sub New(logger As Logger)
_logger = logger
End Sub
''' <summary>
''' Verarbeitet einen Dokumentenpfad: Optional Mapping, dann Temp-Kopie
''' </summary>
''' <param name="sourcePath">Quell-Pfad der Datei (UNC oder lokal)</param>
''' <param name="options">Optionen für die Verarbeitung</param>
''' <returns>DocumentPathResult mit finalem Pfad und Mapping-Info</returns>
Public Function ProcessDocumentPath(sourcePath As String, options As DocumentPathOptions) As DocumentPathResult
Dim result As New DocumentPathResult With {
.SourcePath = sourcePath,
.FinalPath = sourcePath,
.Success = False,
.WasMapped = False,
.WasCopiedToTemp = False
}
Try
' Validierung
If String.IsNullOrEmpty(sourcePath) Then
result.ErrorMessage = "Quell-Pfad ist leer"
_logger.Error("❌ ProcessDocumentPath: Quell-Pfad ist leer")
Return result
End If
Dim workingPath As String = sourcePath
' ========== SCHRITT 1: OPTIONALES LAUFWERKS-MAPPING ==========
If options.EnableMapping AndAlso Not String.IsNullOrEmpty(options.WMSuffix) Then
Dim mappingResult = TryMapNetworkDrive(sourcePath, options)
If mappingResult.Success Then
workingPath = mappingResult.MappedPath
_mappedDrive = mappingResult.DriveLetter
result.WasMapped = True
result.MappedDrive = _mappedDrive
_logger.Info($"✓ Laufwerk gemappt: {_mappedDrive}")
Else
_logger.Warn("⚠️ Laufwerks-Mapping fehlgeschlagen - verwende Original-UNC-Pfad")
workingPath = sourcePath
End If
End If
' ========== SCHRITT 2: PRÜFEN OB DATEI EXISTIERT ==========
If Not File.Exists(workingPath) Then
result.ErrorMessage = $"Datei nicht gefunden: [{workingPath}]"
_logger.Error($"❌ {result.ErrorMessage}")
' Cleanup bei Fehler
If result.WasMapped Then
UnmapDrive()
End If
Return result
End If
' ========== SCHRITT 3: OPTIONALE TEMP-KOPIE ==========
If options.CopyToTemp Then
Dim tempResult = CopyToTempFolder(workingPath, options.TempFolder)
If tempResult.Success Then
result.FinalPath = tempResult.TempPath
result.WasCopiedToTemp = True
result.TempPath = tempResult.TempPath
_logger.Info($"✓ Datei in Temp kopiert: [{Path.GetFileName(tempResult.TempPath)}]")
' Laufwerk unmappen nach erfolgreicher Kopie
If result.WasMapped AndAlso options.UnmapAfterCopy Then
UnmapDrive()
result.WasMapped = False ' Wurde bereits getrennt
End If
Else
_logger.Warn($"⚠️ Temp-Kopie fehlgeschlagen: {tempResult.ErrorMessage}")
result.FinalPath = workingPath
' Cleanup bei Fehler
If result.WasMapped Then
UnmapDrive()
End If
End If
Else
result.FinalPath = workingPath
_logger.Debug($"📄 Verwende Pfad ohne Temp-Kopie: [{workingPath}]")
End If
result.Success = True
Return result
Catch ex As Exception
result.ErrorMessage = $"Unerwarteter Fehler: {ex.Message}"
_logger.Error($"❌ ProcessDocumentPath: {ex.Message}")
_logger.Error(ex)
' Cleanup bei Exception
If result.WasMapped Then
UnmapDrive()
End If
Return result
End Try
End Function
''' <summary>
''' Versucht ein Netzlaufwerk zu mappen
''' </summary>
Private Function TryMapNetworkDrive(sourcePath As String, options As DocumentPathOptions) As MappingResult
Dim result As New MappingResult With {.Success = False}
Try
' Prüfen ob Pfad mit WMSUFFIX beginnt
If Not sourcePath.StartsWith(options.WMSuffix, StringComparison.OrdinalIgnoreCase) Then
_logger.Debug($"📄 Pfad beginnt nicht mit WMSUFFIX - kein Mapping erforderlich")
Return result
End If
_logger.Debug($"📂 WMSUFFIX erkannt - starte Laufwerks-Mapping")
' Laufwerk mappen
Dim mappedDrive As String = ""
Dim allgFunk As New ClassAllgemeineFunktionen()
If Not String.IsNullOrEmpty(options.SpecificDrive) AndAlso options.SpecificDrive.Length = 1 Then
' Spezifisches Laufwerk
If allgFunk.MapSpecificDrive(options.SpecificDrive, options.DriveBlacklist, options.WMSuffix) Then
mappedDrive = options.SpecificDrive & ":"
End If
Else
' Automatisches Mapping
mappedDrive = allgFunk.MapDriveAutomatic(options.DriveBlacklist, options.WMSuffix)
End If
If String.IsNullOrEmpty(mappedDrive) Then
_logger.Warn("⚠️ Kein Laufwerk gemappt")
Return result
End If
' Pfad umschreiben
Dim relativePath As String = sourcePath.Substring(options.WMSuffix.Length)
If relativePath.StartsWith("\") Then
relativePath = relativePath.Substring(1)
End If
Dim mappedPath As String = mappedDrive.TrimEnd(":"c, "\"c) & ":\" & relativePath
_logger.Debug($"📄 Original: [{sourcePath}]")
_logger.Debug($"📄 Gemappt: [{mappedPath}]")
result.Success = True
result.DriveLetter = mappedDrive
result.MappedPath = mappedPath
Return result
Catch ex As Exception
_logger.Error($"Fehler beim Mapping: {ex.Message}")
_logger.Error(ex)
Return result
End Try
End Function
''' <summary>
''' Kopiert Datei in Temp-Ordner mit eindeutigem Zeitstempel
''' </summary>
Private Function CopyToTempFolder(sourcePath As String, tempFolder As String) As TempCopyResult
Dim result As New TempCopyResult With {.Success = False}
Try
' Temp-Ordner validieren
If String.IsNullOrEmpty(tempFolder) Then
result.ErrorMessage = "Temp-Ordner nicht gesetzt"
_logger.Warn("⚠️ TEMP_DOCUMENT_FOLDER ist nicht gesetzt")
If Not frmValidator.InitializeTempFolder() Then
result.ErrorMessage = "Temp-Ordner konnte nicht initialisiert werden"
Return result
End If
tempFolder = TEMP_DOCUMENT_FOLDER
End If
If Not Directory.Exists(tempFolder) Then
result.ErrorMessage = $"Temp-Ordner existiert nicht: [{tempFolder}]"
_logger.Error($"❌ {result.ErrorMessage}")
Return result
End If
' Eindeutigen Dateinamen generieren
Dim originalFileName As String = Path.GetFileName(sourcePath)
Dim fileNameWithoutExt As String = Path.GetFileNameWithoutExtension(originalFileName)
Dim extension As String = Path.GetExtension(originalFileName)
Dim timestamp As String = DateTime.Now.ToString("yyyyMMdd_HHmmss_fff")
Dim uniqueFileName As String = $"{fileNameWithoutExt}_{timestamp}{extension}"
Dim targetPath As String = Path.Combine(tempFolder, uniqueFileName)
_logger.Debug($"📄 Kopiere nach Temp:")
_logger.Debug($" Von: [{sourcePath}]")
_logger.Debug($" Nach: [{targetPath}]")
' Datei kopieren
File.Copy(sourcePath, targetPath, overwrite:=True)
result.Success = True
result.TempPath = targetPath
result.TempFileName = uniqueFileName
Return result
Catch ex As Exception
result.ErrorMessage = $"Fehler beim Kopieren: {ex.Message}"
_logger.Error($"❌ {result.ErrorMessage}")
_logger.Error(ex)
Return result
End Try
End Function
''' <summary>
''' Trennt das gemappte Laufwerk
''' </summary>
Public Sub UnmapDrive()
If Not String.IsNullOrEmpty(_mappedDrive) Then
Try
If ClassAllgemeineFunktionen.DisconnectNetworkDrive(_mappedDrive, force:=True) Then
_logger.Info($"🔌 Laufwerk {_mappedDrive} getrennt")
Else
_logger.Warn($"⚠️ Warnung beim Trennen von {_mappedDrive}")
End If
Catch ex As Exception
_logger.Debug($"Fehler beim Trennen von {_mappedDrive}: {ex.Message}")
Finally
_mappedDrive = ""
End Try
End If
End Sub
''' <summary>
''' Cleanup-Methode (z.B. beim Schließen des Forms)
''' </summary>
Public Sub Cleanup()
UnmapDrive()
End Sub
#Region "Nested Classes für Optionen und Ergebnisse"
''' <summary>
''' Optionen für die Dokumentenpfad-Verarbeitung
''' </summary>
Public Class DocumentPathOptions
''' <summary>Soll Laufwerks-Mapping versucht werden?</summary>
Public Property EnableMapping As Boolean = False
''' <summary>WMSUFFIX für Mapping-Erkennung (z.B. "\\windream\objects")</summary>
Public Property WMSuffix As String = ""
''' <summary>Spezifischer Laufwerksbuchstabe (z.B. "V") oder leer für automatisch</summary>
Public Property SpecificDrive As String = ""
''' <summary>Blacklist für Laufwerksbuchstaben (z.B. "Y,M,V")</summary>
Public Property DriveBlacklist As String = ""
''' <summary>Soll Datei in Temp kopiert werden?</summary>
Public Property CopyToTemp As Boolean = False
''' <summary>Temp-Ordner-Pfad</summary>
Public Property TempFolder As String = ""
''' <summary>Laufwerk nach erfolgreicher Temp-Kopie unmappen?</summary>
Public Property UnmapAfterCopy As Boolean = True
End Class
''' <summary>
''' Ergebnis der Dokumentenpfad-Verarbeitung
''' </summary>
Public Class DocumentPathResult
Public Property Success As Boolean
Public Property SourcePath As String
Public Property FinalPath As String
Public Property ErrorMessage As String
Public Property WasMapped As Boolean
Public Property MappedDrive As String
Public Property WasCopiedToTemp As Boolean
Public Property TempPath As String
End Class
Private Class MappingResult
Public Property Success As Boolean
Public Property DriveLetter As String
Public Property MappedPath As String
End Class
Private Class TempCopyResult
Public Property Success As Boolean
Public Property TempPath As String
Public Property TempFileName As String
Public Property ErrorMessage As String
End Class
#End Region
End Class

View File

@@ -155,52 +155,64 @@
End Function End Function
Public Function GetVariableValue(oAttributeName As String, Optional oIDBTyp As Integer = 0, Optional FromIDB As Boolean = False) As Object Public Function GetVariableValue(oAttributeName As String, Optional oIDBTyp As Integer = 0, Optional FromIDB As Boolean = False) As Object
Try Try
Dim oSingleAttribute As Boolean = True ' Bestimme, ob es sich um ein Single-Value-Attribut handelt (nicht Typ 8 oder 9)
Select Case oIDBTyp Dim oIsSingleAttribute As Boolean = (oIDBTyp <> 8 AndAlso oIDBTyp <> 9)
Case 8
oSingleAttribute = False LOGGER.Debug($"IDBData - GetVariableValue - Attribute: [{oAttributeName}] - IsSingleAttribute: [{oIsSingleAttribute}] - FromIDB: [{FromIDB}]")
Case 9
oSingleAttribute = False ' Schnellpfad: Direkt aus gecachter DataTable holen
End Select If oIsSingleAttribute AndAlso IDB_DT_DOC_DATA.Rows.Count = 1 AndAlso Not FromIDB Then
Dim oAttributeValue
LOGGER.Debug($"IDBData - GetVariableValue - oSingleAttribute [{oSingleAttribute.ToString}] - FromIDB [{FromIDB.ToString}]")
If oSingleAttribute = True And IDB_DT_DOC_DATA.Rows.Count = 1 And FromIDB = False Then
Try Try
If oAttributeName = "IDBCreatedWhen" Then Dim oMappedName As String = MapSystemAttributeName(oAttributeName)
oAttributeName = "ADDED_WHEN" Dim oValue As Object = IDB_DT_DOC_DATA.Rows(0).Item(oMappedName)
ElseIf oAttributeName = "IDBCreatedWho" Then LOGGER.Debug($"IDBData - GetVariableValue - Retrieved from cache: Attribute=[{oAttributeName}] MappedName=[{oMappedName}] Value=[{oValue}]")
oAttributeName = "ADDED_WHO" Return oValue
ElseIf oAttributeName = "IDBChangedWhen" Then
oAttributeName = "CHANGED_WHEN"
ElseIf oAttributeName = "IDBChangedWho" Then
oAttributeName = "CHANGED_WHO"
End If
LOGGER.Debug($"IDBData - GetVariableValue - IDB_DT_DOC_DATA.Rows.Count = 1")
oAttributeValue = IDB_DT_DOC_DATA.Rows(0).Item(oAttributeName)
Catch ex As Exception Catch ex As Exception
LOGGER.Debug($"Error getting Attribute from IDB_DT_DOC_DATA: {ex.Message}") LOGGER.Debug($"Error getting Attribute from IDB_DT_DOC_DATA: {ex.Message}")
' Fallthrough zum Datenbank-Fallback
End Try End Try
End If
End If ' Fallback: Wert aus Datenbank über Funktion holen
If Not IsNothing(oAttributeValue) Then LOGGER.Debug($"Retrieving value for attribute [{oAttributeName}] via FNIDB_PM_GET_VARIABLE_VALUE")
LOGGER.Debug($"IDBData - GetVariableValue - Returning value: [{oAttributeValue}]")
Return oAttributeValue Dim oSQL As String = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({CURRENT_DOC_ID},'{oAttributeName}','{USER_LANGUAGE}',CONVERT(BIT,'{IDB_USES_WMFILESTORE}'))"
LOGGER.Debug($"SQL: {oSQL}")
Dim oResultTable As DataTable = DatabaseFallback.GetDatatableIDB(oSQL)
If oResultTable IsNot Nothing AndAlso oResultTable.Rows.Count = 1 Then
Dim oValue As Object = oResultTable.Rows(0).Item(0)
LOGGER.Debug($"IDBData - GetVariableValue - Retrieved from DB: [{oValue}]")
Return oValue
Else Else
LOGGER.Debug($"oAttributeValue for Attribute [{oAttributeName}] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE ") LOGGER.Info($"IDBData - GetVariableValue - No value found in DB for attribute [{oAttributeName}] - SQL [{oSQL}]")
End If End If
Dim oFNSQL = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({CURRENT_DOC_ID},'{oAttributeName}','{USER_LANGUAGE}',CONVERT(BIT,'{IDB_USES_WMFILESTORE}'))"
LOGGER.Debug($": {oFNSQL}") Return oResultTable
oAttributeValue = DatabaseFallback.GetDatatableIDB(oFNSQL)
Dim odt As DataTable = oAttributeValue
If odt.Rows.Count = 1 Then
oAttributeValue = odt.Rows(0).Item(0)
End If
Return oAttributeValue
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function
''' <summary>
''' Mappt System-Attributnamen auf interne Spaltennamen.
''' </summary>
Private Function MapSystemAttributeName(attributeName As String) As String
Select Case attributeName
Case "IDBCreatedWhen"
Return "ADDED_WHEN"
Case "IDBCreatedWho"
Return "ADDED_WHO"
Case "IDBChangedWhen"
Return "CHANGED_WHEN"
Case "IDBChangedWho"
Return "CHANGED_WHO"
Case Else
Return attributeName
End Select
End Function End Function
Public Function Delete_Term_Object_From_Metadata(oAttributeName As String, oTerm2Delete As String) As Object Public Function Delete_Term_Object_From_Metadata(oAttributeName As String, oTerm2Delete As String) As Object
Try Try

View File

@@ -528,7 +528,7 @@ Public Class ClassInit
oStep = "TBPM_CHART" oStep = "TBPM_CHART"
oSql = "SELECT * FROM TBPM_CHART" oSql = "SELECT * FROM TBPM_CHART WITH (NOLOCK)"
BASEDATA_DT_CHARTS = DatabaseFallback.GetDatatable("TBPM_CHART", New GetDatatableOptions(oSql, DatabaseType.ECM)) BASEDATA_DT_CHARTS = DatabaseFallback.GetDatatable("TBPM_CHART", New GetDatatableOptions(oSql, DatabaseType.ECM))
oStep = "TBDD_GUI_LANGUAGE" oStep = "TBDD_GUI_LANGUAGE"

View File

@@ -35,7 +35,7 @@ Public Class ClassPMWindream
#End Region #End Region
#Region "+++++ Variablen +++++" #Region "+++++ Variablen +++++"
Private oController As New WMOSearchController 'Private oController As New WMOSearchController
#End Region #End Region
#Region "+++++ Allgemeine Methoden und Funktionen +++++" #Region "+++++ Allgemeine Methoden und Funktionen +++++"

View File

@@ -60,241 +60,242 @@ Public Class ClassParamRefresh
' Use For Each loop over words and display them. ' Use For Each loop over words and display them.
Dim oMode As String Dim oMode As String
For Each oMode In oSplitWorkMode For Each oMode In oSplitWorkMode
LOGGER.Debug($"oWorkingMode Parameter: {oMode}") ProcessWorkingModeParameter(oMode, pMode)
If oMode = "PM.FORCE_LAYOUT_OVERVIEW" Then 'LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
FORCE_LAYOUT_OVERVIEW = True 'If oMode = "PM.FORCE_LAYOUT_OVERVIEW" Then
LOGGER.Debug($"FORCE_LAYOUT_OVERVIEW [{FORCE_LAYOUT_OVERVIEW}]") ' FORCE_LAYOUT_OVERVIEW = True
ElseIf oMode = "PM.NO_MASS_VALIDATOR" Then ' LOGGER.Debug($"FORCE_LAYOUT_OVERVIEW [{FORCE_LAYOUT_OVERVIEW}]")
SHOW_MASS_VALIDATOR = False 'ElseIf oMode = "PM.NO_MASS_VALIDATOR" Then
LOGGER.Info($"SHOW_MASS_VALIDATOR [{SHOW_MASS_VALIDATOR}]") ' SHOW_MASS_VALIDATOR = False
ElseIf oMode = "PM.NO_CHARTS" Then ' LOGGER.Info($"SHOW_MASS_VALIDATOR [{SHOW_MASS_VALIDATOR}]")
SHOW_CHARTS = False 'ElseIf oMode = "PM.NO_CHARTS" Then
LOGGER.Debug($"SHOW_CHARTS [{SHOW_CHARTS}]") ' SHOW_CHARTS = False
ElseIf oMode = "PM.DEBUG_LOG" Then ' LOGGER.Debug($"SHOW_CHARTS [{SHOW_CHARTS}]")
DEBUG = True 'ElseIf oMode = "PM.DEBUG_LOG" Then
LOGCONFIG.Debug = True ' DEBUG = True
ElseIf oMode = "PM.LOG_HOTSPOTS" Then ' LOGCONFIG.Debug = True
LOG_HOTSPOTS = True 'ElseIf oMode = "PM.LOG_HOTSPOTS" Then
ElseIf oMode.StartsWith("OPERATION_MODE_FS") Then ' LOG_HOTSPOTS = True
OPERATION_MODE_FS = oMode.Replace("OPERATION_MODE_FS=", "") 'ElseIf oMode.StartsWith("OPERATION_MODE_FS") Then
If OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM Then ' OPERATION_MODE_FS = oMode.Replace("OPERATION_MODE_FS=", "")
IDB_USES_WMFILESTORE = True ' If OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM Then
End If ' IDB_USES_WMFILESTORE = True
LOGGER.Info("OPERATION_MODE_FS: " + OPERATION_MODE_FS) ' End If
ElseIf oMode = "PM.IDBWITHWMFS" Then ' LOGGER.Info("OPERATION_MODE_FS: " + OPERATION_MODE_FS)
IDB_USES_WMFILESTORE = True 'ElseIf oMode = "PM.IDBWITHWMFS" Then
ElseIf oMode = "PM.NO_BASICCONF" Then ' IDB_USES_WMFILESTORE = True
BASIC_CONF_VISIBLE = False 'ElseIf oMode = "PM.NO_BASICCONF" Then
LOGGER.Info($"BASIC_CONF_VISIBLE [{BASIC_CONF_VISIBLE}]") ' BASIC_CONF_VISIBLE = False
ElseIf oMode = "PM.SYS_LOCKED_MAINTENANCE" Then ' LOGGER.Info($"BASIC_CONF_VISIBLE [{BASIC_CONF_VISIBLE}]")
SYS_LOCKED_MAINTENANCE = True 'ElseIf oMode = "PM.SYS_LOCKED_MAINTENANCE" Then
ElseIf oMode.StartsWith("PM.IDB_CONID!") Then ' SYS_LOCKED_MAINTENANCE = True
If CONNECTION_STRING_IDB <> "" And dbIDBInitialized = True Then 'ElseIf oMode.StartsWith("PM.IDB_CONID!") Then
IDB_ACTIVE = True ' If CONNECTION_STRING_IDB <> "" And dbIDBInitialized = True Then
Continue For ' IDB_ACTIVE = True
Else ' Continue For
Dim Database_IDB As MSSQLServer = Nothing ' Else
Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "") ' Dim Database_IDB As MSSQLServer = Nothing
Dim oConString = DatabaseFallback.GetConnectionString(CON_ID) ' Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "")
CONNECTION_STRING_IDB = oConString ' Dim oConString = DatabaseFallback.GetConnectionString(CON_ID)
Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB) ' CONNECTION_STRING_IDB = oConString
If Database_IDB.DBInitialized = True Then ' Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB)
IDB_ACTIVE = True ' If Database_IDB.DBInitialized = True Then
LOGGER.Info($"IDB is active - IDB-Connection [{CON_ID}]!") ' IDB_ACTIVE = True
DatabaseFallback.InitializeIDB(Database_IDB) ' LOGGER.Info($"IDB is active - IDB-Connection [{CON_ID}]!")
Else ' DatabaseFallback.InitializeIDB(Database_IDB)
IDB_ACTIVE = False ' Else
End If ' IDB_ACTIVE = False
End If ' End If
ElseIf oMode = "PM.EXCEL_OVERVIEW" Then ' End If
EXCEL_OVERVIEW = True 'ElseIf oMode = "PM.EXCEL_OVERVIEW" Then
LOGGER.Info($"EXCEL_OVERVIEW [{EXCEL_OVERVIEW}]") ' EXCEL_OVERVIEW = True
ElseIf oMode = "PM.MONITORING" Then ' LOGGER.Info($"EXCEL_OVERVIEW [{EXCEL_OVERVIEW}]")
MONITORING_ACTIVE = True 'ElseIf oMode = "PM.MONITORING" Then
LOGGER.Debug($"MONITORING_ACTIVE [{MONITORING_ACTIVE}]") ' MONITORING_ACTIVE = True
ElseIf oMode = "PM.GHOSTMODE" Then ' LOGGER.Debug($"MONITORING_ACTIVE [{MONITORING_ACTIVE}]")
GHOSTMODE_ACTIVE = True 'ElseIf oMode = "PM.GHOSTMODE" Then
LOGGER.Info($"GHOSTMODE_ACTIVE [{GHOSTMODE_ACTIVE}]") ' GHOSTMODE_ACTIVE = True
ElseIf oMode.StartsWith("PM.COLORSCHEME") Then ' LOGGER.Info($"GHOSTMODE_ACTIVE [{GHOSTMODE_ACTIVE}]")
Dim oColorScheme = oMode.Replace("PM.COLORSCHEME=", "") 'ElseIf oMode.StartsWith("PM.COLORSCHEME") Then
RIBBON_COLOR_SCHEME = oColorScheme.ToUpper ' Dim oColorScheme = oMode.Replace("PM.COLORSCHEME=", "")
LOGGER.Debug($"RIBBON_COLOR_SCHEME [{RIBBON_COLOR_SCHEME}]") ' RIBBON_COLOR_SCHEME = oColorScheme.ToUpper
ElseIf oMode.StartsWith("PM.NO_DETAIL_PROFILES") Then ' LOGGER.Debug($"RIBBON_COLOR_SCHEME [{RIBBON_COLOR_SCHEME}]")
NO_DETAIL_PROFILES = True 'ElseIf oMode.StartsWith("PM.NO_DETAIL_PROFILES") Then
LOGGER.Debug($"NO_DETAIL_PROFILES [{NO_DETAIL_PROFILES}]") ' NO_DETAIL_PROFILES = True
ElseIf oMode = "PM.NO_POPUP" Then ' LOGGER.Debug($"NO_DETAIL_PROFILES [{NO_DETAIL_PROFILES}]")
POPUP_REMINDER_ACTIVE = False 'ElseIf oMode = "PM.NO_POPUP" Then
LOGGER.Debug($"POPUP_REMINDER_ACTIVE [{POPUP_REMINDER_ACTIVE}]") ' POPUP_REMINDER_ACTIVE = False
ElseIf oMode.StartsWith("PM.POPUP_TIMELAPS_OVERRIDE") Then ' LOGGER.Debug($"POPUP_REMINDER_ACTIVE [{POPUP_REMINDER_ACTIVE}]")
Dim oTimeLapse = oMode.Replace("PM.POPUP_TIMELAPS_OVERRIDE=", "") 'ElseIf oMode.StartsWith("PM.POPUP_TIMELAPS_OVERRIDE") Then
LOGGER.Info($"CENTRAL POPUP_TIMELAPS_OVERRIDE [{oTimeLapse}]") ' Dim oTimeLapse = oMode.Replace("PM.POPUP_TIMELAPS_OVERRIDE=", "")
Try ' LOGGER.Info($"CENTRAL POPUP_TIMELAPS_OVERRIDE [{oTimeLapse}]")
CONFIG.Config.ReminderTimer = oTimeLapse ' Try
Catch ex As Exception ' CONFIG.Config.ReminderTimer = oTimeLapse
End Try ' Catch ex As Exception
' End Try
ElseIf oMode.StartsWith("PM.CONV_IDENTIFICATION") Then 'ElseIf oMode.StartsWith("PM.CONV_IDENTIFICATION") Then
Dim oIdent = oMode.Replace("PM.CONV_IDENTIFICATION=", "") ' Dim oIdent = oMode.Replace("PM.CONV_IDENTIFICATION=", "")
CONV_IDENTIFICATION = oIdent ' CONV_IDENTIFICATION = oIdent
ElseIf oMode.StartsWith("PM.INACTIVITY_DURATION") Then 'ElseIf oMode.StartsWith("PM.INACTIVITY_DURATION") Then
Dim oInactivityDuration = oMode.Replace("PM.INACTIVITY_DURATION=", "") ' Dim oInactivityDuration = oMode.Replace("PM.INACTIVITY_DURATION=", "")
Try ' Try
INACTIVITY_DURATION = CInt(oInactivityDuration) ' INACTIVITY_DURATION = CInt(oInactivityDuration)
LOGGER.Debug($"InactivityDuration [{INACTIVITY_DURATION}]") ' LOGGER.Debug($"InactivityDuration [{INACTIVITY_DURATION}]")
Catch ex As Exception ' Catch ex As Exception
LOGGER.Warn($"INACTIVITY_DURATION = 0 - {ex.Message}") ' LOGGER.Warn($"INACTIVITY_DURATION = 0 - {ex.Message}")
INACTIVITY_DURATION = 0 ' INACTIVITY_DURATION = 0
End Try ' End Try
ElseIf oMode.StartsWith("PM.COL_LAST_EDITED") Then 'ElseIf oMode.StartsWith("PM.COL_LAST_EDITED") Then
Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_EDITED=", "") ' Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_EDITED=", "")
Try ' Try
LAST_EDITED_COLUMN = oLEDITEDCOL ' LAST_EDITED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"LAST_EDITED_COLUMN: {oLEDITEDCOL}") ' LOGGER.Debug($"LAST_EDITED_COLUMN: {oLEDITEDCOL}")
Catch ex As Exception ' Catch ex As Exception
LAST_EDITED_COLUMN = "" ' LAST_EDITED_COLUMN = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then 'ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then
Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "") ' Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "")
Try ' Try
LAST_ADDED_COLUMN = oLEDITEDCOL ' LAST_ADDED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}") ' LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}")
Catch ex As Exception ' Catch ex As Exception
LAST_ADDED_COLUMN = "" ' LAST_ADDED_COLUMN = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then 'ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "") ' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "")
Try ' Try
MON_EDITED_COLUMN = oLEDITEDCOL ' MON_EDITED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}") ' LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}")
Catch ex As Exception ' Catch ex As Exception
End Try ' End Try
ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then 'ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "") ' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "")
Try ' Try
MON_ADDED_COLUMN = oLEDITEDCOL ' MON_ADDED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}") ' LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}")
Catch ex As Exception ' Catch ex As Exception
End Try ' End Try
ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then 'ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then
Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "") ' Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "")
Try ' Try
USE_APPSERVER = CBool(oUSE_APPSERVER) ' USE_APPSERVER = CBool(oUSE_APPSERVER)
Catch ex As Exception ' Catch ex As Exception
USE_APPSERVER = False ' USE_APPSERVER = False
End Try ' End Try
ElseIf oMode.StartsWith("PM.COPYWM2TEMP") Then 'ElseIf oMode.StartsWith("PM.COPYWM2TEMP") Then
Dim oCOPYWM2TEMP = oMode.Replace("PM.COPYWM2TEMP=", "") ' Dim oCOPYWM2TEMP = oMode.Replace("PM.COPYWM2TEMP=", "")
Try ' Try
COPY_WMFILE_2TEMP = CBool(oCOPYWM2TEMP) ' COPY_WMFILE_2TEMP = CBool(oCOPYWM2TEMP)
Catch ex As Exception ' Catch ex As Exception
COPY_WMFILE_2TEMP = False ' COPY_WMFILE_2TEMP = False
End Try ' End Try
ElseIf oMode.StartsWith("PM.MAP_SHARE_DRIVE") Then 'ElseIf oMode.StartsWith("PM.MAP_SHARE_DRIVE") Then
Dim oMAP_SHARE_DRIVE = oMode.Replace("PM.MAP_SHARE_DRIVE=", "") ' Dim oMAP_SHARE_DRIVE = oMode.Replace("PM.MAP_SHARE_DRIVE=", "")
Try ' Try
MAP_SHARE_DRIVE = oMAP_SHARE_DRIVE ' MAP_SHARE_DRIVE = oMAP_SHARE_DRIVE
Catch ex As Exception ' Catch ex As Exception
oMAP_SHARE_DRIVE = String.Empty ' oMAP_SHARE_DRIVE = String.Empty
End Try ' End Try
ElseIf oMode.StartsWith("PM.MAP_BLACKLIST") Then 'ElseIf oMode.StartsWith("PM.MAP_BLACKLIST") Then
Dim oMAP_BLACKLIST = oMode.Replace("PM.MAP_BLACKLIST=", "") ' Dim oMAP_BLACKLIST = oMode.Replace("PM.MAP_BLACKLIST=", "")
Try ' Try
MAP_BLACKLIST = oMAP_BLACKLIST ' MAP_BLACKLIST = oMAP_BLACKLIST
Catch ex As Exception ' Catch ex As Exception
MAP_BLACKLIST = String.Empty ' MAP_BLACKLIST = String.Empty
End Try ' End Try
ElseIf oMode.StartsWith("PM.SEARCH1") Then 'ElseIf oMode.StartsWith("PM.SEARCH1") Then
Dim oSearch1 = oMode.Replace("PM.SEARCH1=", "") ' Dim oSearch1 = oMode.Replace("PM.SEARCH1=", "")
Try ' Try
SEARCH1 = oSearch1 ' SEARCH1 = oSearch1
Catch ex As Exception ' Catch ex As Exception
SEARCH1 = "" ' SEARCH1 = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.SEARCH2") Then 'ElseIf oMode.StartsWith("PM.SEARCH2") Then
Dim oSearch2 = oMode.Replace("PM.SEARCH2=", "") ' Dim oSearch2 = oMode.Replace("PM.SEARCH2=", "")
Try ' Try
SEARCH2 = oSearch2 ' SEARCH2 = oSearch2
Catch ex As Exception ' Catch ex As Exception
SEARCH2 = "" ' SEARCH2 = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.TRAFFICLIGHT_ICON") Then 'ElseIf oMode.StartsWith("PM.TRAFFICLIGHT_ICON") Then
Dim oParam = oMode.Replace("PM.TRAFFICLIGHT_ICON=", "") ' Dim oParam = oMode.Replace("PM.TRAFFICLIGHT_ICON=", "")
Try ' Try
TL_ICON = CBool(oParam) ' TL_ICON = CBool(oParam)
Catch ex As Exception ' Catch ex As Exception
TL_ICON = False ' TL_ICON = False
End Try ' End Try
ElseIf oMode.StartsWith("PM.TITLE_NOTIFICATIONS") Then 'ElseIf oMode.StartsWith("PM.TITLE_NOTIFICATIONS") Then
Dim oParam = oMode.Replace("PM.TITLE_NOTIFICATIONS=", "") ' Dim oParam = oMode.Replace("PM.TITLE_NOTIFICATIONS=", "")
Try ' Try
TITLE_NOTIFICATIONS = oParam ' TITLE_NOTIFICATIONS = oParam
Catch ex As Exception ' Catch ex As Exception
TITLE_NOTIFICATIONS = "" ' TITLE_NOTIFICATIONS = ""
End Try ' End Try
ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") And pMode = "Load" Then 'ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") And pMode = "Load" Then
Dim oParam = oMode.Replace("TF.InheritanceMsgAmount=", "") ' Dim oParam = oMode.Replace("TF.InheritanceMsgAmount=", "")
Try ' Try
InheritanceMsgAmount = oParam ' InheritanceMsgAmount = oParam
Catch ex As Exception ' Catch ex As Exception
End Try ' End Try
ElseIf oMode.StartsWith("TF.InheritanceCalcReset") And pMode = "Load" Then 'ElseIf oMode.StartsWith("TF.InheritanceCalcReset") And pMode = "Load" Then
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("Inheritance_Counts werden auf 0 zurückgesetzt bzw gelöscht") ' LOGGER.Info("Inheritance_Counts werden auf 0 zurückgesetzt bzw gelöscht")
Dim oDELETESQL = "DELETE FROM TBDD_USER_KEY_VALUE_PAIR ' 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_%'" ' WHERE FK_USER_ID = " & USER_ID & " And [FK_MODULE_ID] = '" & USER_MODULE_ID & "' AND KEY_NAME LIKE 'INHERITANCE_CONFIRM_%'"
DatabaseECM.ExecuteNonQuery(oDELETESQL) ' DatabaseECM.ExecuteNonQuery(oDELETESQL)
UserInheritance_ConfirmationByColumn = Nothing ' UserInheritance_ConfirmationByColumn = Nothing
CONFIG.Save() ' CONFIG.Save()
End If ' End If
Catch ex As Exception ' Catch ex As Exception
End Try ' End Try
ElseIf oMode.StartsWith("PM.START_CW") Then 'ElseIf oMode.StartsWith("PM.START_CW") Then
Dim oAfterReplace = oMode.Replace("PM.START_CW=", "") ' Dim oAfterReplace = oMode.Replace("PM.START_CW=", "")
Try ' Try
START_CW = True ' START_CW = True
LOGGER.Debug("PM.START_CW = True") ' LOGGER.Debug("PM.START_CW = True")
Dim oSplit As String() = oAfterReplace.Split("~") ' Dim oSplit As String() = oAfterReplace.Split("~")
START_CW_CAPTION = oSplit(0) ' START_CW_CAPTION = oSplit(0)
Try ' Try
START_CW_LOC_VARIANT = oSplit(1) ' START_CW_LOC_VARIANT = oSplit(1)
Catch ex As Exception ' Catch ex As Exception
START_CW_LOC_VARIANT = "-1" ' START_CW_LOC_VARIANT = "-1"
LOGGER.Warn($"Could not read START_CW_LOCVARIANT : {ex.Message}") ' LOGGER.Warn($"Could not read START_CW_LOCVARIANT : {ex.Message}")
End Try ' End Try
Catch ex As Exception ' Catch ex As Exception
LOGGER.Warn($"Could not read START_CW Param: {ex.Message}") ' LOGGER.Warn($"Could not read START_CW Param: {ex.Message}")
START_CW = False ' START_CW = False
End Try ' End Try
ElseIf oMode.StartsWith("PM.RibbonPageCustTitle") Then 'ElseIf oMode.StartsWith("PM.RibbonPageCustTitle") Then
Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustTitle=", "") ' Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustTitle=", "")
RibbonPageCustTitle = oAfterReplace ' RibbonPageCustTitle = oAfterReplace
ElseIf oMode.StartsWith("PM.RibbonPageCustItm1") Then 'ElseIf oMode.StartsWith("PM.RibbonPageCustItm1") Then
Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustItm1=", "") ' Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustItm1=", "")
RibbonPageCustItm1 = oAfterReplace ' RibbonPageCustItm1 = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2FolderCaption") Then 'ElseIf oMode.StartsWith("PM.ButtonExport2FolderCaption") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2FolderCaption=", "") ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2FolderCaption=", "")
ButtonExport2Folder_Caption = oAfterReplace ' ButtonExport2Folder_Caption = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2Folder_Mode") Then 'ElseIf oMode.StartsWith("PM.ButtonExport2Folder_Mode") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_Mode=", "") ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_Mode=", "")
ButtonExport2Folder_Mode = oAfterReplace ' ButtonExport2Folder_Mode = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2Folder_RootFolder") Then 'ElseIf oMode.StartsWith("PM.ButtonExport2Folder_RootFolder") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_RootFolder=", "") ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_RootFolder=", "")
ButtonExport2Folder_RootFolder = oAfterReplace ' ButtonExport2Folder_RootFolder = oAfterReplace
ElseIf oMode = "MAINFORM_ALLOW_LOGFILES" Then 'ElseIf oMode = "MAINFORM_ALLOW_LOGFILES" Then
MAINFORM_CREATE_LOG_FILES = True ' MAINFORM_CREATE_LOG_FILES = True
Else 'Else
LOGGER.Info($"Wrong oMode: {oMode}") ' LOGGER.Info($"Wrong oMode: {oMode}")
End If 'End If
Next Next
'If IDB_ACTIVE Then 'If IDB_ACTIVE Then
' If CONNECTION_STRING_APP_SERVER <> String.Empty Then ' If CONNECTION_STRING_APP_SERVER <> String.Empty Then
@@ -312,4 +313,267 @@ Public Class ClassParamRefresh
End If End If
oStopwatch.Done() oStopwatch.Done()
End Sub End Sub
Private Shared Sub ProcessWorkingModeParameter(oMode As String, pMode As String)
LOGGER.Debug($"Processing Working Mode Parameter: {oMode}")
Select Case True
Case oMode = "PM.FORCE_LAYOUT_OVERVIEW"
SetBooleanParameter(FORCE_LAYOUT_OVERVIEW, True, "FORCE_LAYOUT_OVERVIEW")
Case oMode = "PM.NO_MASS_VALIDATOR"
SetBooleanParameter(SHOW_MASS_VALIDATOR, False, "SHOW_MASS_VALIDATOR", LogLevel.Info)
Case oMode = "PM.NO_CHARTS"
SetBooleanParameter(SHOW_CHARTS, False, "SHOW_CHARTS")
Case oMode = "PM.DEBUG_LOG"
DEBUG = True
LOGCONFIG.Debug = True
LOGGER.Debug($"DEBUG_LOG = True")
Case oMode = "PM.LOG_HOTSPOTS"
SetBooleanParameter(LOG_HOTSPOTS, True, "LOG_HOTSPOTS")
Case oMode.StartsWith("OPERATION_MODE_FS")
OPERATION_MODE_FS = ExtractParameterValue(oMode, "OPERATION_MODE_FS")
If OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM Then
IDB_USES_WMFILESTORE = True
End If
LOGGER.Info($"OPERATION_MODE_FS = {OPERATION_MODE_FS}")
Case oMode = "PM.IDBWITHWMFS"
SetBooleanParameter(IDB_USES_WMFILESTORE, True, "IDB_USES_WMFILESTORE", LogLevel.Info)
Case oMode = "PM.NO_BASICCONF"
SetBooleanParameter(BASIC_CONF_VISIBLE, False, "BASIC_CONF_VISIBLE", LogLevel.Info)
Case oMode = "PM.SYS_LOCKED_MAINTENANCE"
SetBooleanParameter(SYS_LOCKED_MAINTENANCE, True, "SYS_LOCKED_MAINTENANCE")
Case oMode.StartsWith("PM.IDB_CONID!")
ProcessIDBConnection(oMode)
Case oMode = "PM.EXCEL_OVERVIEW"
SetBooleanParameter(EXCEL_OVERVIEW, True, "EXCEL_OVERVIEW", LogLevel.Info)
Case oMode = "PM.MONITORING"
SetBooleanParameter(MONITORING_ACTIVE, True, "MONITORING_ACTIVE")
Case oMode = "PM.GHOSTMODE"
SetBooleanParameter(GHOSTMODE_ACTIVE, True, "GHOSTMODE_ACTIVE", LogLevel.Info)
Case oMode.StartsWith("PM.COLORSCHEME")
RIBBON_COLOR_SCHEME = ExtractParameterValue(oMode, "PM.COLORSCHEME").ToUpper
LOGGER.Debug($"RIBBON_COLOR_SCHEME = {RIBBON_COLOR_SCHEME}")
Case oMode.StartsWith("PM.NO_DETAIL_PROFILES")
SetBooleanParameter(NO_DETAIL_PROFILES, True, "NO_DETAIL_PROFILES")
Case oMode = "PM.NO_POPUP"
SetBooleanParameter(POPUP_REMINDER_ACTIVE, False, "POPUP_REMINDER_ACTIVE")
Case oMode.StartsWith("PM.POPUP_TIMELAPS_OVERRIDE")
ProcessPopupTimeLapse(oMode)
Case oMode.StartsWith("PM.CONV_IDENTIFICATION")
CONV_IDENTIFICATION = ExtractParameterValue(oMode, "PM.CONV_IDENTIFICATION")
LOGGER.Debug($"CONV_IDENTIFICATION = {CONV_IDENTIFICATION}")
Case oMode.StartsWith("PM.INACTIVITY_DURATION")
ProcessIntegerParameter(oMode, "PM.INACTIVITY_DURATION", INACTIVITY_DURATION, "InactivityDuration")
Case oMode.StartsWith("PM.COL_LAST_EDITED")
LAST_EDITED_COLUMN = ExtractParameterValue(oMode, "PM.COL_LAST_EDITED")
LOGGER.Debug($"LAST_EDITED_COLUMN = {LAST_EDITED_COLUMN}")
Case oMode.StartsWith("PM.COL_LAST_ADDED")
LAST_ADDED_COLUMN = ExtractParameterValue(oMode, "PM.COL_LAST_ADDED")
LOGGER.Debug($"LAST_ADDED_COLUMN = {LAST_ADDED_COLUMN}")
Case oMode.StartsWith("PM.MON_COL_CHANGED_WHEN")
MON_EDITED_COLUMN = ExtractParameterValue(oMode, "PM.MON_COL_CHANGED_WHEN")
LOGGER.Debug($"MON_EDITED_COLUMN = {MON_EDITED_COLUMN}")
Case oMode.StartsWith("PM.MON_COL_ADDED_WHEN")
MON_ADDED_COLUMN = ExtractParameterValue(oMode, "PM.MON_COL_ADDED_WHEN")
LOGGER.Debug($"MON_ADDED_COLUMN = {MON_ADDED_COLUMN}")
Case oMode.StartsWith("PM.USE_APPSERVER")
ProcessBooleanParameter(oMode, "PM.USE_APPSERVER", USE_APPSERVER, "USE_APPSERVER")
Case oMode.StartsWith("PM.COPYWM2TEMP")
ProcessBooleanParameter(oMode, "PM.COPYWM2TEMP", COPY_WMFILE_2TEMP, "COPY_WMFILE_2TEMP")
Case oMode.StartsWith("PM.MAP_SHARE_DRIVE")
MAP_SHARE_DRIVE = ExtractParameterValue(oMode, "PM.MAP_SHARE_DRIVE")
LOGGER.Debug($"MAP_SHARE_DRIVE = {MAP_SHARE_DRIVE}")
Case oMode.StartsWith("PM.MAP_BLACKLIST")
MAP_BLACKLIST = ExtractParameterValue(oMode, "PM.MAP_BLACKLIST")
LOGGER.Debug($"MAP_BLACKLIST = {MAP_BLACKLIST}")
Case oMode.StartsWith("PM.SEARCH1")
SEARCH1 = ExtractParameterValue(oMode, "PM.SEARCH1")
LOGGER.Debug($"SEARCH1 = {SEARCH1}")
Case oMode.StartsWith("PM.SEARCH2")
SEARCH2 = ExtractParameterValue(oMode, "PM.SEARCH2")
LOGGER.Debug($"SEARCH2 = {SEARCH2}")
Case oMode.StartsWith("PM.TRAFFICLIGHT_ICON")
ProcessBooleanParameter(oMode, "PM.TRAFFICLIGHT_ICON", TL_ICON, "TL_ICON")
Case oMode.StartsWith("PM.TITLE_NOTIFICATIONS")
TITLE_NOTIFICATIONS = ExtractParameterValue(oMode, "PM.TITLE_NOTIFICATIONS")
LOGGER.Debug($"TITLE_NOTIFICATIONS = {TITLE_NOTIFICATIONS}")
Case oMode.StartsWith("TF.InheritanceMsgAmount") AndAlso pMode = "Load"
InheritanceMsgAmount = ExtractParameterValue(oMode, "TF.InheritanceMsgAmount")
LOGGER.Debug($"InheritanceMsgAmount = {InheritanceMsgAmount}")
Case oMode.StartsWith("TF.InheritanceCalcReset") AndAlso pMode = "Load"
ProcessInheritanceReset(oMode)
Case oMode.StartsWith("PM.START_CW")
ProcessStartCW(oMode)
Case oMode.StartsWith("PM.RibbonPageCustTitle")
RibbonPageCustTitle = ExtractParameterValue(oMode, "PM.RibbonPageCustTitle")
LOGGER.Debug($"RibbonPageCustTitle = {RibbonPageCustTitle}")
Case oMode.StartsWith("PM.RibbonPageCustItm1")
RibbonPageCustItm1 = ExtractParameterValue(oMode, "PM.RibbonPageCustItm1")
LOGGER.Debug($"RibbonPageCustItm1 = {RibbonPageCustItm1}")
Case oMode.StartsWith("PM.ButtonExport2FolderCaption")
ButtonExport2Folder_Caption = ExtractParameterValue(oMode, "PM.ButtonExport2FolderCaption")
LOGGER.Debug($"ButtonExport2FolderCaption = {ButtonExport2Folder_Caption}")
Case oMode.StartsWith("PM.ButtonExport2Folder_Mode")
ButtonExport2Folder_Mode = ExtractParameterValue(oMode, "PM.ButtonExport2Folder_Mode")
LOGGER.Debug($"ButtonExport2Folder_Mode = {ButtonExport2Folder_Mode}")
Case oMode.StartsWith("PM.ButtonExport2Folder_RootFolder")
ButtonExport2Folder_RootFolder = ExtractParameterValue(oMode, "PM.ButtonExport2Folder_RootFolder")
LOGGER.Debug($"ButtonExport2Folder_RootFolder = {ButtonExport2Folder_RootFolder}")
Case oMode = "MAINFORM_ALLOW_LOGFILES"
SetBooleanParameter(MAINFORM_CREATE_LOG_FILES, True, "MAINFORM_CREATE_LOG_FILES")
Case Else
LOGGER.Info($"Unknown Working Mode Parameter: {oMode}")
End Select
End Sub
Private Shared Function ExtractParameterValue(parameterString As String, prefix As String) As String
Return parameterString.Replace($"{prefix}=", "")
End Function
Private Shared Sub SetBooleanParameter(ByRef target As Boolean, value As Boolean, paramName As String, Optional logLevel As LogLevel = LogLevel.Debug)
target = value
LogParameterValue(paramName, value.ToString(), logLevel)
End Sub
Private Shared Sub ProcessBooleanParameter(oMode As String, prefix As String, ByRef target As Boolean, paramName As String)
Dim value = ExtractParameterValue(oMode, prefix)
Try
target = CBool(value)
LOGGER.Debug($"{paramName} = {target}")
Catch ex As Exception
target = False
LOGGER.Warn($"Failed to parse {paramName}: {ex.Message}")
End Try
End Sub
Private Shared Sub ProcessIntegerParameter(oMode As String, prefix As String, ByRef target As Integer, paramName As String)
Dim value = ExtractParameterValue(oMode, prefix)
Try
target = CInt(value)
LOGGER.Debug($"{paramName} = {target}")
Catch ex As Exception
LOGGER.Warn($"Failed to parse {paramName}: {ex.Message}. Setting to 0")
target = 0
End Try
End Sub
Private Shared Sub ProcessIDBConnection(oMode As String)
Dim Database_IDB As MSSQLServer = Nothing
Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "")
Dim oConString = DatabaseFallback.GetConnectionString(CON_ID)
CONNECTION_STRING_IDB = oConString
Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB)
If Database_IDB.DBInitialized = True Then
IDB_ACTIVE = True
LOGGER.Info($"IDB is active - IDB-Connection [{CON_ID}]")
DatabaseFallback.InitializeIDB(Database_IDB)
Else
IDB_ACTIVE = False
LOGGER.Warn($"Failed to initialize IDB with Connection [{CON_ID}]")
End If
If CONNECTION_STRING_IDB <> "" AndAlso Database_IDB.DBInitialized = True Then
IDB_ACTIVE = True
LOGGER.Debug("IDB already initialized and active")
Return
End If
End Sub
Private Shared Sub ProcessPopupTimeLapse(oMode As String)
Dim oTimeLapse = ExtractParameterValue(oMode, "PM.POPUP_TIMELAPS_OVERRIDE")
LOGGER.Info($"POPUP_TIMELAPS_OVERRIDE = {oTimeLapse}")
Try
CONFIG.Config.ReminderTimer = oTimeLapse
Catch ex As Exception
LOGGER.Warn($"Failed to set ReminderTimer: {ex.Message}")
End Try
End Sub
Private Shared Sub ProcessInheritanceReset(oMode As String)
Dim oParam = ExtractParameterValue(oMode, "TF.InheritanceCalcReset")
Try
If CBool(oParam) = True Then
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)
UserInheritance_ConfirmationByColumn = Nothing
CONFIG.Save()
End If
Catch ex As Exception
LOGGER.Warn($"Failed to process InheritanceCalcReset: {ex.Message}")
End Try
End Sub
Private Shared Sub ProcessStartCW(oMode As String)
Dim oAfterReplace = ExtractParameterValue(oMode, "PM.START_CW")
Try
START_CW = True
LOGGER.Debug("PM.START_CW = True")
Dim oSplit As String() = oAfterReplace.Split("~")
START_CW_CAPTION = oSplit(0)
Try
START_CW_LOC_VARIANT = oSplit(1)
LOGGER.Debug($"START_CW_LOC_VARIANT = {START_CW_LOC_VARIANT}")
Catch ex As Exception
START_CW_LOC_VARIANT = "-1"
LOGGER.Warn($"Could not read START_CW_LOC_VARIANT: {ex.Message}")
End Try
Catch ex As Exception
LOGGER.Warn($"Could not read START_CW Param: {ex.Message}")
START_CW = False
End Try
End Sub
Private Shared Sub LogParameterValue(paramName As String, value As String, logLevel As LogLevel)
Select Case logLevel
Case LogLevel.Info
LOGGER.Info($"{paramName} = {value}")
Case Else
LOGGER.Debug($"{paramName} = {value}")
End Select
End Sub
Private Enum LogLevel
Debug
Info
End Enum
End Class End Class

View File

@@ -200,7 +200,10 @@ Public Class RefreshHelper
Private Sub LoadVisibleIndex() Private Sub LoadVisibleIndex()
Try Try
_View.MakeRowVisible(_View.FocusedRowHandle, True) _View.MakeRowVisible(_View.FocusedRowHandle, True)
_View.TopRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _VisibleRowIndex If _View.FocusedRowHandle <> -1 Then
_View.TopRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _VisibleRowIndex
End If
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
End Try End Try

View File

@@ -124,7 +124,7 @@ Public Class ClassWindream_allgemein
Public Function Start_WMCC_andCo() Public Function Start_WMCC_andCo()
Try Try
' 04.10.18: Überprüft, ob der Benutzer Mitglied der SERVER_USER Gruppe ist ' 04.10.18: Überprüft, ob der Benutzer Mitglied der SERVER_USER Gruppe ist
Dim sql = "SELECT T.GUID FROM TBDD_GROUPS_USER T INNER JOIN TBDD_GROUPS T1 on T1.GUID = T.GROUP_ID WHERE T1.NAME = 'SERVER_USER' AND T.USER_ID = " & USER_ID Dim sql = "SELECT T.GUID FROM TBDD_GROUPS_USER T WITH (NOLOCK) INNER JOIN TBDD_GROUPS T1 WITH (NOLOCK) on T1.GUID = T.GROUP_ID WHERE T1.NAME = 'SERVER_USER' AND T.USER_ID = " & USER_ID
Dim userExistsInServerUserGroup = DatabaseFallback.GetScalarValueECM(sql) ', CONNECTION_STRING_ECM, "StartWMCC-userExistsInServerUserGroup") Dim userExistsInServerUserGroup = DatabaseFallback.GetScalarValueECM(sql) ', CONNECTION_STRING_ECM, "StartWMCC-userExistsInServerUserGroup")
If WMSESSION_STARTSTOP_STARTUP = True Then If WMSESSION_STARTSTOP_STARTUP = True Then

View File

@@ -61,8 +61,6 @@ Partial Public Class DD_DMSLiteDataSet
Private tableVWPM_CHART_INVOICE_MONITOR_SERIES As VWPM_CHART_INVOICE_MONITOR_SERIESDataTable Private tableVWPM_CHART_INVOICE_MONITOR_SERIES As VWPM_CHART_INVOICE_MONITOR_SERIESDataTable
Private tableVWPM_CHART_TOP5 As VWPM_CHART_TOP5DataTable
Private tableTBPM_PROFILE As TBPM_PROFILEDataTable Private tableTBPM_PROFILE As TBPM_PROFILEDataTable
Private tableTBWH_CONNECTION As TBWH_CONNECTIONDataTable Private tableTBWH_CONNECTION As TBWH_CONNECTIONDataTable
@@ -156,9 +154,6 @@ Partial Public Class DD_DMSLiteDataSet
If (Not (ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")) Is Nothing) Then If (Not (ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")) Is Nothing) Then
MyBase.Tables.Add(New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable(ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES"))) MyBase.Tables.Add(New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable(ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")))
End If End If
If (Not (ds.Tables("VWPM_CHART_TOP5")) Is Nothing) Then
MyBase.Tables.Add(New VWPM_CHART_TOP5DataTable(ds.Tables("VWPM_CHART_TOP5")))
End If
If (Not (ds.Tables("TBPM_PROFILE")) Is Nothing) Then If (Not (ds.Tables("TBPM_PROFILE")) Is Nothing) Then
MyBase.Tables.Add(New TBPM_PROFILEDataTable(ds.Tables("TBPM_PROFILE"))) MyBase.Tables.Add(New TBPM_PROFILEDataTable(ds.Tables("TBPM_PROFILE")))
End If End If
@@ -362,16 +357,6 @@ Partial Public Class DD_DMSLiteDataSet
End Get End Get
End Property End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Browsable(false), _
Global.System.ComponentModel.DesignerSerializationVisibility(Global.System.ComponentModel.DesignerSerializationVisibility.Content)> _
Public ReadOnly Property VWPM_CHART_TOP5() As VWPM_CHART_TOP5DataTable
Get
Return Me.tableVWPM_CHART_TOP5
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Browsable(false), _ Global.System.ComponentModel.Browsable(false), _
@@ -513,9 +498,6 @@ Partial Public Class DD_DMSLiteDataSet
If (Not (ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")) Is Nothing) Then If (Not (ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")) Is Nothing) Then
MyBase.Tables.Add(New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable(ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES"))) MyBase.Tables.Add(New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable(ds.Tables("VWPM_CHART_INVOICE_MONITOR_SERIES")))
End If End If
If (Not (ds.Tables("VWPM_CHART_TOP5")) Is Nothing) Then
MyBase.Tables.Add(New VWPM_CHART_TOP5DataTable(ds.Tables("VWPM_CHART_TOP5")))
End If
If (Not (ds.Tables("TBPM_PROFILE")) Is Nothing) Then If (Not (ds.Tables("TBPM_PROFILE")) Is Nothing) Then
MyBase.Tables.Add(New TBPM_PROFILEDataTable(ds.Tables("TBPM_PROFILE"))) MyBase.Tables.Add(New TBPM_PROFILEDataTable(ds.Tables("TBPM_PROFILE")))
End If End If
@@ -662,12 +644,6 @@ Partial Public Class DD_DMSLiteDataSet
Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES.InitVars Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES.InitVars
End If End If
End If End If
Me.tableVWPM_CHART_TOP5 = CType(MyBase.Tables("VWPM_CHART_TOP5"),VWPM_CHART_TOP5DataTable)
If (initTable = true) Then
If (Not (Me.tableVWPM_CHART_TOP5) Is Nothing) Then
Me.tableVWPM_CHART_TOP5.InitVars
End If
End If
Me.tableTBPM_PROFILE = CType(MyBase.Tables("TBPM_PROFILE"),TBPM_PROFILEDataTable) Me.tableTBPM_PROFILE = CType(MyBase.Tables("TBPM_PROFILE"),TBPM_PROFILEDataTable)
If (initTable = true) Then If (initTable = true) Then
If (Not (Me.tableTBPM_PROFILE) Is Nothing) Then If (Not (Me.tableTBPM_PROFILE) Is Nothing) Then
@@ -729,8 +705,6 @@ Partial Public Class DD_DMSLiteDataSet
MyBase.Tables.Add(Me.tableVWPM_CHART_INVOICE_MONITOR) MyBase.Tables.Add(Me.tableVWPM_CHART_INVOICE_MONITOR)
Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES = New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable() Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES = New VWPM_CHART_INVOICE_MONITOR_SERIESDataTable()
MyBase.Tables.Add(Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES) MyBase.Tables.Add(Me.tableVWPM_CHART_INVOICE_MONITOR_SERIES)
Me.tableVWPM_CHART_TOP5 = New VWPM_CHART_TOP5DataTable()
MyBase.Tables.Add(Me.tableVWPM_CHART_TOP5)
Me.tableTBPM_PROFILE = New TBPM_PROFILEDataTable() Me.tableTBPM_PROFILE = New TBPM_PROFILEDataTable()
MyBase.Tables.Add(Me.tableTBPM_PROFILE) MyBase.Tables.Add(Me.tableTBPM_PROFILE)
Me.tableTBWH_CONNECTION = New TBWH_CONNECTIONDataTable() Me.tableTBWH_CONNECTION = New TBWH_CONNECTIONDataTable()
@@ -851,12 +825,6 @@ Partial Public Class DD_DMSLiteDataSet
Return false Return false
End Function End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Function ShouldSerializeVWPM_CHART_TOP5() As Boolean
Return false
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Function ShouldSerializeTBPM_PROFILE() As Boolean Private Function ShouldSerializeTBPM_PROFILE() As Boolean
@@ -981,9 +949,6 @@ Partial Public Class DD_DMSLiteDataSet
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _ <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Delegate Sub VWPM_CHART_INVOICE_MONITOR_SERIESRowChangeEventHandler(ByVal sender As Object, ByVal e As VWPM_CHART_INVOICE_MONITOR_SERIESRowChangeEvent) Public Delegate Sub VWPM_CHART_INVOICE_MONITOR_SERIESRowChangeEventHandler(ByVal sender As Object, ByVal e As VWPM_CHART_INVOICE_MONITOR_SERIESRowChangeEvent)
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Delegate Sub VWPM_CHART_TOP5RowChangeEventHandler(ByVal sender As Object, ByVal e As VWPM_CHART_TOP5RowChangeEvent)
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _ <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Delegate Sub TBPM_PROFILERowChangeEventHandler(ByVal sender As Object, ByVal e As TBPM_PROFILERowChangeEvent) Public Delegate Sub TBPM_PROFILERowChangeEventHandler(ByVal sender As Object, ByVal e As TBPM_PROFILERowChangeEvent)
@@ -8818,300 +8783,6 @@ Partial Public Class DD_DMSLiteDataSet
End Function End Function
End Class End Class
'''<summary>
'''Represents the strongly named DataTable class.
'''</summary>
<Global.System.Serializable(), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")> _
Partial Public Class VWPM_CHART_TOP5DataTable
Inherits Global.System.Data.TypedTableBase(Of VWPM_CHART_TOP5Row)
Private columnKRED_NAME As Global.System.Data.DataColumn
Private columnANZ_BELEG As Global.System.Data.DataColumn
Private columnNetto As Global.System.Data.DataColumn
Private columnSkonto As Global.System.Data.DataColumn
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub New()
MyBase.New
Me.TableName = "VWPM_CHART_TOP5"
Me.BeginInit
Me.InitClass
Me.EndInit
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Friend Sub New(ByVal table As Global.System.Data.DataTable)
MyBase.New
Me.TableName = table.TableName
If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then
Me.CaseSensitive = table.CaseSensitive
End If
If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then
Me.Locale = table.Locale
End If
If (table.Namespace <> table.DataSet.Namespace) Then
Me.Namespace = table.Namespace
End If
Me.Prefix = table.Prefix
Me.MinimumCapacity = table.MinimumCapacity
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context)
Me.InitVars
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property KRED_NAMEColumn() As Global.System.Data.DataColumn
Get
Return Me.columnKRED_NAME
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property ANZ_BELEGColumn() As Global.System.Data.DataColumn
Get
Return Me.columnANZ_BELEG
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property NettoColumn() As Global.System.Data.DataColumn
Get
Return Me.columnNetto
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property SkontoColumn() As Global.System.Data.DataColumn
Get
Return Me.columnSkonto
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Browsable(false)> _
Public ReadOnly Property Count() As Integer
Get
Return Me.Rows.Count
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Default ReadOnly Property Item(ByVal index As Integer) As VWPM_CHART_TOP5Row
Get
Return CType(Me.Rows(index),VWPM_CHART_TOP5Row)
End Get
End Property
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Event VWPM_CHART_TOP5RowChanging As VWPM_CHART_TOP5RowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Event VWPM_CHART_TOP5RowChanged As VWPM_CHART_TOP5RowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Event VWPM_CHART_TOP5RowDeleting As VWPM_CHART_TOP5RowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Event VWPM_CHART_TOP5RowDeleted As VWPM_CHART_TOP5RowChangeEventHandler
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Overloads Sub AddVWPM_CHART_TOP5Row(ByVal row As VWPM_CHART_TOP5Row)
Me.Rows.Add(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Overloads Function AddVWPM_CHART_TOP5Row(ByVal KRED_NAME As String, ByVal ANZ_BELEG As Short, ByVal Netto As Decimal, ByVal Skonto As Decimal) As VWPM_CHART_TOP5Row
Dim rowVWPM_CHART_TOP5Row As VWPM_CHART_TOP5Row = CType(Me.NewRow,VWPM_CHART_TOP5Row)
Dim columnValuesArray() As Object = New Object() {KRED_NAME, ANZ_BELEG, Netto, Skonto}
rowVWPM_CHART_TOP5Row.ItemArray = columnValuesArray
Me.Rows.Add(rowVWPM_CHART_TOP5Row)
Return rowVWPM_CHART_TOP5Row
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Overrides Function Clone() As Global.System.Data.DataTable
Dim cln As VWPM_CHART_TOP5DataTable = CType(MyBase.Clone,VWPM_CHART_TOP5DataTable)
cln.InitVars
Return cln
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Function CreateInstance() As Global.System.Data.DataTable
Return New VWPM_CHART_TOP5DataTable()
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Friend Sub InitVars()
Me.columnKRED_NAME = MyBase.Columns("KRED_NAME")
Me.columnANZ_BELEG = MyBase.Columns("ANZ_BELEG")
Me.columnNetto = MyBase.Columns("Netto")
Me.columnSkonto = MyBase.Columns("Skonto")
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Sub InitClass()
Me.columnKRED_NAME = New Global.System.Data.DataColumn("KRED_NAME", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnKRED_NAME)
Me.columnANZ_BELEG = New Global.System.Data.DataColumn("ANZ_BELEG", GetType(Short), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnANZ_BELEG)
Me.columnNetto = New Global.System.Data.DataColumn("Netto", GetType(Decimal), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnNetto)
Me.columnSkonto = New Global.System.Data.DataColumn("Skonto", GetType(Decimal), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnSkonto)
Me.columnKRED_NAME.AllowDBNull = false
Me.columnKRED_NAME.MaxLength = 250
Me.columnANZ_BELEG.AllowDBNull = false
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Function NewVWPM_CHART_TOP5Row() As VWPM_CHART_TOP5Row
Return CType(Me.NewRow,VWPM_CHART_TOP5Row)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Function NewRowFromBuilder(ByVal builder As Global.System.Data.DataRowBuilder) As Global.System.Data.DataRow
Return New VWPM_CHART_TOP5Row(builder)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Function GetRowType() As Global.System.Type
Return GetType(VWPM_CHART_TOP5Row)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Sub OnRowChanged(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanged(e)
If (Not (Me.VWPM_CHART_TOP5RowChangedEvent) Is Nothing) Then
RaiseEvent VWPM_CHART_TOP5RowChanged(Me, New VWPM_CHART_TOP5RowChangeEvent(CType(e.Row,VWPM_CHART_TOP5Row), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Sub OnRowChanging(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanging(e)
If (Not (Me.VWPM_CHART_TOP5RowChangingEvent) Is Nothing) Then
RaiseEvent VWPM_CHART_TOP5RowChanging(Me, New VWPM_CHART_TOP5RowChangeEvent(CType(e.Row,VWPM_CHART_TOP5Row), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Sub OnRowDeleted(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleted(e)
If (Not (Me.VWPM_CHART_TOP5RowDeletedEvent) Is Nothing) Then
RaiseEvent VWPM_CHART_TOP5RowDeleted(Me, New VWPM_CHART_TOP5RowChangeEvent(CType(e.Row,VWPM_CHART_TOP5Row), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Overrides Sub OnRowDeleting(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleting(e)
If (Not (Me.VWPM_CHART_TOP5RowDeletingEvent) Is Nothing) Then
RaiseEvent VWPM_CHART_TOP5RowDeleting(Me, New VWPM_CHART_TOP5RowChangeEvent(CType(e.Row,VWPM_CHART_TOP5Row), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub RemoveVWPM_CHART_TOP5Row(ByVal row As VWPM_CHART_TOP5Row)
Me.Rows.Remove(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Shared Function GetTypedTableSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType
Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType()
Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence()
Dim ds As DD_DMSLiteDataSet = New DD_DMSLiteDataSet()
Dim any1 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any1.Namespace = "http://www.w3.org/2001/XMLSchema"
any1.MinOccurs = New Decimal(0)
any1.MaxOccurs = Decimal.MaxValue
any1.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any1)
Dim any2 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"
any2.MinOccurs = New Decimal(1)
any2.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any2)
Dim attribute1 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute1.Name = "namespace"
attribute1.FixedValue = ds.Namespace
type.Attributes.Add(attribute1)
Dim attribute2 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute2.Name = "tableTypeName"
attribute2.FixedValue = "VWPM_CHART_TOP5DataTable"
type.Attributes.Add(attribute2)
type.Particle = sequence
Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable
If xs.Contains(dsSchema.TargetNamespace) Then
Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Try
Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing
dsSchema.Write(s1)
Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator
Do While schemas.MoveNext
schema = CType(schemas.Current,Global.System.Xml.Schema.XmlSchema)
s2.SetLength(0)
schema.Write(s2)
If (s1.Length = s2.Length) Then
s1.Position = 0
s2.Position = 0
Do While ((s1.Position <> s1.Length) _
AndAlso (s1.ReadByte = s2.ReadByte))
Loop
If (s1.Position = s1.Length) Then
Return type
End If
End If
Loop
Finally
If (Not (s1) Is Nothing) Then
s1.Close
End If
If (Not (s2) Is Nothing) Then
s2.Close
End If
End Try
End If
xs.Add(dsSchema)
Return type
End Function
End Class
'''<summary> '''<summary>
'''Represents the strongly named DataTable class. '''Represents the strongly named DataTable class.
'''</summary> '''</summary>
@@ -14890,98 +14561,6 @@ Partial Public Class DD_DMSLiteDataSet
End Property End Property
End Class End Class
'''<summary>
'''Represents strongly named DataRow class.
'''</summary>
Partial Public Class VWPM_CHART_TOP5Row
Inherits Global.System.Data.DataRow
Private tableVWPM_CHART_TOP5 As VWPM_CHART_TOP5DataTable
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Friend Sub New(ByVal rb As Global.System.Data.DataRowBuilder)
MyBase.New(rb)
Me.tableVWPM_CHART_TOP5 = CType(Me.Table,VWPM_CHART_TOP5DataTable)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property KRED_NAME() As String
Get
Return CType(Me(Me.tableVWPM_CHART_TOP5.KRED_NAMEColumn),String)
End Get
Set
Me(Me.tableVWPM_CHART_TOP5.KRED_NAMEColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property ANZ_BELEG() As Short
Get
Return CType(Me(Me.tableVWPM_CHART_TOP5.ANZ_BELEGColumn),Short)
End Get
Set
Me(Me.tableVWPM_CHART_TOP5.ANZ_BELEGColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property Netto() As Decimal
Get
Try
Return CType(Me(Me.tableVWPM_CHART_TOP5.NettoColumn),Decimal)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("Der Wert für Spalte Netto in Tabelle VWPM_CHART_TOP5 ist DBNull.", e)
End Try
End Get
Set
Me(Me.tableVWPM_CHART_TOP5.NettoColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property Skonto() As Decimal
Get
Try
Return CType(Me(Me.tableVWPM_CHART_TOP5.SkontoColumn),Decimal)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("Der Wert für Spalte Skonto in Tabelle VWPM_CHART_TOP5 ist DBNull.", e)
End Try
End Get
Set
Me(Me.tableVWPM_CHART_TOP5.SkontoColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Function IsNettoNull() As Boolean
Return Me.IsNull(Me.tableVWPM_CHART_TOP5.NettoColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub SetNettoNull()
Me(Me.tableVWPM_CHART_TOP5.NettoColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Function IsSkontoNull() As Boolean
Return Me.IsNull(Me.tableVWPM_CHART_TOP5.SkontoColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub SetSkontoNull()
Me(Me.tableVWPM_CHART_TOP5.SkontoColumn) = Global.System.Convert.DBNull
End Sub
End Class
'''<summary> '''<summary>
'''Represents strongly named DataRow class. '''Represents strongly named DataRow class.
'''</summary> '''</summary>
@@ -16363,42 +15942,6 @@ Partial Public Class DD_DMSLiteDataSet
End Property End Property
End Class End Class
'''<summary>
'''Row event argument class
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Class VWPM_CHART_TOP5RowChangeEvent
Inherits Global.System.EventArgs
Private eventRow As VWPM_CHART_TOP5Row
Private eventAction As Global.System.Data.DataRowAction
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub New(ByVal row As VWPM_CHART_TOP5Row, ByVal action As Global.System.Data.DataRowAction)
MyBase.New
Me.eventRow = row
Me.eventAction = action
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property Row() As VWPM_CHART_TOP5Row
Get
Return Me.eventRow
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public ReadOnly Property Action() As Global.System.Data.DataRowAction
Get
Return Me.eventAction
End Get
End Property
End Class
'''<summary> '''<summary>
'''Row event argument class '''Row event argument class
'''</summary> '''</summary>
@@ -24007,16 +23550,19 @@ Namespace DD_DMSLiteDataSetTableAdapters
Me._commandCollection(0) = New Global.System.Data.SqlClient.SqlCommand() Me._commandCollection(0) = New Global.System.Data.SqlClient.SqlCommand()
Me._commandCollection(0).Connection = Me.Connection Me._commandCollection(0).Connection = Me.Connection
Me._commandCollection(0).CommandText = "SELECT Title, Anzahl, NettoSumme, SEQ"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM VWPM_CHART_INVOICE_"& _ Me._commandCollection(0).CommandText = "SELECT Title, Anzahl, NettoSumme, SEQ"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM VWPM_CHART_INVOICE_"& _
"MONITOR_SERIES"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"ORDER BY SEQ" "MONITOR_SERIES"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (COCKPIT_CHART_ID = @COCKPIT_CHART_ID)"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"ORDER BY SE"& _
"Q"
Me._commandCollection(0).CommandType = Global.System.Data.CommandType.Text Me._commandCollection(0).CommandType = Global.System.Data.CommandType.Text
Me._commandCollection(0).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@COCKPIT_CHART_ID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "COCKPIT_CHART_ID", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
End Sub End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _ Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _
Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.Fill, true)> _ Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.Fill, true)> _
Public Overloads Overridable Function Fill(ByVal dataTable As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable) As Integer Public Overloads Overridable Function Fill(ByVal dataTable As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable, ByVal COCKPIT_CHART_ID As Integer) As Integer
Me.Adapter.SelectCommand = Me.CommandCollection(0) Me.Adapter.SelectCommand = Me.CommandCollection(0)
Me.Adapter.SelectCommand.Parameters(0).Value = CType(COCKPIT_CHART_ID,Integer)
If (Me.ClearBeforeFill = true) Then If (Me.ClearBeforeFill = true) Then
dataTable.Clear dataTable.Clear
End If End If
@@ -24028,191 +23574,15 @@ Namespace DD_DMSLiteDataSetTableAdapters
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _ Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _
Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.[Select], true)> _ Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.[Select], true)> _
Public Overloads Overridable Function GetData() As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable Public Overloads Overridable Function GetData(ByVal COCKPIT_CHART_ID As Integer) As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable
Me.Adapter.SelectCommand = Me.CommandCollection(0) Me.Adapter.SelectCommand = Me.CommandCollection(0)
Me.Adapter.SelectCommand.Parameters(0).Value = CType(COCKPIT_CHART_ID,Integer)
Dim dataTable As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable = New DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable() Dim dataTable As DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable = New DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIESDataTable()
Me.Adapter.Fill(dataTable) Me.Adapter.Fill(dataTable)
Return dataTable Return dataTable
End Function End Function
End Class End Class
'''<summary>
'''Represents the connection and commands used to retrieve and save data.
'''</summary>
<Global.System.ComponentModel.DesignerCategoryAttribute("code"), _
Global.System.ComponentModel.ToolboxItem(true), _
Global.System.ComponentModel.DataObjectAttribute(true), _
Global.System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner"& _
", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")> _
Partial Public Class VWPM_CHART_TOP5TableAdapter
Inherits Global.System.ComponentModel.Component
Private WithEvents _adapter As Global.System.Data.SqlClient.SqlDataAdapter
Private _connection As Global.System.Data.SqlClient.SqlConnection
Private _transaction As Global.System.Data.SqlClient.SqlTransaction
Private _commandCollection() As Global.System.Data.SqlClient.SqlCommand
Private _clearBeforeFill As Boolean
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub New()
MyBase.New
Me.ClearBeforeFill = true
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected Friend ReadOnly Property Adapter() As Global.System.Data.SqlClient.SqlDataAdapter
Get
If (Me._adapter Is Nothing) Then
Me.InitAdapter
End If
Return Me._adapter
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Friend Property Connection() As Global.System.Data.SqlClient.SqlConnection
Get
If (Me._connection Is Nothing) Then
Me.InitConnection
End If
Return Me._connection
End Get
Set
Me._connection = value
If (Not (Me.Adapter.InsertCommand) Is Nothing) Then
Me.Adapter.InsertCommand.Connection = value
End If
If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then
Me.Adapter.DeleteCommand.Connection = value
End If
If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then
Me.Adapter.UpdateCommand.Connection = value
End If
Dim i As Integer = 0
Do While (i < Me.CommandCollection.Length)
If (Not (Me.CommandCollection(i)) Is Nothing) Then
CType(Me.CommandCollection(i),Global.System.Data.SqlClient.SqlCommand).Connection = value
End If
i = (i + 1)
Loop
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Friend Property Transaction() As Global.System.Data.SqlClient.SqlTransaction
Get
Return Me._transaction
End Get
Set
Me._transaction = value
Dim i As Integer = 0
Do While (i < Me.CommandCollection.Length)
Me.CommandCollection(i).Transaction = Me._transaction
i = (i + 1)
Loop
If ((Not (Me.Adapter) Is Nothing) _
AndAlso (Not (Me.Adapter.DeleteCommand) Is Nothing)) Then
Me.Adapter.DeleteCommand.Transaction = Me._transaction
End If
If ((Not (Me.Adapter) Is Nothing) _
AndAlso (Not (Me.Adapter.InsertCommand) Is Nothing)) Then
Me.Adapter.InsertCommand.Transaction = Me._transaction
End If
If ((Not (Me.Adapter) Is Nothing) _
AndAlso (Not (Me.Adapter.UpdateCommand) Is Nothing)) Then
Me.Adapter.UpdateCommand.Transaction = Me._transaction
End If
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Protected ReadOnly Property CommandCollection() As Global.System.Data.SqlClient.SqlCommand()
Get
If (Me._commandCollection Is Nothing) Then
Me.InitCommandCollection
End If
Return Me._commandCollection
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property ClearBeforeFill() As Boolean
Get
Return Me._clearBeforeFill
End Get
Set
Me._clearBeforeFill = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Sub InitAdapter()
Me._adapter = New Global.System.Data.SqlClient.SqlDataAdapter()
Dim tableMapping As Global.System.Data.Common.DataTableMapping = New Global.System.Data.Common.DataTableMapping()
tableMapping.SourceTable = "Table"
tableMapping.DataSetTable = "VWPM_CHART_TOP5"
tableMapping.ColumnMappings.Add("KRED_NAME", "KRED_NAME")
tableMapping.ColumnMappings.Add("ANZ_BELEG", "ANZ_BELEG")
tableMapping.ColumnMappings.Add("Netto", "Netto")
tableMapping.ColumnMappings.Add("Skonto", "Skonto")
Me._adapter.TableMappings.Add(tableMapping)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Sub InitConnection()
Me._connection = New Global.System.Data.SqlClient.SqlConnection()
Me._connection.ConnectionString = Global.taskFLOW.My.MySettings.Default.ConnectionString
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Private Sub InitCommandCollection()
Me._commandCollection = New Global.System.Data.SqlClient.SqlCommand(0) {}
Me._commandCollection(0) = New Global.System.Data.SqlClient.SqlCommand()
Me._commandCollection(0).Connection = Me.Connection
Me._commandCollection(0).CommandText = "SELECT KRED_NAME, ANZ_BELEG, Netto, Skonto"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM VWPM_CHART_TOP"& _
"5"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"ORDER BY Netto DESC"
Me._commandCollection(0).CommandType = Global.System.Data.CommandType.Text
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _
Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.Fill, true)> _
Public Overloads Overridable Function Fill(ByVal dataTable As DD_DMSLiteDataSet.VWPM_CHART_TOP5DataTable) As Integer
Me.Adapter.SelectCommand = Me.CommandCollection(0)
If (Me.ClearBeforeFill = true) Then
dataTable.Clear
End If
Dim returnValue As Integer = Me.Adapter.Fill(dataTable)
Return returnValue
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"), _
Global.System.ComponentModel.DataObjectMethodAttribute(Global.System.ComponentModel.DataObjectMethodType.[Select], true)> _
Public Overloads Overridable Function GetData() As DD_DMSLiteDataSet.VWPM_CHART_TOP5DataTable
Me.Adapter.SelectCommand = Me.CommandCollection(0)
Dim dataTable As DD_DMSLiteDataSet.VWPM_CHART_TOP5DataTable = New DD_DMSLiteDataSet.VWPM_CHART_TOP5DataTable()
Me.Adapter.Fill(dataTable)
Return dataTable
End Function
End Class
'''<summary> '''<summary>
'''Represents the connection and commands used to retrieve and save data. '''Represents the connection and commands used to retrieve and save data.
'''</summary> '''</summary>
@@ -25416,6 +24786,15 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(updatedRows) allChangedRows.AddRange(updatedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then
Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent)
updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows)
If ((Not (updatedRows) Is Nothing) _
AndAlso (0 < updatedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(updatedRows))
allChangedRows.AddRange(updatedRows)
End If
End If
If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then
Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent) Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent)
updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows) updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows)
@@ -25425,15 +24804,6 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(updatedRows) allChangedRows.AddRange(updatedRows)
End If End If
End If End If
If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent)
updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows)
If ((Not (updatedRows) Is Nothing) _
AndAlso (0 < updatedRows.Length)) Then
result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(updatedRows))
allChangedRows.AddRange(updatedRows)
End If
End If
If (Not (Me._tBPM_PROFILE_FILESTableAdapter) Is Nothing) Then If (Not (Me._tBPM_PROFILE_FILESTableAdapter) Is Nothing) Then
Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_PROFILE_FILES.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent) Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_PROFILE_FILES.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent)
updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows) updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows)
@@ -25461,12 +24831,12 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(updatedRows) allChangedRows.AddRange(updatedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent) Dim updatedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.ModifiedCurrent)
updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows) updatedRows = Me.GetRealUpdatedRows(updatedRows, allAddedRows)
If ((Not (updatedRows) Is Nothing) _ If ((Not (updatedRows) Is Nothing) _
AndAlso (0 < updatedRows.Length)) Then AndAlso (0 < updatedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(updatedRows)) result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(updatedRows))
allChangedRows.AddRange(updatedRows) allChangedRows.AddRange(updatedRows)
End If End If
End If End If
@@ -25529,6 +24899,14 @@ Namespace DD_DMSLiteDataSetTableAdapters
allAddedRows.AddRange(addedRows) allAddedRows.AddRange(addedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then
Dim addedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added)
If ((Not (addedRows) Is Nothing) _
AndAlso (0 < addedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(addedRows))
allAddedRows.AddRange(addedRows)
End If
End If
If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then
Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added) Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added)
If ((Not (addedRows) Is Nothing) _ If ((Not (addedRows) Is Nothing) _
@@ -25537,14 +24915,6 @@ Namespace DD_DMSLiteDataSetTableAdapters
allAddedRows.AddRange(addedRows) allAddedRows.AddRange(addedRows)
End If End If
End If End If
If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added)
If ((Not (addedRows) Is Nothing) _
AndAlso (0 < addedRows.Length)) Then
result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(addedRows))
allAddedRows.AddRange(addedRows)
End If
End If
If (Not (Me._tBPM_PROFILE_FILESTableAdapter) Is Nothing) Then If (Not (Me._tBPM_PROFILE_FILESTableAdapter) Is Nothing) Then
Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_PROFILE_FILES.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added) Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_PROFILE_FILES.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added)
If ((Not (addedRows) Is Nothing) _ If ((Not (addedRows) Is Nothing) _
@@ -25569,11 +24939,11 @@ Namespace DD_DMSLiteDataSetTableAdapters
allAddedRows.AddRange(addedRows) allAddedRows.AddRange(addedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim addedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added) Dim addedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Added)
If ((Not (addedRows) Is Nothing) _ If ((Not (addedRows) Is Nothing) _
AndAlso (0 < addedRows.Length)) Then AndAlso (0 < addedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(addedRows)) result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(addedRows))
allAddedRows.AddRange(addedRows) allAddedRows.AddRange(addedRows)
End If End If
End If End If
@@ -25603,11 +24973,11 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(deletedRows) allChangedRows.AddRange(deletedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted) Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted)
If ((Not (deletedRows) Is Nothing) _ If ((Not (deletedRows) Is Nothing) _
AndAlso (0 < deletedRows.Length)) Then AndAlso (0 < deletedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(deletedRows)) result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(deletedRows))
allChangedRows.AddRange(deletedRows) allChangedRows.AddRange(deletedRows)
End If End If
End If End If
@@ -25635,14 +25005,6 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(deletedRows) allChangedRows.AddRange(deletedRows)
End If End If
End If End If
If (Not (Me._tBPM_KONFIGURATIONTableAdapter) Is Nothing) Then
Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBPM_KONFIGURATION.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted)
If ((Not (deletedRows) Is Nothing) _
AndAlso (0 < deletedRows.Length)) Then
result = (result + Me._tBPM_KONFIGURATIONTableAdapter.Update(deletedRows))
allChangedRows.AddRange(deletedRows)
End If
End If
If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then If (Not (Me._tBPM_CONTROL_TABLETableAdapter) Is Nothing) Then
Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted) Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBPM_CONTROL_TABLE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted)
If ((Not (deletedRows) Is Nothing) _ If ((Not (deletedRows) Is Nothing) _
@@ -25651,6 +25013,14 @@ Namespace DD_DMSLiteDataSetTableAdapters
allChangedRows.AddRange(deletedRows) allChangedRows.AddRange(deletedRows)
End If End If
End If End If
If (Not (Me._tBDD_USERTableAdapter) Is Nothing) Then
Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBDD_USER.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted)
If ((Not (deletedRows) Is Nothing) _
AndAlso (0 < deletedRows.Length)) Then
result = (result + Me._tBDD_USERTableAdapter.Update(deletedRows))
allChangedRows.AddRange(deletedRows)
End If
End If
If (Not (Me._tBDD_EMAIL_TEMPLATETableAdapter) Is Nothing) Then If (Not (Me._tBDD_EMAIL_TEMPLATETableAdapter) Is Nothing) Then
Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBDD_EMAIL_TEMPLATE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted) Dim deletedRows() As Global.System.Data.DataRow = dataSet.TBDD_EMAIL_TEMPLATE.Select(Nothing, Nothing, Global.System.Data.DataViewRowState.Deleted)
If ((Not (deletedRows) Is Nothing) _ If ((Not (deletedRows) Is Nothing) _

View File

@@ -29,6 +29,9 @@ Partial Public Class DD_DMSLiteDataSet
End Class End Class
Namespace DD_DMSLiteDataSetTableAdapters Namespace DD_DMSLiteDataSetTableAdapters
Partial Public Class VWPM_CHART_INVOICE_MONITORTableAdapter
End Class
Partial Public Class TBPM_PROFILETableAdapter Partial Public Class TBPM_PROFILETableAdapter
Private Sub TBPM_PROFILETableAdapter_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed Private Sub TBPM_PROFILETableAdapter_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
@@ -41,3 +44,13 @@ Namespace DD_DMSLiteDataSetTableAdapters
Partial Public Class TBPM_PROFILE_INDEXETableAdapter Partial Public Class TBPM_PROFILE_INDEXETableAdapter
End Class End Class
End Namespace End Namespace
Namespace DD_DMSLiteDataSetTableAdapters
Partial Public Class VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter
End Class
End Namespace
Namespace DD_DMSLiteDataSetTableAdapters
Partial Public Class VWPM_CHART_TOP5TableAdapter
End Class
End Namespace

View File

@@ -1801,13 +1801,16 @@ FROM VWPM_CHART_INVOICE_MONITOR</CommandText>
</TableAdapter> </TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter" GeneratorDataComponentClassName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter" Name="VWPM_CHART_INVOICE_MONITOR_SERIES" UserDataComponentName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter"> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter" GeneratorDataComponentClassName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter" Name="VWPM_CHART_INVOICE_MONITOR_SERIES" UserDataComponentName="VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter">
<MainSource> <MainSource>
<DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM_TEST.dbo.VWPM_CHART_INVOICE_MONITOR_SERIES" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill"> <DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.VWPM_CHART_INVOICE_MONITOR_SERIES" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="false" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand> <SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true"> <DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT Title, Anzahl, NettoSumme, SEQ <CommandText>SELECT Title, Anzahl, NettoSumme, SEQ
FROM VWPM_CHART_INVOICE_MONITOR_SERIES FROM VWPM_CHART_INVOICE_MONITOR_SERIES
WHERE (COCKPIT_CHART_ID = @COCKPIT_CHART_ID)
ORDER BY SEQ</CommandText> ORDER BY SEQ</CommandText>
<Parameters /> <Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="COCKPIT_CHART_ID" ColumnName="COCKPIT_CHART_ID" DataSourceName="DD_ECM.dbo.VWPM_CHART_INVOICE_MONITOR_SERIES" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@COCKPIT_CHART_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="COCKPIT_CHART_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand> </DbCommand>
</SelectCommand> </SelectCommand>
</DbSource> </DbSource>
@@ -1820,27 +1823,6 @@ ORDER BY SEQ</CommandText>
</Mappings> </Mappings>
<Sources /> <Sources />
</TableAdapter> </TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="VWPM_CHART_TOP5TableAdapter" GeneratorDataComponentClassName="VWPM_CHART_TOP5TableAdapter" Name="VWPM_CHART_TOP5" UserDataComponentName="VWPM_CHART_TOP5TableAdapter">
<MainSource>
<DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM_TEST.dbo.VWPM_CHART_TOP5" DbObjectType="View" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT KRED_NAME, ANZ_BELEG, Netto, Skonto
FROM VWPM_CHART_TOP5
ORDER BY Netto DESC</CommandText>
<Parameters />
</DbCommand>
</SelectCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="KRED_NAME" DataSetColumn="KRED_NAME" />
<Mapping SourceColumn="ANZ_BELEG" DataSetColumn="ANZ_BELEG" />
<Mapping SourceColumn="Netto" DataSetColumn="Netto" />
<Mapping SourceColumn="Skonto" DataSetColumn="Skonto" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPM_PROFILETableAdapter" GeneratorDataComponentClassName="TBPM_PROFILETableAdapter" Name="TBPM_PROFILE" UserDataComponentName="TBPM_PROFILETableAdapter"> <TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBPM_PROFILETableAdapter" GeneratorDataComponentClassName="TBPM_PROFILETableAdapter" Name="TBPM_PROFILE" UserDataComponentName="TBPM_PROFILETableAdapter">
<MainSource> <MainSource>
<DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBPM_PROFILE" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill"> <DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBPM_PROFILE" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
@@ -2822,7 +2804,7 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="FORMULA_SQL" msprop:Generator_ColumnPropNameInRow="FORMULA_SQL" msprop:Generator_ColumnPropNameInTable="FORMULA_SQLColumn" msprop:Generator_ColumnVarNameInTable="columnFORMULA_SQL" msprop:Generator_UserColumnName="FORMULA_SQL" default=""> <xs:element name="FORMULA_SQL" msprop:Generator_ColumnPropNameInTable="FORMULA_SQLColumn" msprop:Generator_ColumnPropNameInRow="FORMULA_SQL" msprop:Generator_UserColumnName="FORMULA_SQL" msprop:Generator_ColumnVarNameInTable="columnFORMULA_SQL" default="">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:maxLength value="3000" /> <xs:maxLength value="3000" />
@@ -3196,22 +3178,6 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="VWPM_CHART_TOP5" msprop:Generator_RowEvHandlerName="VWPM_CHART_TOP5RowChangeEventHandler" msprop:Generator_RowDeletedName="VWPM_CHART_TOP5RowDeleted" msprop:Generator_RowDeletingName="VWPM_CHART_TOP5RowDeleting" msprop:Generator_RowEvArgName="VWPM_CHART_TOP5RowChangeEvent" msprop:Generator_TablePropName="VWPM_CHART_TOP5" msprop:Generator_RowChangedName="VWPM_CHART_TOP5RowChanged" msprop:Generator_UserTableName="VWPM_CHART_TOP5" msprop:Generator_RowChangingName="VWPM_CHART_TOP5RowChanging" msprop:Generator_RowClassName="VWPM_CHART_TOP5Row" msprop:Generator_TableClassName="VWPM_CHART_TOP5DataTable" msprop:Generator_TableVarName="tableVWPM_CHART_TOP5">
<xs:complexType>
<xs:sequence>
<xs:element name="KRED_NAME" msprop:Generator_ColumnPropNameInTable="KRED_NAMEColumn" msprop:Generator_ColumnPropNameInRow="KRED_NAME" msprop:Generator_UserColumnName="KRED_NAME" msprop:Generator_ColumnVarNameInTable="columnKRED_NAME">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="250" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ANZ_BELEG" msprop:Generator_ColumnPropNameInTable="ANZ_BELEGColumn" msprop:Generator_ColumnPropNameInRow="ANZ_BELEG" msprop:Generator_UserColumnName="ANZ_BELEG" msprop:Generator_ColumnVarNameInTable="columnANZ_BELEG" type="xs:short" />
<xs:element name="Netto" msprop:Generator_ColumnPropNameInTable="NettoColumn" msprop:Generator_ColumnPropNameInRow="Netto" msprop:Generator_UserColumnName="Netto" msprop:Generator_ColumnVarNameInTable="columnNetto" type="xs:decimal" minOccurs="0" />
<xs:element name="Skonto" msprop:Generator_ColumnPropNameInTable="SkontoColumn" msprop:Generator_ColumnPropNameInRow="Skonto" msprop:Generator_UserColumnName="Skonto" msprop:Generator_ColumnVarNameInTable="columnSkonto" type="xs:decimal" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TBPM_PROFILE" msprop:Generator_RowEvHandlerName="TBPM_PROFILERowChangeEventHandler" msprop:Generator_RowDeletedName="TBPM_PROFILERowDeleted" msprop:Generator_RowDeletingName="TBPM_PROFILERowDeleting" msprop:Generator_RowEvArgName="TBPM_PROFILERowChangeEvent" msprop:Generator_TablePropName="TBPM_PROFILE" msprop:Generator_RowChangedName="TBPM_PROFILERowChanged" msprop:Generator_UserTableName="TBPM_PROFILE" msprop:Generator_RowChangingName="TBPM_PROFILERowChanging" msprop:Generator_RowClassName="TBPM_PROFILERow" msprop:Generator_TableClassName="TBPM_PROFILEDataTable" msprop:Generator_TableVarName="tableTBPM_PROFILE"> <xs:element name="TBPM_PROFILE" msprop:Generator_RowEvHandlerName="TBPM_PROFILERowChangeEventHandler" msprop:Generator_RowDeletedName="TBPM_PROFILERowDeleted" msprop:Generator_RowDeletingName="TBPM_PROFILERowDeleting" msprop:Generator_RowEvArgName="TBPM_PROFILERowChangeEvent" msprop:Generator_TablePropName="TBPM_PROFILE" msprop:Generator_RowChangedName="TBPM_PROFILERowChanged" msprop:Generator_UserTableName="TBPM_PROFILE" msprop:Generator_RowChangingName="TBPM_PROFILERowChanging" msprop:Generator_RowClassName="TBPM_PROFILERow" msprop:Generator_TableClassName="TBPM_PROFILEDataTable" msprop:Generator_TableVarName="tableTBPM_PROFILE">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>

View File

@@ -4,32 +4,31 @@
Changes to this file may cause incorrect behavior and will be lost if Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated. the code is regenerated.
</autogenerated>--> </autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="472" ViewPortY="90" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout"> <DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="472" ViewPortY="-96" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes> <Shapes>
<Shape ID="DesignTable:TBPM_PROFILE_FINAL_INDEXING" ZOrder="14" X="1688" Y="-74" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" /> <Shape ID="DesignTable:TBPM_PROFILE_FINAL_INDEXING" ZOrder="14" X="1688" Y="-74" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBPM_KONFIGURATION" ZOrder="2" X="-17" Y="232" Height="262" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" /> <Shape ID="DesignTable:TBPM_KONFIGURATION" ZOrder="4" X="-17" Y="232" Height="262" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" />
<Shape ID="DesignTable:TBDD_USER" ZOrder="18" X="608" Y="444" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:TBDD_USER" ZOrder="17" X="608" Y="444" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBPM_TYPE" ZOrder="19" X="17" Y="113" Height="203" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:TBPM_TYPE" ZOrder="18" X="17" Y="113" Height="203" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBPM_ERROR_LOG" ZOrder="21" X="443" Y="-87" Height="111" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="21" /> <Shape ID="DesignTable:TBPM_ERROR_LOG" ZOrder="20" X="443" Y="-87" Height="111" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="21" />
<Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="4" X="408" Y="-78" Height="379" Width="178" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="273" /> <Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="6" X="408" Y="-78" Height="379" Width="178" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="273" />
<Shape ID="DesignTable:TBPROFILE_USER" ZOrder="15" X="509" Y="-80" Height="267" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" /> <Shape ID="DesignTable:TBPROFILE_USER" ZOrder="2" X="1041" Y="-53" Height="267" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBPM_PROFILE_FILES" ZOrder="3" X="1391" Y="-70" Height="229" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" /> <Shape ID="DesignTable:TBPM_PROFILE_FILES" ZOrder="5" X="1391" Y="-70" Height="229" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:TBWH_CHECK_PROFILE_CONTROLS" ZOrder="23" X="0" Y="-72" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" /> <Shape ID="DesignTable:TBWH_CHECK_PROFILE_CONTROLS" ZOrder="22" X="0" Y="-72" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
<Shape ID="DesignTable:TBPM_PROFILE_CONTROLS" ZOrder="12" X="947" Y="404" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" /> <Shape ID="DesignTable:TBPM_PROFILE_CONTROLS" ZOrder="12" X="947" Y="404" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPM_CONTROL_TABLE" ZOrder="1" X="1297" Y="391" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" /> <Shape ID="DesignTable:TBPM_CONTROL_TABLE" ZOrder="3" X="1297" Y="391" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_GROUPS" ZOrder="17" X="19" Y="320" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:TBDD_GROUPS" ZOrder="16" X="19" Y="320" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBPROFILE_GROUP" ZOrder="13" X="1054" Y="47" Height="286" Width="277" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" /> <Shape ID="DesignTable:TBPROFILE_GROUP" ZOrder="13" X="1054" Y="47" Height="286" Width="277" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:FNPM_GET_FREE_USER_FOR_PROFILE" ZOrder="16" X="807" Y="155" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" /> <Shape ID="DesignTable:FNPM_GET_FREE_USER_FOR_PROFILE" ZOrder="15" X="807" Y="155" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBDD_EMAIL_TEMPLATE" ZOrder="7" X="1645" Y="598" Height="267" Width="287" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" /> <Shape ID="DesignTable:TBDD_EMAIL_TEMPLATE" ZOrder="9" X="1645" Y="598" Height="267" Width="287" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBDD_GUI_LANGUAGE_PHRASE" ZOrder="11" X="1427" Y="251" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" /> <Shape ID="DesignTable:TBDD_GUI_LANGUAGE_PHRASE" ZOrder="11" X="1427" Y="251" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWPM_CHART_INVOICE_MONITOR" ZOrder="10" X="1828" Y="457" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:VWPM_CHART_INVOICE_MONITOR" ZOrder="1" X="1828" Y="457" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:VWPM_CHART_INVOICE_MONITOR_SERIES" ZOrder="9" X="1903" Y="311" Height="153" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" /> <Shape ID="DesignTable:VWPM_CHART_INVOICE_MONITOR_SERIES" ZOrder="10" X="1908" Y="274" Height="153" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:VWPM_CHART_TOP5" ZOrder="8" X="1302" Y="15" Height="153" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" /> <Shape ID="DesignTable:TBPM_PROFILE" ZOrder="8" X="862" Y="-66" Height="305" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPM_PROFILE" ZOrder="6" X="862" Y="-66" Height="305" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" /> <Shape ID="DesignTable:TBWH_CONNECTION" ZOrder="23" X="625" Y="114" Height="276" Width="189" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="272" />
<Shape ID="DesignTable:TBWH_CONNECTION" ZOrder="24" X="625" Y="114" Height="276" Width="189" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="272" />
</Shapes> </Shapes>
<Connectors> <Connectors>
<Connector ID="DesignRelation:FK_TBPM_CONTROL_TABLE_CONTROL1" ZOrder="22" LineWidth="11"> <Connector ID="DesignRelation:FK_TBPM_CONTROL_TABLE_CONTROL1" ZOrder="21" LineWidth="11">
<RoutePoints> <RoutePoints>
<Point> <Point>
<X>1247</X> <X>1247</X>
@@ -41,7 +40,7 @@
</Point> </Point>
</RoutePoints> </RoutePoints>
</Connector> </Connector>
<Connector ID="DesignRelation:FK_TBPM_CONTROL_TABLE_CONTROL" ZOrder="20" LineWidth="11"> <Connector ID="DesignRelation:FK_TBPM_CONTROL_TABLE_CONTROL" ZOrder="19" LineWidth="11">
<RoutePoints> <RoutePoints>
<Point> <Point>
<X>141</X> <X>141</X>
@@ -57,7 +56,7 @@
</Point> </Point>
</RoutePoints> </RoutePoints>
</Connector> </Connector>
<Connector ID="DesignRelation:FK_TBPM_PROFILE_CONTROLS_PROFILE" ZOrder="5" LineWidth="11"> <Connector ID="DesignRelation:FK_TBPM_PROFILE_CONTROLS_PROFILE" ZOrder="7" LineWidth="11">
<RoutePoints> <RoutePoints>
<Point> <Point>
<X>965</X> <X>965</X>

View File

@@ -30,8 +30,8 @@ Module ModuleRuntimeVariables
Public Property BASEDATA_DT_PROFILES_SEARCHES_DOC As DataTable Public Property BASEDATA_DT_PROFILES_SEARCHES_DOC As DataTable
Public Property DT_FILTERED_PROFILE_SEARCHES_DOC As DataTable Public Property DT_FILTERED_PROFILE_SEARCHES_DOC As DataTable
Public Property BASEDATA_DT_PROFILES_SEARCHES_SQL As DataTable Public Property BASEDATA_DT_PROFILES_SEARCHES_DATA As DataTable
Public Property BASEDATA_DT_PROFILE_SEARCHES_SQL As DataTable Public Property DT_FILTERED_PROFILE_SEARCHES_DATA As DataTable
Public Property BASEDATA_DT_VW_PROFILE_USER As DataTable Public Property BASEDATA_DT_VW_PROFILE_USER As DataTable
Public Property BASEDATA_TBDD_COLUMNS_FORMAT As DataTable Public Property BASEDATA_TBDD_COLUMNS_FORMAT As DataTable
@@ -150,14 +150,13 @@ Module ModuleRuntimeVariables
Public Property CURRENT_DT_MASS_CHANGE_DOCS As DataTable Public Property CURRENT_DT_MASS_CHANGE_DOCS As DataTable
Public Property CURRENT_DT_FINAL_INDEXING As DataTable Public Property CURRENT_DT_FINAL_INDEXING As DataTable
Public Property CURRENT_DT_PROFILES As DataTable Public Property CURRENT_DT_PROFILES As DataTable
Public Property CURRENT_DT_PROFILE_LANGUAGE As DataTable Public Property CURRENT_DT_PROFILE_LANGUAGE As DataTable
Public Property CURRENT_DT_PROFILE As DataTable Public Property CURRENT_DT_PROFILE As DataTable
Public Property CURRENT_CONTROL_NAME_LIST As New List(Of String) Public Property CURRENT_CONTROL_NAME_LIST As New List(Of String)
Public Property COCKPIT_MONITOR_ID As Integer = 0
Public Property COCKPIT_CHART_ID As Integer
Public Property DTVWCONTROLS_INDEX As DataTable Public Property DTVWCONTROLS_INDEX As DataTable
Public Property DTVWCONTROL_INDEX As DataTable Public Property DTVWCONTROL_INDEX As DataTable

View File

@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.8.7.1")> <Assembly: AssemblyVersion("3.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguage("")> <Assembly: NeutralResourcesLanguage("")>

View File

@@ -1,15 +1,16 @@
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -151,9 +151,9 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
</Reference> </Reference>
<Reference Include="DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DigitalData.Controls.DocumentViewer, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Controls.DocumentViewer, Version=2.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\Controls.DocumentViewer\obj\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Controls.LookupGrid"> <Reference Include="DigitalData.Controls.LookupGrid">
<HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
@@ -1256,7 +1256,7 @@
<None Include="Resources\PM_mit_slogan.JPG" /> <None Include="Resources\PM_mit_slogan.JPG" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="taskFLOW-TEST-Debug.txt" /> <Content Include="logtaskflow.txt" />
<None Include="Changelog.md" /> <None Include="Changelog.md" />
<Content Include="DataColumnExpression.txt" /> <Content Include="DataColumnExpression.txt" />
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" /> <Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />

View File

@@ -92,7 +92,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Aktuell keine Workflowdaten vorhanden! {0} ähnelt. ''' Sucht eine lokalisierte Zeichenfolge, die Aktuell keine Workflowdaten vorhanden - {0} ähnelt.
'''</summary> '''</summary>
Friend Shared ReadOnly Property Aktuell_keine_Workflowdaten_vorhanden___0_() As String Friend Shared ReadOnly Property Aktuell_keine_Workflowdaten_vorhanden___0_() As String
Get Get

View File

@@ -120,36 +120,27 @@
<data name="Achtung:" xml:space="preserve"> <data name="Achtung:" xml:space="preserve">
<value>Attention:</value> <value>Attention:</value>
</data> </data>
<data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve">
<value>Currently no workflow data available - {0}</value>
</data>
<data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve">
<value>Current license has expired or is invalid!</value>
</data>
<data name="Anzahl angemeldete Benutzer: {0}" xml:space="preserve"> <data name="Anzahl angemeldete Benutzer: {0}" xml:space="preserve">
<value>Logged in users: {0}</value> <value>Logged in users: {0}</value>
</data> </data>
<data name="Anzahl Lizenzen: {0}" xml:space="preserve"> <data name="Anzahl Lizenzen: {0}" xml:space="preserve">
<value>Number of licenses: {0}</value> <value>Number of licenses: {0}</value>
</data> </data>
<data name="Bitte schließen Sie den offenen Workflow!" xml:space="preserve">
<value>Please close the currently open workflow!</value>
</data>
<data name="Größer" xml:space="preserve">
<value>Bigger</value>
</data>
<data name="Kleiner" xml:space="preserve">
<value>Smaller</value>
</data>
<data name="Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve">
<value>Currently no workflow data available! {0}</value>
</data>
<data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve">
<value>Current license has expired or is invalid!</value>
</data>
<data name="Bitte konfigurieren Sie eine Datenbankverbindung!" xml:space="preserve"> <data name="Bitte konfigurieren Sie eine Datenbankverbindung!" xml:space="preserve">
<value>Please configure a database connection!</value> <value>Please configure a database connection!</value>
</data> </data>
<data name="Bitte kontaktieren Sie Ihren Administrator!" xml:space="preserve"> <data name="Bitte kontaktieren Sie Ihren Administrator!" xml:space="preserve">
<value>Please contact your administrator!</value> <value>Please contact your administrator!</value>
</data> </data>
<data name="Bitte schließen Sie den offenen Workflow!" xml:space="preserve">
<value>Please close the currently open workflow!</value>
</data>
<data name="Bitte wählen Sie ein Profil aus!" xml:space="preserve"> <data name="Bitte wählen Sie ein Profil aus!" xml:space="preserve">
<value>Please select a profile!</value> <value>Please select a profile!</value>
</data> </data>
@@ -177,9 +168,18 @@
<data name="Ghost Modus ({0}) deaktivieren" xml:space="preserve"> <data name="Ghost Modus ({0}) deaktivieren" xml:space="preserve">
<value>Deactivate ({0}) Ghost Mode</value> <value>Deactivate ({0}) Ghost Mode</value>
</data> </data>
<data name="Größer" xml:space="preserve">
<value>Bigger</value>
</data>
<data name="HINWEIS: Debug Modus ist eingeschaltet!" xml:space="preserve"> <data name="HINWEIS: Debug Modus ist eingeschaltet!" xml:space="preserve">
<value>NOTE: Debug mode is switched on!</value> <value>NOTE: Debug mode is switched on!</value>
</data> </data>
<data name="IDB Aktiv" xml:space="preserve">
<value>IDB Active</value>
</data>
<data name="Kleiner" xml:space="preserve">
<value>Smaller</value>
</data>
<data name="Letzte Synchronisation: {0}" xml:space="preserve"> <data name="Letzte Synchronisation: {0}" xml:space="preserve">
<value>Last synchronization: {0}</value> <value>Last synchronization: {0}</value>
</data> </data>
@@ -189,6 +189,9 @@
<data name="Massenabschluss konnte nicht ausgeführt werden, weil windream nicht initialisiert werden konnte!" xml:space="preserve"> <data name="Massenabschluss konnte nicht ausgeführt werden, weil windream nicht initialisiert werden konnte!" xml:space="preserve">
<value>Mass completion could not be executed because windream could not be initialised!</value> <value>Mass completion could not be executed because windream could not be initialised!</value>
</data> </data>
<data name="Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="Nächste Aktivitätsüberprüfung: {0} {1}" xml:space="preserve"> <data name="Nächste Aktivitätsüberprüfung: {0} {1}" xml:space="preserve">
<value>Next activity check: {0} {1}</value> <value>Next activity check: {0} {1}</value>
</data> </data>
@@ -213,7 +216,4 @@
<data name="{0} Vorgänge" xml:space="preserve"> <data name="{0} Vorgänge" xml:space="preserve">
<value>{0} Processes</value> <value>{0} Processes</value>
</data> </data>
<data name="IDB Aktiv" xml:space="preserve">
<value>IDB Active</value>
</data>
</root> </root>

View File

@@ -120,36 +120,27 @@
<data name="Achtung:" xml:space="preserve"> <data name="Achtung:" xml:space="preserve">
<value>Attention:</value> <value>Attention:</value>
</data> </data>
<data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve">
<value>Actuellement, aucune donnée de workflow n'est disponible - {0}</value>
</data>
<data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve">
<value>La licence actuelle a expiré ou n'est plus valable !</value>
</data>
<data name="Anzahl angemeldete Benutzer: {0}" xml:space="preserve"> <data name="Anzahl angemeldete Benutzer: {0}" xml:space="preserve">
<value>Nombre d'utilisateurs connectés: {0}</value> <value>Nombre d'utilisateurs connectés: {0}</value>
</data> </data>
<data name="Anzahl Lizenzen: {0}" xml:space="preserve"> <data name="Anzahl Lizenzen: {0}" xml:space="preserve">
<value>Nombre de licences: {0}</value> <value>Nombre de licences: {0}</value>
</data> </data>
<data name="Bitte schließen Sie den offenen Workflow!" xml:space="preserve">
<value>Veuillez fermer le workflow ouvert !</value>
</data>
<data name="Größer" xml:space="preserve">
<value>Plus grand</value>
</data>
<data name="Kleiner" xml:space="preserve">
<value>Petit</value>
</data>
<data name="Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve">
<value>Actuellement, aucune donnée de workflow n'est disponible ! {0}</value>
</data>
<data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve">
<value>La licence actuelle a expiré ou n'est plus valable !</value>
</data>
<data name="Bitte konfigurieren Sie eine Datenbankverbindung!" xml:space="preserve"> <data name="Bitte konfigurieren Sie eine Datenbankverbindung!" xml:space="preserve">
<value>Veuillez configurer une connexion à la base de données !</value> <value>Veuillez configurer une connexion à la base de données !</value>
</data> </data>
<data name="Bitte kontaktieren Sie Ihren Administrator!" xml:space="preserve"> <data name="Bitte kontaktieren Sie Ihren Administrator!" xml:space="preserve">
<value>Veuillez contacter votre administrateur !</value> <value>Veuillez contacter votre administrateur !</value>
</data> </data>
<data name="Bitte schließen Sie den offenen Workflow!" xml:space="preserve">
<value>Veuillez fermer le workflow ouvert !</value>
</data>
<data name="Bitte wählen Sie ein Profil aus!" xml:space="preserve"> <data name="Bitte wählen Sie ein Profil aus!" xml:space="preserve">
<value>Veuillez sélectionner un profil !</value> <value>Veuillez sélectionner un profil !</value>
</data> </data>
@@ -177,9 +168,18 @@
<data name="Ghost Modus ({0}) deaktivieren" xml:space="preserve"> <data name="Ghost Modus ({0}) deaktivieren" xml:space="preserve">
<value>Désactiver ({0}) le Mode Fantôme</value> <value>Désactiver ({0}) le Mode Fantôme</value>
</data> </data>
<data name="Größer" xml:space="preserve">
<value>Plus grand</value>
</data>
<data name="HINWEIS: Debug Modus ist eingeschaltet!" xml:space="preserve"> <data name="HINWEIS: Debug Modus ist eingeschaltet!" xml:space="preserve">
<value>REMARQUE : le mode de débogage est activé !</value> <value>REMARQUE : le mode de débogage est activé !</value>
</data> </data>
<data name="IDB Aktiv" xml:space="preserve">
<value>IDB Aktif</value>
</data>
<data name="Kleiner" xml:space="preserve">
<value>Petit</value>
</data>
<data name="Letzte Synchronisation: {0}" xml:space="preserve"> <data name="Letzte Synchronisation: {0}" xml:space="preserve">
<value>Dernière synchronisation : {0}</value> <value>Dernière synchronisation : {0}</value>
</data> </data>
@@ -189,6 +189,9 @@
<data name="Massenabschluss konnte nicht ausgeführt werden, weil windream nicht initialisiert werden konnte!" xml:space="preserve"> <data name="Massenabschluss konnte nicht ausgeführt werden, weil windream nicht initialisiert werden konnte!" xml:space="preserve">
<value>La clôture en masse n'a pas pu être exécutée parce que windream n'a pas pu être initialisé !</value> <value>La clôture en masse n'a pas pu être exécutée parce que windream n'a pas pu être initialisé !</value>
</data> </data>
<data name="Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="Nächste Aktivitätsüberprüfung: {0} {1}" xml:space="preserve"> <data name="Nächste Aktivitätsüberprüfung: {0} {1}" xml:space="preserve">
<value>Prochaine vérification d'activité : {0} {1}</value> <value>Prochaine vérification d'activité : {0} {1}</value>
</data> </data>
@@ -213,7 +216,4 @@
<data name="{0} Vorgänge" xml:space="preserve"> <data name="{0} Vorgänge" xml:space="preserve">
<value>{0} Opérations</value> <value>{0} Opérations</value>
</data> </data>
<data name="IDB Aktiv" xml:space="preserve">
<value>IDB Aktif</value>
</data>
</root> </root>

View File

@@ -121,7 +121,7 @@
<value>Achtung:</value> <value>Achtung:</value>
</data> </data>
<data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve"> <data name="Aktuell keine Workflowdaten vorhanden! {0}" xml:space="preserve">
<value>Aktuell keine Workflowdaten vorhanden! {0}</value> <value>Aktuell keine Workflowdaten vorhanden - {0}</value>
</data> </data>
<data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve"> <data name="Aktuelle Lizenz ist abgelaufen oder ungültig!" xml:space="preserve">
<value>Aktuelle Lizenz ist abgelaufen oder ungültig!</value> <value>Aktuelle Lizenz ist abgelaufen oder ungültig!</value>

File diff suppressed because it is too large Load Diff

View File

@@ -195,60 +195,60 @@
<data name="BarButtonItem4.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BarButtonItem4.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAB10RVh0VGl0 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAB10RVh0VGl0
bGUARXhwb3J0O1hscztFeHBvcnRUb1hscztMoJn+AAACZklEQVQ4T2WTWWsTYRSGszdtg1r/Rk3Tmv4S bGUARXhwb3J0O1hscztFeHBvcnRUb1hscztMoJn+AAACeElEQVQ4T2WTW2sTQRiGJ8lme0Stf6NNDza/
RWhUEAQFJVqLF7FNmqSpXdKqRazQDW/0pimBghKsuMRWaNJ7b70UsWaZJTOTmSSv5/tmGqY68CQzgfc5 RBFMFQRBQYnW4kUPSZu0NT1rECv0hDd605RCQQlW1NZWaNN7b70UsTbZbPaUmd28MrObsNaFh10W3ueb
3zln4qDLSbgIN+Gx8Nrw/QP7zQnAwWCXK7tZKi5vHYGxtFVGdrOMJWJx44goYWG9jIW1Q8yvlZBZLe4z d2eWEEIChJAgISRECJE8wj7kc/B3AQCEw6/g/Prx/uLGCTgLGwXMrxewsF7A3NoJ5taOMbtawOzKEWZW
iV3gyW6U0aEnDn2YdDjtE9ommRffWMpvF3jn1g95SNVaUIiGaiIrBkdSWhAJvdVGamWfpfrsAh+zMoGs jjG1vH/AJX6BNL9WQA1wqdWpCZw6jsvUy2881ewXhDOrRyJkWjYMy4ZuumgGE1QMG6phg9oOUtkDnmr1
moGTEA/KLQgNA3WiabQRf/KFpfpPCVIrX/lxJUWH1NCpmtENMWqyjiqhNdv4cPDjP0HPFFlZnwIFJ3JX C2Ru5QLNdAP1kAhqNso6g6IzVJmDxNIeT7X9I0hlv4rlVgyKik6hGqwR4pQ0iqJGYVUdfDz88Z+gaWxp
MDrfg9E5hg/hxz5cnGV4MTLjxXCaSHkQSroRSrjzTOCPLX7kgpps8HBTNxAmgarpCFO4oerd8PO9JOqi T/QsGwxDueuIzjQhmuHI6H8q48o0J4y+yTB602H0piT0TITQkwxtc0Hz8NwnIShpTISrlKE/0wTTouif
hpqoIphw8SP0TszuoUUTrko6CXzQaJCsskIzGcn4eFvDaQ+vXJc0DE27MUTh4JQliKYKXHBcb/LKLz/P lqGbtBF+sTsBRbVQUk1EkkGxhJah6V3YTg3FCkV0RoZl2WKyYTL0TcmiVm9aEpOVioXu8RC6k0FExjxB
8PDqpzRV9kBsNLvHXnmfRFVQEIy7SeDkgr47ibcwWh38rmu2yl7ILEiVRVkze7YqPy1M47iq4MKkKei/ PJUXglOlKia/+jIpwsuf0+iblKDq1caysx8mUCwbiCRCiIwFhKD1fvIdmF3Db8XyTQ5D48G0BFWz3M7e
PbkLg1b0q6rxgSm0DdazRIIQVRasnp9RsFJTeXj5XRyDj0xB4GZsFzoJflZURN9ctgZm9swqd3uOu6gq 5Gf5cZwWDXSNuoK2e6M7YMzBr6IlPphhuJ0rehU9KQllr/Pz/DjOSqYIL75PoHPEFbTfGd4BZQ5+npmI
w0lhBwZjDr6FwI2Hef6SiLRzgQZWp53z3Ys6KoKOP4JG89F4i/nCd1Z1wP4e+CN3XxevP9jB1fEdsO9r v73mfTC3M5/c6JwIomuUE0DnCEHnMBG70H77ybY4JKrO959C0ai79yrFWZniT9nCqWKJitv573xqh/8c
4zlE7ufoeRuRe3QfNRmLbuPSrVcHlDn1IrG/ci9xhjhLnLMYsHHegt0HCLcpgOMvLlVmbi0MtN8AAAAA NMcevNm/9XgLA4Nb4PebgznEHuUwMLiJ2MMcYnGXG/FNXL37+vD8QeK/cgsh5AIh5CIh5JJHh4/LHvy5
SUVORK5CYII= nf/6dcFfLlVmbk9WkuUAAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="BarButtonItem4.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BarButtonItem4.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
</value> </value>
</data> </data>
<data name="BarButtonItem5.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BarButtonItem5.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -290,156 +290,153 @@
<metadata name="TableAdapterManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="TableAdapterManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>905, 17</value> <value>905, 17</value>
</metadata> </metadata>
<metadata name="VWPM_CHART_TOP5BindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1078, 17</value>
</metadata>
<data name="colKRED_NAME.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="colKRED_NAME.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
kmkAAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="colANZ_BELEG.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="colANZ_BELEG.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
</value> </value>
</data> </data>
<data name="colNetto.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="colNetto.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAB90RVh0VGl0 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAB90RVh0VGl0
bGUAQ3VycmVuY3k7RG9sbGFyO0J1Y2s7RXVyb/jzRY8AAAoDSURBVFhHnZYHVFRXGsfHbEhi1iTrYS1Y bGUAQ3VycmVuY3k7RG9sbGFyO0J1Y2s7RXVyb/jzRY8AAAoBSURBVFhHnZcHVFRXHsafu5LErNmsh7Vg
UBQbLmLAiIBYIARUylAGEAFXIoLgDEgXQboS2kAAmVCkSVGkKBqwUGewIHUsVLEBIlEREsWQPee/9z7B QUFsuAgBIzKIIoigUoYygAi4EhEEGUa6CNKV0AYCyEiRMtKlKBpQOjMgInUUqWKhCERFiIohe8635z0Z
4NlJovs/53fu4/Le9//ud+/73rC68zhvQTSF8AHhb4QPCR8RPp4E/ZvO03umdOVwWF3Hx8l+DRWAd4Ix QkjMhv2f85135s077/vd/733uzNEbyaDmC2CIBYQBPEXgiD+ShDEQoIgPiEI4tNZIj+T98lnFvSkM4ie
HesrYf32REifo+bU+KMc/03yLWns4PZsU1Fnjll/dw4HHcfN+tuyTEWtqcZBJwK0FpD7pAhMImOPq1iv K9PifhBZAP6UKNOpwULi5xc8oTlp/Em6t6pUaxLdv5NryO9ONxrqTWeg64rRUEeaIb8tUd8v20dtLUEQ
HhSwOjP/zwSIaKAPLbUWfSE+Zhx3J99q9LEwDCMduRjtO4/fntZhtLccw205GKgNRVfOjpGriYZ25Bla IkKQqZFK4v2zXKI79f8EmH7RQlM1yS8Fl/WjHmWZTY7wgjDRlYHJwVv4+WUtJgdKMN6RjuGaQPSkH5mo
FZr0lFf38lntx8zI5fskkPum7FKJ+9UXkBU29l3ywau+CxgbqMCvD4sx2pOD0TtpGO0m9GTj1YNCvLxb j9W1mu4KCb3g/ZMsovOy0TwBMmbaLhJ7mra2I82wabDMA+8Hb2NquBw/9Rdgsi8dk4+SMNmbhMk+Lt4/
jIfl3hCnmJSmumnKkOeZStxOMaXxJJpJgoqaf2igLju9LdO0cbDuO/xKjEfvF2C0KwWPL4dBFGOMsx7q y8O7xwXoL3GHIMGgKNFJRUzYiYcJhvMDmDZfqEMTX9KRatg0Wvstfhoux+TTXEz2JGCkLgj8CH3ccKHh
OOW4CqXuahBGsTEgCiXJ5KK/KhRigbHI2UBhGonzwU2BCRNUkpkkqGjmnzQns/l9F33xqr+MBM7CL7fi qu02FDkrgRdGxzA/EJN9GRiqDISAo8+315FeTEI84BjMG4Ak/6wlns4eLPXE+6FiTPal4U17NNpSj6GQ
0Zq5CyU8FZz31URloBZqQnVQQcbyA5oo3vclmlNt8aIjGfdK9qM+1jCCxKGHky5IopkkqKTiuWrLO7O3 qYBbniqo8FVDdaAGyn3VUHJGBQWnvkJLoiXedsXjSeFpNETqhkwvTnJAvzH6mMgSiXZQ2tzNPTz1ru8q
j73sOYWX3RnEPA71CeY466aKqiBtVBPoWBk4ToA2Kg5tJsmtwWOhP4Zb4tCaYPoiw3U9PZh0QRLNJEH1 3vWm4E17FBpijHHDSRGVfuqo8lOnrhW+0/JRR/m5vShkbscIzxvjrVFoizF8m8LaRS5MckC/MfqYyPrs
ybUEw8jeck+8vJONX27G4H6ZO2NeGbgZFQGb0CCwJlsRiV860jBQF4HrSVa46LcB7Se4GGkMw/PrQejK boxu6ECJK9494uLNgwg8LXamzCt896LcRxWNHHOM1IXiTVcShmtDcC/ODKVeu9GZ7YCJpiC8vueHnkwr
s0NVsK47iUcPpEQzSVD9vSWJfe3pFXLim0Lxc/Nh1EYa4pLfRmKiiYak7aQiCRgh88MNga/vuRGHJ/UR VPprOk8vyN8YfUxk/a01jn735Z0gTDQH4seW86gJ1UWZ1x6UeqmgMe4w3rTHYKLlPMYbfT88cz8KLxpC
ZC4Cz6/64WmFI3pP20MUoldD4tFteC99Jk4yHnzeeATPhC5IZi9gSnveZz3Oe2vgNLk+Zr4YxzjjmC3C MNESgtf1XnhZbouBa9bgB2hVT0/DvOoLQZz+6OumC3jFc0Q8fS3V2lseu3DLXRnXmNtx2Xg9LjOmZSSJ
0GUfPL/ihyGRF55cdMDjs9vRX7oTNYe+7iHx6GvJvBHj/KU+b01gjw03BJOV2GO4PgClXCWUua1Dmcc6 sToPvL7jhTG+G16U2mDkxmEMFR1F9bl9fdPbktoRwvXwv+rvbTH0qfFGf7wst8Z4gw+KHGRR7LQTxS47
jLTG4mdxHH4m40grHyMtMXhWsx9PqlwwUGaL/hLzh71FpkV3T5pGlrpv8CbxphL+p2N6J69jef+gyvKk MdEWiR8FUfixLRITbWxMtEbgVfVpvKh0xHCxJYYKjfsH8g3zH+cYhhY573YnCGLR7yWme/xOwv2SIuFK
CNayPJLWkunX+ryRbzD4THQAP5XbIlZnFgrslqHg2+UodlSEwGA+kgxlCQtw1ECWrHgPHp/bSYzNBu+e irODcInb8QtAE1tn9BX/DH4osUSkxnLkWm1C7jebUWArA47OGsTpiiNOdy0u6ojjRekJjNw8iqFCo9HH
YCdXpev5J6ZtPBeSotHtm6w2dCBVHd4pav1eAlWRa/yaIGsvhbc6Zs/Tk6yWviiWW+Ia6s1oWt1hvfq+ 2fT4ymQt79ikPTcDEpR7PeOVxs4k0uCeoDTkxlHks6K3+5m7Sf8qMfte5hCtg2GEU+z2GYDFtee1GgaL
Mh4Gy2wwVOeD2lBtnNy5BCdsl6DSXxPPat0xVOtGVu6G/kJjPCgwutWSvsWbn6JZGZixYex4lRNq2qIg mRgttsBYrQdqAtWRc3QDsi03oMJbBa9qnDFW44RX1U4YytPHs1y99tbkA+7sBJUK35TdU1cq7VDdEQbB
7ktHz1AhxL3pqL4dicxLjjiQrDHiFPHlWx2zuS+S5RqvTL0ZTf3RVyu6LcOWJGCLgdNm6Mq2QL6NPPKt YDL6xvIgGEhG1cNQpJbZ4ky88oRdyFe/SsyWwVCCFS0/A7Doe0+18I4US4wWW2L4mhF6uCbIspBClrkU
5ZFuIov8XcsgjtdCf4EhGvkbb8btWuoXlKJ+X3DOBjeIaceTDIgfxeD6w2Bcue/LUE+uW/pj0PQgEfEl kg3EkXVsEwTRahjK1UUTe8+DqGMbvfwSaE85Ny1wfzAZXS9SIHgegXv9/rjz1JNSQ78/Woci0PwsFtGF
luDylUvZe+XfdExe7GrGnErqkMm/FGqDdcceldrhURHpciXmEIZsRq7VYuRsX4w0tiyiN8/CYXXpwcBN pnBgyxfRT0rNJCYzUm4GQOScwb+ka/w1p54XWeF5Ph3DhcbgBexFhtl6pB9ejyS6OML3Lsd5muior+oy
M319YlUe5NVw0flTFpr6InH5njdEdz0g6vGAudcicAjCHncGUY8nGnvDkUm2zjlaSbRWbzbTMZ2iV712 T49IhWeZ1Q7o/iENzYOhqHviDv5jF/D7XGDsJgmGmyR4fc6U+H2uaBoIRmrpCdiHy/J3aK2gEtMufNsM
J6JlmVrE04hv4LPxqNAI/Sf1MVBqjSvhOsixXIRsczlkc+ToG3L0YNCqCrrytsEUsuIg1Pa44VL7PoRk ANmWRflM5ehGNh3P8/QwlKON4SJz3AnWQLqpJLjGEuAyJMgdcvGs37ZycuQdowm41++Hmj4nlHWeQgB3
f4094Upw+34tg3/aJhzO0UVFBxdV3S64cu8QYgqMYX945Vsdk4r5FmjIS0uf5qrVN8dtQ1+eHnpz9Ugl H04Ey8Lpux2UvJNUcT5dE+VdDqjsdcSdJ+cQkasP6/Nbf5WYZFFngbKUqOg1B6WGlqhDGMzUwkCGFoYL
LHEn1xLnPVWRs2NJb7iVXID3D2r/abjHR/2DENTc4eFiuxN2Byvi2xBFOEcowzX2K7jEqmBX8ErsDFiB TfEowxS3XBWRfmTDQLCZhI/7JaX/ND5ho+FZAKofMVHaaYfj/jL4JkAG9iHyYEV+DcdIBRzz34qjPltw
I7mkfXc541KnEy7ecqdVeGHktPBNx2T96KpOB5qElIuW3KLCPV81C0n3u5uujYfZ2uglyfQXW6Dn1I4z IUMD5T32KOu2Q2m7M9mFt3p262YSk/ieRRNCiDiqSUjmnfi6heejisfJ6ujnqmMgUwtDBSbou3rkesjF
EUfXXxCcMycl90E1WVUlCRyWrQPnyNXgxagQlFF9K5wcwhTEnTLHPjLvc3QjLrQ7MBSJzRGerw2bQ0vf Xbc5N41R98QDVb2OqOixRxBXA/ahcmBGKIAZIY+q9mAIBhIQddUYp0Ll4HFxD2532lDKFxgjOEsdFuc2
dEzWmb2qdJhoGlJbFWbOSN+hyD9lrzwq9F+HGzEa6BRooCVeLdqbr3y3pGEvytr+jbO3rMiqHOCXogVu ziQmcf2kohCAgjgovWxp8hEZ9lVr+Ume907cj1BGN0cZrdFK4e5s+ceFjSdR3PFv3Gg3Q1m3DbwS1OAQ
1GrsIzgTPOM1kCO0QlNvFDoGM9Dcx0fZ7W9R2MLB8eu6SK7Qx87Apb93zMLdKqyhqwH0ciIJmtnHTurz JodTYXKwD5ODa7Qy0nlmaB4IQ9doCloG2Sh++A3yWhm4ck8T8eXaOOq78ZfEzDuuQIzV+8yGIMk+taOt
5VI4K4KzLFcKMywUOhLYy/y50UrDF27zUHKDg5PN+igWmyKukAPHCEU4fkcIV4St/1IY8WRh4bUY/GI9 kUhgbPFPM93KSzGR7oqhb/J2CJcdv/2QicL7DOS0aKNAYIioPAZsQ2Rg+60MbINlYOm9EXpMcZi4rQe7
nLm5EyeaDJFd/w2yCBl1W2ETsIR2TNobprBO2iqxTtiuYuXbKLLyrBXJ3FuJ0JtoR/uUMN0patXYpc59 QAvXHxxFdrMuuA37kdawHym1B2Hhs4FMTDIbFhA5lrJEtuU2IstChsg0l5kLQj5EJtrnBEEssQvbNlXW
KGg2JEG3Ib9pK0qbdjPGdsHLsDtMAfYEu9DlsD4oDz2H2TiYrozMazrIvPo1Mgjpl3VgfUh+eDw29flD fQq5LbrIbj6ErOaDKGo+Thlb+W/C8SBpWAdJwypwM8zPSkHLZgXOJssj9a4GUuv3IaV+H5LrNGB+Tmp8
TSRCoeX63OG7lYNnxfbIa9xG2ILchi2kEkY4f8MDHgnrwPGeDzOK1zzCXJh6zoUBdy7Sr2jjGIMWBJUb BuAPSghCLVIyMW2+3Tp6Q2CNzKZDyGw6gIzGA8hp0cOt+y5widkJhvsaGJFyWw0jt1UwdF0FHYdVSL6j
YXlQ7vcKSPpETmZctBrT7EJW1B8n+0sTyCH7SdG0kYaXgBy+bg+UNrgiIE2LMTaheMyBsfs8pNVtRmrd jsuU1MCp2APTsxK/dGDu8ThX00V2Y7FVwJaGKzwzCiD9niYlFQtRuHHkUdXrgqJGFnyS1ChjA1IuK6Hv
JobIM+okSdmJM/DOCdBXZqqV75LoI/k6pPxGZE91kXXtG5CkoLNnJrySlZAu0kdpqwPMfWSJMTWfAxf+ vBpJtXuRWKtKKfQ6DUbu4sI18KcByC2zyMxzQ/iFLA1kN+uB26CJtLv7YRWwBRonlsEtXhbJfG0UtdnA
GqSINuEH4UbCBrgLVoHtOo++BUxHlGg6mXHRbZDaYCajsDtsxVjeNVOypzrMnoZk6TCr3bzrn1C1+AdU 2EMc+s6k+Uo4srcjga+KS7w9uMTbDWfONtBZq8ld8OHEnGs4V7OmQ2S3kZj08aAtU5l3DZFar0HNaUCa
OV/AyG0O2ARLXznkCm0hIMaCWk3EXVCDhe+CF1q2M2XHY/71L5dx0ZuZjsnxXBjvm6pGEvgGaZe1cbpl BjXavcf+CUWTf0CR8SX0nFaC7rQSpp4SyOBZgsPbDU6NCqJuK8HEc+1bNctl4jPzP9dwrmYBUInJcF0X
F+KKTOBKVmrsLkOMZeBwRBGBx7RRJnYhh04XR6vXI7FaA3tjlsGQNydsPNZ7JUDFHMb5yz+VtvBZWB+Y 7ZmohNT6/UiqU8e11mOIyjcAi70d+s5ioDuJweaCDHwvq6NY4IjkOk1crNqF2CplnIzYBF3myiDhoTQf
rYFUUtq0Oi0UtVqTRsMDe78MjAgX211wWmxHSq6FhCp1xBNck1bA0FWmZrnaZ/RbMMXQdTYTVKLpZCa0 ACHEwjWbPxc18VjX4MtVRiJfFUm1ashvM8ftTibop8Wgd1oMpZ2OuCawwiWeGmIqaYiupIEVtwW6LLHq
3U+ODsxWrN0mvcjMS7bZNUEJ31doIImUN6l2Pfnw+EF45yASqtXHjdUQVb4W9hGLoc+b3ahuJk1daYwp zUpfkGfBAl3Wig9vnWs4V8I67CUhhBDZcUhU0shNvIUVI4vvypURV6OCuJpd4Pd5gffoLGKqaNPGSggr
+rxZNN67J2BxYCEdmIcJUvIq02boc+fyLXxkR10TFRBSoIyYclXEV6ojsuwrBOSvhtP3S+lBfLFl76zI 2QHrkPXQZq5oohmJkq7UztJmLp8fgMmZdUIACkJKYfFSbYdVbBMP8UlWrDQCcuURUaKI6AoaQou/hk+W
ZeumMSunlN92Y23lziSXRJJMJzMhjrcsq6bLn15OJMF0TJUt0+W27p0dbMCbLdTnyXSQMmMbGfW5s6p0 HOy+20guxLcHTi4P3bRzMTVyUiUPnYiDDsvmB8BwFyeqe7xnQ1CJqXBgicTBkyv8dZgreNpMsS5dlhgO
HWf4qplMn0fue/PTjJqX33JjbXGeQf4kkmQ6mQmZes1jmXjMYxm7zyXMoVOTE5nomPRXzwR0jv6PMd5K McW6tB2WV2raLvVUMliyevZPM9K8pN2JOGC/dH4Ahm6rCQOX1YS+8ypC33nlXBBhYs7+F03eI7+jjA/a
DKnpxPjeCfyJJhL5I/5ELNZ/ARYVvuKnEwoEAAAAAElFTkSuQmCC L6VMhdd5A/xBCUE+pj+s/wIWFb7irnZ1hAAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="colSkonto.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="colSkonto.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAhdEVYdFRpdGxlAEV1cm87RG9sbGFyO01vbmV5O0N1 dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAhdEVYdFRpdGxlAEV1cm87RG9sbGFyO01vbmV5O0N1
cnJlbmN5OwBqwi4AAAJUSURBVFhHrZY9bttAEIVVGul8g8BNCpdqXAaBL5AiV7A7ncGdfYEUPoEAt7lB cnJlbmN5OwBqwi4AAAJHSURBVFhHrZc9TgMxEIUpIzpugGgoUr6GEqFcgIIrhG7PQEcuQJETrJSWGyAk
ECCNW1WBr5BKvfw+epcYrt8OGUUCPpLanT/t7jxqtV6ve1yKjdiKndgXeGaMOWyc7+pwOCzCOX8Ud+KP mrSpUK5AlX7Rc+zgPM+sl2Qjfcmynr+1Pc/LBYALhymABkALYANgF+E173GMNuoX6LpuEIUjgGsALwC+
OMyADbb4TOK4ZI6Jk/gsfgiXLAMffMdYLpmjTf5LuARLwHcswiVz1OQs4TG/vIUYw3a4ZI5aAPvoAh4D AXQVaENb+oxSwD2AdyNRDfrQ96wCGODTCD4U+h6K0EQe+bSf8uQKY4Tl0EQeqQCuowY7FcYqEnkwOXdy
sWwyB8k5ydmBexbfohPfw3wLsS6jfQbBaCcXCB6ck8bPG7uWjfNzEIyedkGeq5Ger8VLGf8rshWAbUyS 34ZbA3jKnfi3YZdgrKkm8mAwtpMGSSzUIRZwZdjmNOrjwWDsaQ1A1lnCGYBtvP9TmQHSaiIPBqewaAAy
QXCExQW5wUD3i2a85be4F1/FJ/FBnLWJepAAdZsEbY0csvspbsWVOFoxubwroEAlzN+Escp38UX8t2Jy j8lvjLGcLwCvAB4B3AK4BDDRRB5MQHU7CqpGFgA+ADwDuDtHMc0CIqyE43Nj7A3AwxiKaS6BPq0ypmLy
ebcF8Zc6ZHMyxeTSO4RPISGHkMPHL+f5ZIrJJWvDtv8XKWaxtXOFUTExnBOiB3FRgi5SzAUFwKCYGC4J y9uEqywhNyE3H5+c16MpJr/62lD7f5BiRtvifsZBMWlYE6IFOyEGHaSYAwogQTHTWtQCs9W42/sK5RKF
TKtx2rNC2aKhdSMa48Ncaz8oZi1gbmnp82yrYOgah6aQc+ezqQVA9jpGZHqHFaJqPpZ7naONewVsYwHQ 1pVZ44djah8UMxVQm1r2ed9SkdA1FlHO1Z40qQDSdxxTZLzNSnLVXMoSsI29Atq8gFSENRNUuKJdM7ZZ
ay8UrqeY8BIKuC53t+wtu5i8wna0AoO89gSr4vafd0Z9hzj2bfJI/FN6JuYKADpmchb0lTdnr4j9pOIM AbP4a027stECiPVKRnn1BCthrT/PjHSGWOw0eU7+UjoZUABhxxzthXhyekXsig3jUVmCI6L9isnjtSXn
GWdbMKHYP4nz8uzkHHY2mUPG6SEU43IXe8arfvQK2NpkDhlnbTh2gUPzrIbz21gHh4wzxRz+pBgfPo/C ZFMk8qhtwny6oz3vJ/3wCmiLRB6VNjx0gUWcDfUhTWHsUVHM8JJi+PCzNOzJXojUySNuzJpiBqJ9cV/Y
+bwJUevUQ8ZweimOSTIwFqd/GcUkGRgXMsVcwvR17JI5qkOhp5hz4DMmB5vMEZ0KTjF7YIPtsOwRm8zR S7Em8sha1NKJ/xbwdxhpIg8RK08xh3B8HGsiD9EITzFrlC8kmshDCkjLoYrp4b+SaSIPdcw469/4X518
OgaiYv7jn9L16hWdfBk/Ic3q5wAAAABJRU5ErkJggg== GT/5HgfSAAAAAElFTkSuQmCC
</value> </value>
</data> </data>
<metadata name="VWPM_CHART_TOP5BindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1078, 17</value>
</metadata>
<metadata name="VWPM_CHART_TOP5TableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="VWPM_CHART_TOP5TableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value> <value>17, 56</value>
</metadata> </metadata>

View File

@@ -4,7 +4,7 @@ Imports DevExpress.XtraCharts
Imports DevExpress.XtraGrid.Views.Tile Imports DevExpress.XtraGrid.Views.Tile
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Public Class frmInvDashboard Partial Public Class frmInvDashboard
Private _selectedChart As ChartControl Private _selectedChart As ChartControl
Private Sub frmInvDashboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub frmInvDashboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try Try
@@ -15,26 +15,104 @@ Public Class frmInvDashboard
WithClipboardHandler() WithClipboardHandler()
Try Try
VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
Me.VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter.Fill(Me.DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIES)
Catch ex As Exception
MsgBox("Error loading form1 - " & ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
End Try
VWPM_CHART_TOP5TableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
Me.VWPM_CHART_TOP5TableAdapter.Fill(Me.DD_DMSLiteDataSet.VWPM_CHART_TOP5) Me.VWPM_CHART_INVOICE_MONITOR_SERIESTableAdapter.Fill(Me.DD_DMSLiteDataSet.VWPM_CHART_INVOICE_MONITOR_SERIES, COCKPIT_CHART_ID)
Catch ex As Exception
MsgBox("Error loading VWPM_CHART_INVOICE_MONITOR_SERIES - " & ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
LOGGER.Error(ex)
End Try
Try
Dim osql = $"SELECT KRED_NAME, ANZ_BELEG, Netto, Skonto FROM VWPM_CHART_TOP5 WHERE COCKPIT_CHART_ID = {COCKPIT_CHART_ID}"
Dim dtTOP5 As DataTable = DatabaseFallback.GetDatatableECM(osql)
If IsNothing(dtTOP5) OrElse dtTOP5.Rows.Count = 0 Then
LOGGER.Warn("No data for VWPM_CHART_TOP5 - check SQL query or connection!")
GridControlTopKreditoren.DataSource = Nothing
GridControlTopKreditoren.Visible = False
BarButtonItemTKredPdf.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
BarButtonItemTKredExcel.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
Else
GridControlTopKreditoren.DataSource = dtTOP5
GridControlTopKreditoren.Visible = True
BarButtonItemTKredPdf.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
BarButtonItemTKredExcel.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
End If
'VWPM_CHART_TOP5TableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
'Me.VWPM_CHART_TOP5TableAdapter.Fill(Me.DD_DMSLiteDataSet.VWPM_CHART_TOP5, COCKPIT_CHART_ID)
Catch ex As Exception
MsgBox("Error loading VWPM_CHART_TOP5 - " & ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
LOGGER.Error(ex)
End Try
ApplySplitterPosition()
Layout_Dashboard() Layout_Dashboard()
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
MsgBox("Error loading form2 - " & ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) MsgBox("Error loading form2 - " & ex.Message, MsgBoxStyle.Exclamation, ADDITIONAL_TITLE)
End Try End Try
End Sub End Sub
Private Sub frmInvDashboard_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
SaveSplitterPosition()
End Sub
Private Sub ApplySplitterPosition()
Try
If IsNothing(CONFIG) OrElse IsNothing(CONFIG.Config) Then
Return
End If
If IsNothing(CONFIG.Config.InvDashboardSplitterPositions) Then
CONFIG.Config.InvDashboardSplitterPositions = New List(Of ClassConfig.InvDashboardSplitterPosition)
Return
End If
Dim entry = CONFIG.Config.InvDashboardSplitterPositions.
FirstOrDefault(Function(x) x.CockpitChartId = COCKPIT_CHART_ID)
If entry IsNot Nothing Then
SplitContainerControl1.SplitterPosition = entry.SplitterPosition
End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Private Sub SaveSplitterPosition()
Try
If IsNothing(CONFIG) OrElse IsNothing(CONFIG.Config) Then
Return
End If
If IsNothing(CONFIG.Config.InvDashboardSplitterPositions) Then
CONFIG.Config.InvDashboardSplitterPositions = New List(Of ClassConfig.InvDashboardSplitterPosition)
End If
Dim entry = CONFIG.Config.InvDashboardSplitterPositions.
FirstOrDefault(Function(x) x.CockpitChartId = COCKPIT_CHART_ID)
If entry Is Nothing Then
CONFIG.Config.InvDashboardSplitterPositions.Add(New ClassConfig.InvDashboardSplitterPosition With {
.CockpitChartId = COCKPIT_CHART_ID,
.SplitterPosition = SplitContainerControl1.SplitterPosition
})
Else
entry.SplitterPosition = SplitContainerControl1.SplitterPosition
End If
CONFIG.Save()
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Sub Layout_Dashboard() Sub Layout_Dashboard()
Try Try
Dim groupCount As Integer Dim groupCount As Integer
Dim charts As List(Of ChartControl) Dim charts As List(Of ChartControl)
Dim oGroups As DataRowCollection = BASEDATA_DT_CHARTS.Rows Dim oGroups As DataRow() = BASEDATA_DT_CHARTS.Select($"COCKPIT_CHART_ID = {COCKPIT_CHART_ID}")
groupCount = oGroups.Count groupCount = oGroups.Count
Configure_Split_Containers(groupCount) Configure_Split_Containers(groupCount)
charts = New List(Of ChartControl) From {ChartTopLeft, ChartTopRight, ChartBottomLeft, ChartBottomRight} charts = New List(Of ChartControl) From {ChartTopLeft, ChartTopRight, ChartBottomLeft, ChartBottomRight}
If groupCount >= 1 Then If groupCount >= 1 Then
@@ -53,7 +131,7 @@ Public Class frmInvDashboard
If groupCount >= 1 Then If groupCount >= 1 Then
LOGGER.Debug($"ChartCreating...Found more than one charts [{groupCount}]") LOGGER.Debug($"ChartCreating...Found more than one charts [{groupCount}]")
For Each gRow As DataRow In oGroups For Each gRow As DataRow In oGroups
Dim oGroupIndex As Integer = oGroups.IndexOf(gRow) Dim oGroupIndex As Integer = Array.IndexOf(oGroups, gRow)
Dim oGroupID As String = gRow.Item("GROUP_ID") Dim oGroupID As String = gRow.Item("GROUP_ID")
Dim groupCharts = BASEDATA_DT_CHARTS.Select(String.Format("GROUP_ID = '{0}'", oGroupID)) Dim groupCharts = BASEDATA_DT_CHARTS.Select(String.Format("GROUP_ID = '{0}'", oGroupID))
@@ -314,8 +392,8 @@ Public Class frmInvDashboard
RibbonPageGroup1.Enabled = False RibbonPageGroup1.Enabled = False
RibbonPageGroup2.Enabled = True RibbonPageGroup2.Enabled = True
BarButtonItem3.Enabled = True BarButtonItem3.Enabled = True
BarButtonItem4.Enabled = False BarButtonItemTKredExcel.Enabled = False
BarButtonItem5.Enabled = False BarButtonItemTKredPdf.Enabled = False
End Sub End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick
@@ -325,25 +403,25 @@ Public Class frmInvDashboard
End If End If
End Sub End Sub
Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemTKredExcel.ItemClick
SaveFileDialog1.Filter = "Excel Files (*.xlsx*)|*.xlsx" SaveFileDialog1.Filter = "Excel Files (*.xlsx*)|*.xlsx"
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
GridView1.ExportToXlsx(SaveFileDialog1.FileName) GridView1.ExportToXlsx(SaveFileDialog1.FileName)
End If End If
End Sub End Sub
Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem5.ItemClick Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemTKredPdf.ItemClick
SaveFileDialog1.Filter = "PDF Files (*.pdf*)|*.pdf" SaveFileDialog1.Filter = "PDF Files (*.pdf*)|*.pdf"
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
GridView1.ExportToPdf(SaveFileDialog1.FileName) GridView1.ExportToPdf(SaveFileDialog1.FileName)
End If End If
End Sub End Sub
Private Sub GridControl2_Click(sender As Object, e As EventArgs) Handles GridControl2.Click Private Sub GridControl2_Click(sender As Object, e As EventArgs) Handles GridControlTopKreditoren.Click
RibbonPageGroup1.Enabled = False RibbonPageGroup1.Enabled = False
RibbonPageGroup2.Enabled = True RibbonPageGroup2.Enabled = True
BarButtonItem3.Enabled = False BarButtonItem3.Enabled = False
BarButtonItem4.Enabled = True BarButtonItemTKredExcel.Enabled = True
BarButtonItem5.Enabled = True BarButtonItemTKredPdf.Enabled = True
End Sub End Sub
End Class End Class

View File

@@ -24,15 +24,9 @@ Partial Class frmMain
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container() Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.ImageListProfile = New System.Windows.Forms.ImageList(Me.components) Me.TreeList_Cockpit = New DevExpress.XtraTreeList.TreeList()
Me.DD_DMSLiteDataSet = New taskFLOW.DD_DMSLiteDataSet()
Me.TableAdapterManager = New taskFLOW.DD_DMSLiteDataSetTableAdapters.TableAdapterManager()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.GridControlWorkflows = New DevExpress.XtraGrid.GridControl()
Me.GridViewWorkflows = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.bbtniRefresh = New DevExpress.XtraBars.BarButtonItem() Me.bbtniRefresh = New DevExpress.XtraBars.BarButtonItem()
Me.bbtniMonitor = New DevExpress.XtraBars.BarButtonItem()
Me.bbiProfilverwaltung = New DevExpress.XtraBars.BarButtonItem() Me.bbiProfilverwaltung = New DevExpress.XtraBars.BarButtonItem()
Me.bbiKonfiguration = New DevExpress.XtraBars.BarButtonItem() Me.bbiKonfiguration = New DevExpress.XtraBars.BarButtonItem()
Me.bbtniGrundeinstellung = New DevExpress.XtraBars.BarButtonItem() Me.bbtniGrundeinstellung = New DevExpress.XtraBars.BarButtonItem()
@@ -48,7 +42,6 @@ Partial Class frmMain
Me.bbtniMetadataFile = New DevExpress.XtraBars.BarButtonItem() Me.bbtniMetadataFile = New DevExpress.XtraBars.BarButtonItem()
Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem() Me.BarEditItem1 = New DevExpress.XtraBars.BarEditItem()
Me.RepositoryItemProgressBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemProgressBar() Me.RepositoryItemProgressBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemProgressBar()
Me.bbtnitDashboardInv = New DevExpress.XtraBars.BarButtonItem()
Me.bsiGeneralInfo = New DevExpress.XtraBars.BarStaticItem() Me.bsiGeneralInfo = New DevExpress.XtraBars.BarStaticItem()
Me.bbtnitmGhostMode = New DevExpress.XtraBars.BarButtonItem() Me.bbtnitmGhostMode = New DevExpress.XtraBars.BarButtonItem()
Me.bsi_GhostMode = New DevExpress.XtraBars.BarStaticItem() Me.bsi_GhostMode = New DevExpress.XtraBars.BarStaticItem()
@@ -84,9 +77,9 @@ Partial Class frmMain
Me.BSIVERSION1 = New DevExpress.XtraBars.BarStaticItem() Me.BSIVERSION1 = New DevExpress.XtraBars.BarStaticItem()
Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem() Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem()
Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem() Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem()
Me.BarButtonItemCock_refresh = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupBasicConf = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupBasicConf = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup7 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup7 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@@ -99,14 +92,18 @@ Partial Class frmMain
Me.RibbonPageGroup8 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup8 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RepositoryItemTrackBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemTrackBar() Me.RepositoryItemTrackBar1 = New DevExpress.XtraEditors.Repository.RepositoryItemTrackBar()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.ImageCollection1 = New DevExpress.Utils.ImageCollection(Me.components)
Me.GridControlWorkflows = New DevExpress.XtraGrid.GridControl()
Me.GridViewWorkflows = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.Panel2 = New System.Windows.Forms.Panel() Me.Panel2 = New System.Windows.Forms.Panel()
Me.lblCaptionMainGrid = New System.Windows.Forms.Label() Me.lblCaptionMainGrid = New System.Windows.Forms.Label()
Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl() Me.ImageListProfile = New System.Windows.Forms.ImageList(Me.components)
Me.NavBarGroupProfiles = New DevExpress.XtraNavBar.NavBarGroup() Me.DD_DMSLiteDataSet = New taskFLOW.DD_DMSLiteDataSet()
Me.TableAdapterManager = New taskFLOW.DD_DMSLiteDataSetTableAdapters.TableAdapterManager()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.SplitterControl1 = New DevExpress.XtraEditors.SplitterControl()
Me.cmsNavPane = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.cmsNavPane = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.tsmiValidationProfil = New System.Windows.Forms.ToolStripMenuItem() Me.tsmiValidationProfil = New System.Windows.Forms.ToolStripMenuItem()
Me.NavBarGroupMore = New DevExpress.XtraNavBar.NavBarGroup()
Me.NavBarItemOverview = New DevExpress.XtraNavBar.NavBarItem()
Me.bindsourcegrid = New System.Windows.Forms.BindingSource(Me.components) Me.bindsourcegrid = New System.Windows.Forms.BindingSource(Me.components)
Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components)
Me.ContextMenuNotifyIcon = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ContextMenuNotifyIcon = New System.Windows.Forms.ContextMenuStrip(Me.components)
@@ -194,16 +191,17 @@ Partial Class frmMain
Me.TimerInactivity = New System.Windows.Forms.Timer(Me.components) Me.TimerInactivity = New System.Windows.Forms.Timer(Me.components)
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem9 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem9 = New DevExpress.XtraBars.BarButtonItem()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
CType(Me.GridControlWorkflows, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridViewWorkflows, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemProgressBar1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemProgressBar1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbGridFontSize, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.cmbGridFontSize, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridControlWorkflows, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridViewWorkflows, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel2.SuspendLayout() Me.Panel2.SuspendLayout()
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
Me.cmsNavPane.SuspendLayout() Me.cmsNavPane.SuspendLayout()
CType(Me.bindsourcegrid, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.bindsourcegrid, System.ComponentModel.ISupportInitialize).BeginInit()
Me.ContextMenuNotifyIcon.SuspendLayout() Me.ContextMenuNotifyIcon.SuspendLayout()
@@ -214,88 +212,36 @@ Partial Class frmMain
CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'ImageListProfile 'TreeList_Cockpit
' '
Me.ImageListProfile.ImageStream = CType(resources.GetObject("ImageListProfile.ImageStream"), System.Windows.Forms.ImageListStreamer) resources.ApplyResources(Me.TreeList_Cockpit, "TreeList_Cockpit")
Me.ImageListProfile.TransparentColor = System.Drawing.Color.Transparent Me.TreeList_Cockpit.ImageIndexFieldName = "ICON_INDEX"
Me.ImageListProfile.Images.SetKeyName(0, "ico2558.ico") Me.TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
Me.ImageListProfile.Images.SetKeyName(1, "ico2591.ico") Me.TreeList_Cockpit.MenuManager = Me.RibbonControl1
' Me.TreeList_Cockpit.Name = "TreeList_Cockpit"
'DD_DMSLiteDataSet Me.TreeList_Cockpit.OptionsBehavior.Editable = False
' Me.TreeList_Cockpit.OptionsBehavior.PopulateServiceColumns = True
Me.DD_DMSLiteDataSet.DataSetName = "DD_DMSLiteDataSet" Me.TreeList_Cockpit.OptionsBehavior.ReadOnly = True
Me.DD_DMSLiteDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema Me.TreeList_Cockpit.OptionsLayout.AddNewColumns = False
' Me.TreeList_Cockpit.OptionsMenu.ShowExpandCollapseItems = False
'TableAdapterManager Me.TreeList_Cockpit.OptionsSelection.EnableAppearanceFocusedCell = False
' Me.TreeList_Cockpit.OptionsView.ShowColumns = False
Me.TableAdapterManager.BackupDataSetBeforeUpdate = False Me.TreeList_Cockpit.OptionsView.ShowFilterPanelMode = DevExpress.XtraTreeList.ShowFilterPanelMode.Never
Me.TableAdapterManager.Connection = Nothing Me.TreeList_Cockpit.OptionsView.ShowFirstLines = False
Me.TableAdapterManager.TBDD_CONNECTIONTableAdapter = Nothing Me.TreeList_Cockpit.OptionsView.ShowHorzLines = False
Me.TableAdapterManager.TBDD_EMAIL_TEMPLATETableAdapter = Nothing Me.TreeList_Cockpit.OptionsView.ShowIndentAsRowStyle = True
Me.TableAdapterManager.TBDD_GUI_LANGUAGE_PHRASETableAdapter = Nothing Me.TreeList_Cockpit.OptionsView.ShowIndicator = False
Me.TableAdapterManager.TBDD_USERTableAdapter = Nothing Me.TreeList_Cockpit.OptionsView.ShowVertLines = False
Me.TableAdapterManager.TBPM_CONTROL_TABLETableAdapter = Nothing Me.TreeList_Cockpit.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
Me.TableAdapterManager.TBPM_ERROR_LOGTableAdapter = Nothing Me.TreeList_Cockpit.ParentFieldName = "Parent_ID"
Me.TableAdapterManager.TBPM_KONFIGURATIONTableAdapter = Nothing Me.TreeList_Cockpit.SelectImageList = Me.ImageCollection1
Me.TableAdapterManager.TBPM_PROFILE_CONTROLSTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_FILESTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_FINAL_INDEXINGTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILETableAdapter = Nothing
Me.TableAdapterManager.TBPM_TYPETableAdapter = Nothing
Me.TableAdapterManager.UpdateOrder = taskFLOW.DD_DMSLiteDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Transparent
Me.Panel1.Controls.Add(Me.GridControlWorkflows)
Me.Panel1.Controls.Add(Me.Panel2)
Me.Panel1.Controls.Add(Me.NavBarControl1)
resources.ApplyResources(Me.Panel1, "Panel1")
Me.Panel1.Name = "Panel1"
'
'GridControlWorkflows
'
resources.ApplyResources(Me.GridControlWorkflows, "GridControlWorkflows")
Me.GridControlWorkflows.MainView = Me.GridViewWorkflows
Me.GridControlWorkflows.MenuManager = Me.RibbonControl1
Me.GridControlWorkflows.Name = "GridControlWorkflows"
Me.GridControlWorkflows.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewWorkflows})
'
'GridViewWorkflows
'
Me.GridViewWorkflows.Appearance.EvenRow.BackColor = System.Drawing.Color.Azure
Me.GridViewWorkflows.Appearance.EvenRow.Options.UseBackColor = True
Me.GridViewWorkflows.Appearance.FooterPanel.Font = CType(resources.GetObject("GridViewWorkflows.Appearance.FooterPanel.Font"), System.Drawing.Font)
Me.GridViewWorkflows.Appearance.FooterPanel.Options.UseFont = True
Me.GridViewWorkflows.Appearance.ViewCaption.Font = CType(resources.GetObject("GridViewWorkflows.Appearance.ViewCaption.Font"), System.Drawing.Font)
Me.GridViewWorkflows.Appearance.ViewCaption.ForeColor = System.Drawing.Color.Black
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseFont = True
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseForeColor = True
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseTextOptions = True
Me.GridViewWorkflows.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near
Me.GridViewWorkflows.GridControl = Me.GridControlWorkflows
Me.GridViewWorkflows.Name = "GridViewWorkflows"
Me.GridViewWorkflows.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsBehavior.AllowFixedGroups = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsBehavior.AllowGroupExpandAnimation = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsBehavior.Editable = False
Me.GridViewWorkflows.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsSelection.MultiSelect = True
Me.GridViewWorkflows.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect
Me.GridViewWorkflows.OptionsView.ColumnAutoWidth = False
Me.GridViewWorkflows.OptionsView.EnableAppearanceEvenRow = True
Me.GridViewWorkflows.OptionsView.ShowAutoFilterRow = True
Me.GridViewWorkflows.OptionsView.ShowErrorPanel = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsView.ShowVerticalLines = DevExpress.Utils.DefaultBoolean.[False]
' '
'RibbonControl1 'RibbonControl1
' '
Me.RibbonControl1.ExpandCollapseItem.Id = 0 Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbtniMonitor, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bbtnitDashboardInv, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount}) Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount, Me.BarButtonItemCock_refresh})
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1") resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
Me.RibbonControl1.MaxItemId = 57 Me.RibbonControl1.MaxItemId = 58
Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen}) Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen})
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemProgressBar1, Me.RepositoryItemTrackBar1, Me.cmbGridFontSize}) Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemProgressBar1, Me.RepositoryItemTrackBar1, Me.cmbGridFontSize})
@@ -313,14 +259,6 @@ Partial Class frmMain
Me.bbtniRefresh.ImageOptions.LargeImage = CType(resources.GetObject("bbtniRefresh.ImageOptions.LargeImage"), System.Drawing.Image) Me.bbtniRefresh.ImageOptions.LargeImage = CType(resources.GetObject("bbtniRefresh.ImageOptions.LargeImage"), System.Drawing.Image)
Me.bbtniRefresh.Name = "bbtniRefresh" Me.bbtniRefresh.Name = "bbtniRefresh"
' '
'bbtniMonitor
'
resources.ApplyResources(Me.bbtniMonitor, "bbtniMonitor")
Me.bbtniMonitor.Id = 2
Me.bbtniMonitor.ImageOptions.Image = CType(resources.GetObject("bbtniMonitor.ImageOptions.Image"), System.Drawing.Image)
Me.bbtniMonitor.ImageOptions.LargeImage = CType(resources.GetObject("bbtniMonitor.ImageOptions.LargeImage"), System.Drawing.Image)
Me.bbtniMonitor.Name = "bbtniMonitor"
'
'bbiProfilverwaltung 'bbiProfilverwaltung
' '
resources.ApplyResources(Me.bbiProfilverwaltung, "bbiProfilverwaltung") resources.ApplyResources(Me.bbiProfilverwaltung, "bbiProfilverwaltung")
@@ -436,13 +374,6 @@ Partial Class frmMain
Me.RepositoryItemProgressBar1.Name = "RepositoryItemProgressBar1" Me.RepositoryItemProgressBar1.Name = "RepositoryItemProgressBar1"
Me.RepositoryItemProgressBar1.ShowTitle = True Me.RepositoryItemProgressBar1.ShowTitle = True
' '
'bbtnitDashboardInv
'
resources.ApplyResources(Me.bbtnitDashboardInv, "bbtnitDashboardInv")
Me.bbtnitDashboardInv.Id = 17
Me.bbtnitDashboardInv.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitDashboardInv.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.bbtnitDashboardInv.Name = "bbtnitDashboardInv"
'
'bsiGeneralInfo 'bsiGeneralInfo
' '
Me.bsiGeneralInfo.Id = 18 Me.bsiGeneralInfo.Id = 18
@@ -732,29 +663,29 @@ Partial Class frmMain
Me.bsitmCount.Name = "bsitmCount" Me.bsitmCount.Name = "bsitmCount"
Me.bsitmCount.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing Me.bsitmCount.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
' '
'BarButtonItemCock_refresh
'
resources.ApplyResources(Me.BarButtonItemCock_refresh, "BarButtonItemCock_refresh")
Me.BarButtonItemCock_refresh.Id = 57
Me.BarButtonItemCock_refresh.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItemCock_refresh.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItemCock_refresh.Name = "BarButtonItemCock_refresh"
'
'RibbonPageStart 'RibbonPageStart
' '
Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroupBasicConf, Me.RibbonPageGroup7, Me.RibbonPageGroup4, Me.RibbonPageGroupAHW}) Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup3, Me.RibbonPageGroupBasicConf, Me.RibbonPageGroup7, Me.RibbonPageGroup4, Me.RibbonPageGroupAHW})
Me.RibbonPageStart.Name = "RibbonPageStart" Me.RibbonPageStart.Name = "RibbonPageStart"
resources.ApplyResources(Me.RibbonPageStart, "RibbonPageStart") resources.ApplyResources(Me.RibbonPageStart, "RibbonPageStart")
' '
'RibbonPageGroup1 'RibbonPageGroup1
' '
Me.RibbonPageGroup1.AllowTextClipping = False Me.RibbonPageGroup1.AllowTextClipping = False
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemCock_refresh)
Me.RibbonPageGroup1.ItemLinks.Add(Me.bbtniRefresh) Me.RibbonPageGroup1.ItemLinks.Add(Me.bbtniRefresh)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemGhostMode) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemGhostMode)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BBtnItmNotfications) Me.RibbonPageGroup1.ItemLinks.Add(Me.BBtnItmNotfications)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1" Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
resources.ApplyResources(Me.RibbonPageGroup1, "RibbonPageGroup1") resources.ApplyResources(Me.RibbonPageGroup1, "RibbonPageGroup1")
' '
'RibbonPageGroup2
'
Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitDashboardInv)
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtniMonitor)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2")
'
'RibbonPageGroup3 'RibbonPageGroup3
' '
Me.RibbonPageGroup3.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far Me.RibbonPageGroup3.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
@@ -863,6 +794,52 @@ Partial Class frmMain
Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
' '
'ImageCollection1
'
resources.ApplyResources(Me.ImageCollection1, "ImageCollection1")
Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer)
Me.ImageCollection1.Images.SetKeyName(0, "splittablecells_32x32.png")
Me.ImageCollection1.Images.SetKeyName(1, "bosaleitem_32x32.png")
Me.ImageCollection1.Images.SetKeyName(2, "bar2_32x32.png")
Me.ImageCollection1.Images.SetKeyName(3, "gaugestylefullcircular_32x32.png")
'
'GridControlWorkflows
'
resources.ApplyResources(Me.GridControlWorkflows, "GridControlWorkflows")
Me.GridControlWorkflows.MainView = Me.GridViewWorkflows
Me.GridControlWorkflows.MenuManager = Me.RibbonControl1
Me.GridControlWorkflows.Name = "GridControlWorkflows"
Me.GridControlWorkflows.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewWorkflows})
'
'GridViewWorkflows
'
Me.GridViewWorkflows.Appearance.EvenRow.BackColor = System.Drawing.Color.Azure
Me.GridViewWorkflows.Appearance.EvenRow.Options.UseBackColor = True
Me.GridViewWorkflows.Appearance.FooterPanel.Font = CType(resources.GetObject("GridViewWorkflows.Appearance.FooterPanel.Font"), System.Drawing.Font)
Me.GridViewWorkflows.Appearance.FooterPanel.Options.UseFont = True
Me.GridViewWorkflows.Appearance.ViewCaption.Font = CType(resources.GetObject("GridViewWorkflows.Appearance.ViewCaption.Font"), System.Drawing.Font)
Me.GridViewWorkflows.Appearance.ViewCaption.ForeColor = System.Drawing.Color.Black
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseFont = True
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseForeColor = True
Me.GridViewWorkflows.Appearance.ViewCaption.Options.UseTextOptions = True
Me.GridViewWorkflows.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near
Me.GridViewWorkflows.GridControl = Me.GridControlWorkflows
Me.GridViewWorkflows.Name = "GridViewWorkflows"
Me.GridViewWorkflows.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsBehavior.AllowFixedGroups = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsBehavior.AllowGroupExpandAnimation = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsBehavior.Editable = False
Me.GridViewWorkflows.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsSelection.MultiSelect = True
Me.GridViewWorkflows.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect
Me.GridViewWorkflows.OptionsView.ColumnAutoWidth = False
Me.GridViewWorkflows.OptionsView.EnableAppearanceEvenRow = True
Me.GridViewWorkflows.OptionsView.ShowAutoFilterRow = True
Me.GridViewWorkflows.OptionsView.ShowErrorPanel = DevExpress.Utils.DefaultBoolean.[True]
Me.GridViewWorkflows.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.[False]
Me.GridViewWorkflows.OptionsView.ShowVerticalLines = DevExpress.Utils.DefaultBoolean.[False]
'
'Panel2 'Panel2
' '
Me.Panel2.Controls.Add(Me.lblCaptionMainGrid) Me.Panel2.Controls.Add(Me.lblCaptionMainGrid)
@@ -874,26 +851,51 @@ Partial Class frmMain
resources.ApplyResources(Me.lblCaptionMainGrid, "lblCaptionMainGrid") resources.ApplyResources(Me.lblCaptionMainGrid, "lblCaptionMainGrid")
Me.lblCaptionMainGrid.Name = "lblCaptionMainGrid" Me.lblCaptionMainGrid.Name = "lblCaptionMainGrid"
' '
'NavBarControl1 'ImageListProfile
' '
Me.NavBarControl1.ActiveGroup = Me.NavBarGroupProfiles Me.ImageListProfile.ImageStream = CType(resources.GetObject("ImageListProfile.ImageStream"), System.Windows.Forms.ImageListStreamer)
Me.NavBarControl1.ContextMenuStrip = Me.cmsNavPane Me.ImageListProfile.TransparentColor = System.Drawing.Color.Transparent
resources.ApplyResources(Me.NavBarControl1, "NavBarControl1") Me.ImageListProfile.Images.SetKeyName(0, "ico2558.ico")
Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroupMore, Me.NavBarGroupProfiles}) Me.ImageListProfile.Images.SetKeyName(1, "ico2591.ico")
Me.NavBarControl1.Items.AddRange(New DevExpress.XtraNavBar.NavBarItem() {Me.NavBarItemOverview})
Me.NavBarControl1.Name = "NavBarControl1"
Me.NavBarControl1.OptionsNavPane.ExpandedWidth = CType(resources.GetObject("resource.ExpandedWidth"), Integer)
Me.NavBarControl1.PaintStyleKind = DevExpress.XtraNavBar.NavBarViewKind.NavigationPane
Me.NavBarControl1.ShowIcons = DevExpress.Utils.DefaultBoolean.[True]
Me.NavBarControl1.View = New DevExpress.XtraNavBar.ViewInfo.StandardSkinExplorerBarViewInfoRegistrator("Office 2019 White")
' '
'NavBarGroupProfiles 'DD_DMSLiteDataSet
' '
resources.ApplyResources(Me.NavBarGroupProfiles, "NavBarGroupProfiles") Me.DD_DMSLiteDataSet.DataSetName = "DD_DMSLiteDataSet"
Me.NavBarGroupProfiles.Expanded = True Me.DD_DMSLiteDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
Me.NavBarGroupProfiles.GroupStyle = DevExpress.XtraNavBar.NavBarGroupStyle.LargeIconsText '
Me.NavBarGroupProfiles.ImageOptions.LargeImage = CType(resources.GetObject("NavBarGroupProfiles.ImageOptions.LargeImage"), System.Drawing.Image) 'TableAdapterManager
Me.NavBarGroupProfiles.Name = "NavBarGroupProfiles" '
Me.TableAdapterManager.BackupDataSetBeforeUpdate = False
Me.TableAdapterManager.Connection = Nothing
Me.TableAdapterManager.TBDD_CONNECTIONTableAdapter = Nothing
Me.TableAdapterManager.TBDD_EMAIL_TEMPLATETableAdapter = Nothing
Me.TableAdapterManager.TBDD_GUI_LANGUAGE_PHRASETableAdapter = Nothing
Me.TableAdapterManager.TBDD_USERTableAdapter = Nothing
Me.TableAdapterManager.TBPM_CONTROL_TABLETableAdapter = Nothing
Me.TableAdapterManager.TBPM_ERROR_LOGTableAdapter = Nothing
Me.TableAdapterManager.TBPM_KONFIGURATIONTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_CONTROLSTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_FILESTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILE_FINAL_INDEXINGTableAdapter = Nothing
Me.TableAdapterManager.TBPM_PROFILETableAdapter = Nothing
Me.TableAdapterManager.TBPM_TYPETableAdapter = Nothing
Me.TableAdapterManager.UpdateOrder = taskFLOW.DD_DMSLiteDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Transparent
Me.Panel1.Controls.Add(Me.GridControlWorkflows)
Me.Panel1.Controls.Add(Me.Panel2)
Me.Panel1.Controls.Add(Me.SplitterControl1)
Me.Panel1.Controls.Add(Me.TreeList_Cockpit)
resources.ApplyResources(Me.Panel1, "Panel1")
Me.Panel1.Name = "Panel1"
'
'SplitterControl1
'
resources.ApplyResources(Me.SplitterControl1, "SplitterControl1")
Me.SplitterControl1.Name = "SplitterControl1"
Me.SplitterControl1.TabStop = False
' '
'cmsNavPane 'cmsNavPane
' '
@@ -908,25 +910,6 @@ Partial Class frmMain
Me.tsmiValidationProfil.Name = "tsmiValidationProfil" Me.tsmiValidationProfil.Name = "tsmiValidationProfil"
resources.ApplyResources(Me.tsmiValidationProfil, "tsmiValidationProfil") resources.ApplyResources(Me.tsmiValidationProfil, "tsmiValidationProfil")
' '
'NavBarGroupMore
'
resources.ApplyResources(Me.NavBarGroupMore, "NavBarGroupMore")
Me.NavBarGroupMore.Expanded = True
Me.NavBarGroupMore.GroupStyle = DevExpress.XtraNavBar.NavBarGroupStyle.LargeIconsText
Me.NavBarGroupMore.ImageOptions.LargeImage = CType(resources.GetObject("NavBarGroupMore.ImageOptions.LargeImage"), System.Drawing.Image)
Me.NavBarGroupMore.ItemLinks.AddRange(New DevExpress.XtraNavBar.NavBarItemLink() {New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItemOverview)})
Me.NavBarGroupMore.Name = "NavBarGroupMore"
'
'NavBarItemOverview
'
Me.NavBarItemOverview.Appearance.Image = CType(resources.GetObject("NavBarItemOverview.Appearance.Image"), System.Drawing.Image)
Me.NavBarItemOverview.Appearance.Options.UseImage = True
resources.ApplyResources(Me.NavBarItemOverview, "NavBarItemOverview")
Me.NavBarItemOverview.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.[False]
Me.NavBarItemOverview.ImageOptions.LargeImage = CType(resources.GetObject("NavBarItemOverview.ImageOptions.LargeImage"), System.Drawing.Image)
Me.NavBarItemOverview.Name = "NavBarItemOverview"
Me.NavBarItemOverview.Tag = "OVERVIEW"
'
'NotifyIcon1 'NotifyIcon1
' '
Me.NotifyIcon1.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info Me.NotifyIcon1.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info
@@ -1619,17 +1602,18 @@ Partial Class frmMain
Me.Name = "frmMain" Me.Name = "frmMain"
Me.Ribbon = Me.RibbonControl1 Me.Ribbon = Me.RibbonControl1
Me.StatusBar = Me.RibbonStatusBar1 Me.StatusBar = Me.RibbonStatusBar1
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel1.ResumeLayout(False)
CType(Me.GridControlWorkflows, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridViewWorkflows, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemProgressBar1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemProgressBar1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbGridFontSize, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.cmbGridFontSize, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemTrackBar1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridControlWorkflows, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridViewWorkflows, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel2.ResumeLayout(False) Me.Panel2.ResumeLayout(False)
Me.Panel2.PerformLayout() Me.Panel2.PerformLayout()
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel1.ResumeLayout(False)
Me.cmsNavPane.ResumeLayout(False) Me.cmsNavPane.ResumeLayout(False)
CType(Me.bindsourcegrid, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.bindsourcegrid, System.ComponentModel.ISupportInitialize).EndInit()
Me.ContextMenuNotifyIcon.ResumeLayout(False) Me.ContextMenuNotifyIcon.ResumeLayout(False)
@@ -1648,10 +1632,6 @@ Partial Class frmMain
Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon
Friend WithEvents TimerRefresh As System.Windows.Forms.Timer Friend WithEvents TimerRefresh As System.Windows.Forms.Timer
Friend WithEvents TimerReminder As System.Windows.Forms.Timer Friend WithEvents TimerReminder As System.Windows.Forms.Timer
Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl
Friend WithEvents NavBarGroupProfiles As DevExpress.XtraNavBar.NavBarGroup
Friend WithEvents NavBarGroupMore As DevExpress.XtraNavBar.NavBarGroup
Friend WithEvents NavBarItemOverview As DevExpress.XtraNavBar.NavBarItem
Friend WithEvents cmsNavPane As ContextMenuStrip Friend WithEvents cmsNavPane As ContextMenuStrip
Friend WithEvents tsmiValidationProfil As ToolStripMenuItem Friend WithEvents tsmiValidationProfil As ToolStripMenuItem
Friend WithEvents bindsourcegrid As BindingSource Friend WithEvents bindsourcegrid As BindingSource
@@ -1733,7 +1713,6 @@ Partial Class frmMain
Friend WithEvents PrintPreviewBarCheckItem17 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem Friend WithEvents PrintPreviewBarCheckItem17 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem
Friend WithEvents PrintPreviewBarCheckItem18 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem Friend WithEvents PrintPreviewBarCheckItem18 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem
Friend WithEvents PrintPreviewBarCheckItem19 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem Friend WithEvents PrintPreviewBarCheckItem19 As DevExpress.XtraPrinting.Preview.PrintPreviewBarCheckItem
Friend WithEvents Panel1 As Panel
Friend WithEvents OutOfRangePMFixierenToolStripMenuItem As ToolStripMenuItem Friend WithEvents OutOfRangePMFixierenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents ToolStripSeparator1 As ToolStripSeparator Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
Friend WithEvents XtraSaveFileDialog1 As DevExpress.XtraEditors.XtraSaveFileDialog Friend WithEvents XtraSaveFileDialog1 As DevExpress.XtraEditors.XtraSaveFileDialog
@@ -1742,7 +1721,6 @@ Partial Class frmMain
Friend WithEvents BarButtonItem9 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem9 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents bbtniRefresh As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtniRefresh As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bbtniMonitor As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bbiProfilverwaltung As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbiProfilverwaltung As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bbiKonfiguration As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbiKonfiguration As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bbtniGrundeinstellung As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtniGrundeinstellung As DevExpress.XtraBars.BarButtonItem
@@ -1758,7 +1736,6 @@ Partial Class frmMain
Friend WithEvents bbtniMetadataFile As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtniMetadataFile As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarEditItem1 As DevExpress.XtraBars.BarEditItem Friend WithEvents BarEditItem1 As DevExpress.XtraBars.BarEditItem
Friend WithEvents RepositoryItemProgressBar1 As DevExpress.XtraEditors.Repository.RepositoryItemProgressBar Friend WithEvents RepositoryItemProgressBar1 As DevExpress.XtraEditors.Repository.RepositoryItemProgressBar
Friend WithEvents bbtnitDashboardInv As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bsiGeneralInfo As DevExpress.XtraBars.BarStaticItem Friend WithEvents bsiGeneralInfo As DevExpress.XtraBars.BarStaticItem
Friend WithEvents bbtnitmGhostMode As DevExpress.XtraBars.BarButtonItem Friend WithEvents bbtnitmGhostMode As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bsi_GhostMode As DevExpress.XtraBars.BarStaticItem Friend WithEvents bsi_GhostMode As DevExpress.XtraBars.BarStaticItem
@@ -1793,7 +1770,6 @@ Partial Class frmMain
Friend WithEvents BBtnItmNotfications As DevExpress.XtraBars.BarButtonItem Friend WithEvents BBtnItmNotfications As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageStart As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageStart As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonPageGroupBasicConf As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroupBasicConf As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonPageGroup7 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup7 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
@@ -1805,11 +1781,16 @@ Partial Class frmMain
Friend WithEvents RibbonPageAktionen As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageAktionen As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup8 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup8 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RepositoryItemTrackBar1 As DevExpress.XtraEditors.Repository.RepositoryItemTrackBar Friend WithEvents RepositoryItemTrackBar1 As DevExpress.XtraEditors.Repository.RepositoryItemTrackBar
Friend WithEvents Panel2 As Panel
Friend WithEvents lblCaptionMainGrid As Label Friend WithEvents lblCaptionMainGrid As Label
Friend WithEvents GridControlWorkflows As DevExpress.XtraGrid.GridControl Friend WithEvents GridControlWorkflows As DevExpress.XtraGrid.GridControl
Friend WithEvents GridViewWorkflows As DevExpress.XtraGrid.Views.Grid.GridView Friend WithEvents GridViewWorkflows As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents BSIVERSION1 As DevExpress.XtraBars.BarStaticItem Friend WithEvents BSIVERSION1 As DevExpress.XtraBars.BarStaticItem
Friend WithEvents barbtnitmsaveLogfiles As DevExpress.XtraBars.BarButtonItem Friend WithEvents barbtnitmsaveLogfiles As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bsitmCount As DevExpress.XtraBars.BarStaticItem Friend WithEvents bsitmCount As DevExpress.XtraBars.BarStaticItem
Friend WithEvents TreeList_Cockpit As DevExpress.XtraTreeList.TreeList
Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection
Friend WithEvents Panel2 As Panel
Friend WithEvents Panel1 As Panel
Friend WithEvents SplitterControl1 As DevExpress.XtraEditors.SplitterControl
Friend WithEvents BarButtonItemCock_refresh As DevExpress.XtraBars.BarButtonItem
End Class End Class

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -211,20 +211,20 @@ Public Class frmMonitor
Select Case DT_MONITOR_KONFIG.Rows.Count Select Case DT_MONITOR_KONFIG.Rows.Count
Case 2 Case 2
LoadGrid1Layout() LoadGridLayout(1)
LoadGrid2Layout() LoadGridLayout(2)
SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance
Case 3 Case 3
LoadGrid1Layout() LoadGridLayout(1)
LoadGrid2Layout() LoadGridLayout(2)
LoadGrid3Layout() LoadGridLayout(3)
SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance
SplitContainerControl2.SplitterPosition = CONFIG.Config.MonitorSplitter2_Distance SplitContainerControl2.SplitterPosition = CONFIG.Config.MonitorSplitter2_Distance
Case 4 Case 4
LoadGrid1Layout() LoadGridLayout(1)
LoadGrid2Layout() LoadGridLayout(2)
LoadGrid3Layout() LoadGridLayout(3)
LoadGrid4Layout() LoadGridLayout(4)
SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance SplitContainerControl1.SplitterPosition = CONFIG.Config.MonitorSplitter1_Distance
SplitContainerControl2.SplitterPosition = CONFIG.Config.MonitorSplitter2_Distance SplitContainerControl2.SplitterPosition = CONFIG.Config.MonitorSplitter2_Distance
SplitContainerControl3.SplitterPosition = CONFIG.Config.MonitorSplitter3_Distance SplitContainerControl3.SplitterPosition = CONFIG.Config.MonitorSplitter3_Distance
@@ -243,212 +243,140 @@ Public Class frmMonitor
Async Function Load_Grid_Data() As Threading.Tasks.Task Async Function Load_Grid_Data() As Threading.Tasks.Task
Try Try
FormShown = False FormShown = False
Dim oSQL = "SELECT * FROM TBPM_MONITOR_KONFIG" Dim oSQL = $"SELECT * FROM TBPM_MONITOR_KONFIG (NOLOCK) WHERE COCKPIT_ID = {COCKPIT_MONITOR_ID}"
DT_MONITOR_KONFIG = DatabaseFallback.GetDatatableECM(oSQL) ', "Monitor-Load_Grid_Data1") DT_MONITOR_KONFIG = DatabaseFallback.GetDatatableECM(oSQL) ', "Monitor-Load_Grid_Data1")
If Not IsNothing(DT_MONITOR_KONFIG) Then If DT_MONITOR_KONFIG Is Nothing OrElse DT_MONITOR_KONFIG.Rows.Count = 0 Then
If DT_MONITOR_KONFIG.Rows.Count >= 1 Then MsgBox("No configuration found for this monitor cockpit. Please contact your administrator.", MsgBoxStyle.Critical, "No Configuration")
oSQL = DT_MONITOR_KONFIG.Rows(0).Item("GRID_SQL") Me.Close()
GridView1.Columns.Clear()
Dim oDTGRID1 As DataTable = Await DatabaseFallback.GetDatatableECMAsync(oSQL) ', "Monitor-Load_Grid_Data2")
GridControl1.DataSource = oDTGRID1
GRID1_TITLE = DT_MONITOR_KONFIG.Rows(0).Item("GRID_TITLE")
GridView1.ViewCaption = GRID1_TITLE
Format_Datetime_Columns(GridView1, "Grid 1")
Try
'GridView1.Columns.Item("FULL_FILE_PATH").Visible = False
Catch ex As Exception
LOGGER.Info($"Attention: No Column FULL_FILE_PATH in GridView1")
End Try
Select Case DT_MONITOR_KONFIG.Rows.Count
Case 2
SplitContainerControl2.Collapsed = True
Case 3
SplitContainerControl3.Collapsed = True
Case Else
SplitContainerControl2.Collapsed = False
SplitContainerControl3.Collapsed = False
End Select
If DT_MONITOR_KONFIG.Rows.Count > 1 Then
GRID2_TITLE = DT_MONITOR_KONFIG.Rows(1).Item("GRID_TITLE")
GRID2_SQL = DT_MONITOR_KONFIG.Rows(1).Item("GRID_SQL")
GridView2.ViewCaption = GRID2_TITLE
Select Case DT_MONITOR_KONFIG.Rows.Count
Case 3
GRID3_TITLE = DT_MONITOR_KONFIG.Rows(2).Item("GRID_TITLE")
GRID3_SQL = DT_MONITOR_KONFIG.Rows(2).Item("GRID_SQL")
GridView3.ViewCaption = GRID3_TITLE
Case 4
GRID3_TITLE = DT_MONITOR_KONFIG.Rows(2).Item("GRID_TITLE")
GRID3_SQL = DT_MONITOR_KONFIG.Rows(2).Item("GRID_SQL")
GridView3.ViewCaption = GRID3_TITLE
GRID4_TITLE = DT_MONITOR_KONFIG.Rows(3).Item("GRID_TITLE")
GRID4_SQL = DT_MONITOR_KONFIG.Rows(3).Item("GRID_SQL")
GridView4.ViewCaption = GRID4_TITLE
End Select
End If
End If
End If End If
oSQL = DT_MONITOR_KONFIG.Rows(0).Item("GRID_SQL")
GridView1.Columns.Clear()
Dim oDTGRID1 As DataTable = Await DatabaseFallback.GetDatatableECMAsync(oSQL) ', "Monitor-Load_Grid_Data2")
GridControl1.DataSource = oDTGRID1
GRID1_TITLE = DT_MONITOR_KONFIG.Rows(0).Item("GRID_TITLE")
GridView1.ViewCaption = GRID1_TITLE
Format_Datetime_Columns(GridView1, "Grid 1")
Try
'GridView1.Columns.Item("FULL_FILE_PATH").Visible = False
Catch ex As Exception
LOGGER.Info($"Attention: No Column FULL_FILE_PATH in GridView1")
End Try
Select Case DT_MONITOR_KONFIG.Rows.Count
Case 2
SplitContainerControl2.Collapsed = True
Case 3
SplitContainerControl3.Collapsed = True
Case Else
SplitContainerControl2.Collapsed = False
SplitContainerControl3.Collapsed = False
End Select
If DT_MONITOR_KONFIG.Rows.Count > 1 Then
GRID2_TITLE = DT_MONITOR_KONFIG.Rows(1).Item("GRID_TITLE")
GRID2_SQL = DT_MONITOR_KONFIG.Rows(1).Item("GRID_SQL")
GridView2.ViewCaption = GRID2_TITLE
Select Case DT_MONITOR_KONFIG.Rows.Count
Case 3
GRID3_TITLE = DT_MONITOR_KONFIG.Rows(2).Item("GRID_TITLE")
GRID3_SQL = DT_MONITOR_KONFIG.Rows(2).Item("GRID_SQL")
GridView3.ViewCaption = GRID3_TITLE
Case 4
GRID3_TITLE = DT_MONITOR_KONFIG.Rows(2).Item("GRID_TITLE")
GRID3_SQL = DT_MONITOR_KONFIG.Rows(2).Item("GRID_SQL")
GridView3.ViewCaption = GRID3_TITLE
GRID4_TITLE = DT_MONITOR_KONFIG.Rows(3).Item("GRID_TITLE")
GRID4_SQL = DT_MONITOR_KONFIG.Rows(3).Item("GRID_SQL")
GridView4.ViewCaption = GRID4_TITLE
End Select
End If
Catch ex As Exception Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Load_Grid_Data:") MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Load_Grid_Data:")
Finally Finally
FormShown = True FormShown = True
End Try End Try
End Function End Function
Sub LoadGrid1Layout() Private Function GetGridLayoutPath(pGridNumber As Integer) As String
Dim oFilename As String = $"DevExpressGridViewMonitor_UserLayout_Grid{pGridNumber}_Cockpit{COCKPIT_MONITOR_ID}.xml"
Return System.IO.Path.Combine(USER_CONFIG_DIRECTORY, oFilename)
End Function
Private Sub SaveGridLayout(pGridNumber As Integer)
Try Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid1.xml") Dim oGridView As GridView = Nothing
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename) Select Case pGridNumber
If File.Exists(xml) Then Case 1 : oGridView = GridView1
GridView1.RestoreLayoutFromXml(xml, OptionsLayoutBase.FullLayout) Case 2 : oGridView = GridView2
Case 3 : oGridView = GridView3
Case 4 : oGridView = GridView4
Case Else
LOGGER.Warn($"SaveGridLayout: Invalid grid number [{pGridNumber}]")
Exit Sub
End Select
oGridView.SaveLayoutToXml(GetGridLayoutPath(pGridNumber), OptionsLayoutBase.FullLayout)
LOGGER.Debug($"SaveGridLayout: Grid{pGridNumber} layout saved for Cockpit [{COCKPIT_MONITOR_ID}]")
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info($"Error while saving Grid{pGridNumber}Layout: {ex.Message}")
End Try
End Sub
Private Sub LoadGridLayout(pGridNumber As Integer)
Try
Dim oXml As String = GetGridLayoutPath(pGridNumber)
If Not File.Exists(oXml) Then Exit Sub
Dim oGridView As GridView = Nothing
Select Case pGridNumber
Case 1 : oGridView = GridView1
Case 2 : oGridView = GridView2
Case 3 : oGridView = GridView3
Case 4 : oGridView = GridView4
Case Else
LOGGER.Warn($"LoadGridLayout: Invalid grid number [{pGridNumber}]")
Exit Sub
End Select
oGridView.RestoreLayoutFromXml(oXml, OptionsLayoutBase.FullLayout)
LOGGER.Debug($"LoadGridLayout: Grid{pGridNumber} layout restored for Cockpit [{COCKPIT_MONITOR_ID}]")
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info($"Error while restoring Grid{pGridNumber}Layout: {ex.Message}")
End Try
End Sub
Private Sub RemoveGridLayout(pGridNumber As Integer)
Try
Dim oXml As String = GetGridLayoutPath(pGridNumber)
If File.Exists(oXml) Then
IO.File.Delete(oXml)
LOGGER.Debug($"RemoveGridLayout: Grid{pGridNumber} layout removed for Cockpit [{COCKPIT_MONITOR_ID}]")
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Info("Error while restoring layout 1: " & ex.Message) LOGGER.Info($"Error while removing Grid{pGridNumber}Layout: {ex.Message}")
End Try End Try
End Sub End Sub
Sub LoadGrid2Layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid2.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
If File.Exists(xml) Then
GridView2.RestoreLayoutFromXml(xml, OptionsLayoutBase.FullLayout)
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while restoring layout 2: " & ex.Message)
End Try
End Sub
Sub LoadGrid3Layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid3.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
If File.Exists(xml) Then
GridView3.RestoreLayoutFromXml(xml, OptionsLayoutBase.FullLayout)
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while restoring layout 3: " & ex.Message)
End Try
End Sub
Sub LoadGrid4Layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid4.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
If File.Exists(xml) Then
GridView4.RestoreLayoutFromXml(xml, OptionsLayoutBase.FullLayout)
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while restoring layout 4: " & ex.Message)
End Try
End Sub
Sub SaveGrid1layout()
Try
Dim o = USER_CONFIG_DIRECTORY
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid1.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
GridView1.SaveLayoutToXml(xml, OptionsLayoutBase.FullLayout)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving Grid1Layout: " & ex.Message)
End Try
End Sub
Sub RemoveLayout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid1.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
IO.File.Delete(xml)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving RemoveLayout1: " & ex.Message)
End Try
End Sub
Sub SaveGrid2layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid2.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
GridView2.SaveLayoutToXml(xml, OptionsLayoutBase.FullLayout)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving Grid2Layout: " & ex.Message)
End Try
End Sub
Sub RemoveLayout2()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid2.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
IO.File.Delete(xml)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving RemoveLayout2: " & ex.Message)
End Try
End Sub
Sub SaveGrid3layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid3.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
GridView3.SaveLayoutToXml(xml, OptionsLayoutBase.FullLayout)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving Grid3Layout: " & ex.Message)
End Try
End Sub
Sub RemoveLayout3()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid3.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
IO.File.Delete(xml)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving RemoveLayout3: " & ex.Message)
End Try
End Sub
Sub SaveGrid4layout()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid4.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
GridView4.SaveLayoutToXml(xml, OptionsLayoutBase.FullLayout)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving Grid4Layout: " & ex.Message)
End Try
End Sub
Sub RemoveLayout4()
Try
Dim Filename As String = String.Format("DevExpressGridViewMonitor_UserLayout_Grid4.xml")
Dim xml As String = System.IO.Path.Combine(USER_CONFIG_DIRECTORY, Filename)
IO.File.Delete(xml)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error while saving RemoveLayout4: " & ex.Message)
End Try
End Sub
Private Sub frmMonitor_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Private Sub frmMonitor_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Select Case DT_MONITOR_KONFIG.Rows.Count Select Case DT_MONITOR_KONFIG.Rows.Count
Case 2 Case 2
SaveGrid1layout() SaveGridLayout(1)
SaveGrid2layout() SaveGridLayout(2)
Case 3 Case 3
SaveGrid1layout() SaveGridLayout(1)
SaveGrid2layout() SaveGridLayout(2)
SaveGrid3layout() SaveGridLayout(3)
CONFIG.Config.MonitorSplitter1_Distance = SplitContainerControl1.SplitterPosition CONFIG.Config.MonitorSplitter1_Distance = SplitContainerControl1.SplitterPosition
CONFIG.Config.MonitorSplitter2_Distance = SplitContainerControl2.SplitterPosition CONFIG.Config.MonitorSplitter2_Distance = SplitContainerControl2.SplitterPosition
Case 4 Case 4
SaveGrid1layout() SaveGridLayout(1)
SaveGrid2layout() SaveGridLayout(2)
SaveGrid3layout() SaveGridLayout(3)
SaveGrid4layout() SaveGridLayout(4)
CONFIG.Config.MonitorSplitter1_Distance = SplitContainerControl1.SplitterPosition CONFIG.Config.MonitorSplitter1_Distance = SplitContainerControl1.SplitterPosition
CONFIG.Config.MonitorSplitter2_Distance = SplitContainerControl2.SplitterPosition CONFIG.Config.MonitorSplitter2_Distance = SplitContainerControl2.SplitterPosition
CONFIG.Config.MonitorSplitter3_Distance = SplitContainerControl3.SplitterPosition CONFIG.Config.MonitorSplitter3_Distance = SplitContainerControl3.SplitterPosition
@@ -549,17 +477,17 @@ Public Class frmMonitor
Private Async Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick Private Async Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
Select Case DT_MONITOR_KONFIG.Rows.Count Select Case DT_MONITOR_KONFIG.Rows.Count
Case 2 Case 2
RemoveLayout() RemoveGridLayout(1)
RemoveLayout2() RemoveGridLayout(2)
Case 3 Case 3
RemoveLayout() RemoveGridLayout(1)
RemoveLayout2() RemoveGridLayout(2)
RemoveLayout3() RemoveGridLayout(3)
Case 4 Case 4
RemoveLayout() RemoveGridLayout(1)
RemoveLayout2() RemoveGridLayout(2)
RemoveLayout3() RemoveGridLayout(3)
RemoveLayout4() RemoveGridLayout(4)
End Select End Select
GridView1.ShowLoadingPanel() GridView1.ShowLoadingPanel()

View File

@@ -762,7 +762,6 @@ Partial Class frmValidator
Me.rbnPgGroupAttmt.ItemLinks.Add(Me.Attmnt_bbtnitm_LoadonClick) Me.rbnPgGroupAttmt.ItemLinks.Add(Me.Attmnt_bbtnitm_LoadonClick)
Me.rbnPgGroupAttmt.Name = "rbnPgGroupAttmt" Me.rbnPgGroupAttmt.Name = "rbnPgGroupAttmt"
resources.ApplyResources(Me.rbnPgGroupAttmt, "rbnPgGroupAttmt") resources.ApplyResources(Me.rbnPgGroupAttmt, "rbnPgGroupAttmt")
Me.rbnPgGroupAttmt.Visible = False
' '
'RibbonPageGroupCustom 'RibbonPageGroupCustom
' '

View File

@@ -616,7 +616,7 @@
<value>DocumentViewer1</value> <value>DocumentViewer1</value>
</data> </data>
<data name="&gt;&gt;DocumentViewer1.Type" xml:space="preserve"> <data name="&gt;&gt;DocumentViewer1.Type" xml:space="preserve">
<value>DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null</value> <value>DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.7.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;DocumentViewer1.Parent" xml:space="preserve"> <data name="&gt;&gt;DocumentViewer1.Parent" xml:space="preserve">
<value>SplitContainer1.Panel2</value> <value>SplitContainer1.Panel2</value>

View File

@@ -140,7 +140,8 @@ Public Class frmValidator
Private _overlayHandle As Object = Nothing ' ← NEU: Klassenvariable Private _overlayHandle As Object = Nothing ' ← NEU: Klassenvariable
Private _overlayRefCount As Integer = 0 ' ← NEU: Zähler für verschachtelte Calls Private _overlayRefCount As Integer = 0 ' ← NEU: Zähler für verschachtelte Calls
Private _overlayLock As New Object() ' ← NEU: Thread-Safe Lock Private _overlayLock As New Object() ' ← NEU: Thread-Safe Lock
Private _documentPathHandler As ClassDocumentPathHandler Private _documentPathHandler As DocumentPathHandler
Private _isLoadingAdditionalSearches As Boolean = False
Private Class Translation_Strings Private Class Translation_Strings
@@ -213,7 +214,7 @@ Public Class frmValidator
''' <summary> ''' <summary>
''' Erzwingt sofortiges Schließen (nur für Fehlerfall / FormClosing) ''' Erzwingt sofortiges Schließen (nur für Fehlerfall / FormClosing)
''' </summary> ''' </summary>DetachAllGridEvents
Private Sub ForceCloseOverlay() Private Sub ForceCloseOverlay()
SyncLock _overlayLock SyncLock _overlayLock
If _overlayHandle IsNot Nothing Then If _overlayHandle IsNot Nothing Then
@@ -274,7 +275,7 @@ Public Class frmValidator
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) MyValidationLogger.Error(ex)
' Bei Fehler sicherheitshalber zentrieren ' Bei Fehler sicherheitshalber zentrieren
CenterFormOnScreen() CenterFormOnScreen()
End Try End Try
@@ -308,8 +309,7 @@ Public Class frmValidator
DD_Documentloader = New Loader(LOGCONFIG, OperationMode, Environment.Service.Client, Environment.User) DD_Documentloader = New Loader(LOGCONFIG, OperationMode, Environment.Service.Client, Environment.User)
ControlCreator = New ClassControlCreator(LOGCONFIG) ControlCreator = New ClassControlCreator(LOGCONFIG)
Validator = New Validator(LOGCONFIG) Validator = New Validator(LOGCONFIG)
_documentPathHandler = New ClassDocumentPathHandler(MyValidationLogger) _documentPathHandler = New DocumentPathHandler(LOGCONFIG)
Override = False Override = False
SplitContainer1.Panel2Collapsed = True SplitContainer1.Panel2Collapsed = True
first_control = Nothing first_control = Nothing
@@ -330,18 +330,7 @@ Public Class frmValidator
MyValidationLogger.Info($"[PERF frmValidation_Load] 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
If COPY_WMFILE_2TEMP = True Then
If String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) OrElse Not System.IO.Directory.Exists(TEMP_DOCUMENT_FOLDER) Then
MyValidationLogger.Warn("⚠️ TEMP_DOCUMENT_FOLDER nicht initialisiert → Versuche erneut zu erstellen")
If Not InitializeTempFolder() Then
MyValidationLogger.Error("❌ Temp-Ordner konnte nicht erstellt werden!")
' Optional: Fallback oder Fehlerbehandlung
End If
Else
MyValidationLogger.Debug($"✓ Temp-Ordner verfügbar: [{TEMP_DOCUMENT_FOLDER}]")
End If
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Warn($"⚠️ Error in frmValidation_load1: {ex.Message}") MyValidationLogger.Warn($"⚠️ Error in frmValidation_load1: {ex.Message}")
@@ -694,35 +683,7 @@ Public Class frmValidator
End Try End Try
End Sub End Sub
Private _isClosingGuard As Boolean = False Private _isClosingGuard As Boolean = False
Public Shared Function InitializeTempFolder() As Boolean
Try
If COPY_WMFILE_2TEMP = True Then
' Basis-Temp-Pfad ermitteln
Dim baseTempPath As String = System.IO.Path.GetTempPath()
' Application-spezifischen Ordner erstellen (z.B. "TaskFlow_Temp")
TEMP_DOCUMENT_FOLDER = System.IO.Path.Combine(baseTempPath, "DD_VALIDATOR_Documents")
' Ordner erstellen, falls nicht vorhanden
If Not System.IO.Directory.Exists(TEMP_DOCUMENT_FOLDER) Then
System.IO.Directory.CreateDirectory(TEMP_DOCUMENT_FOLDER)
LOGGER.Info($"Temporärer Dokumentordner erstellt: [{TEMP_DOCUMENT_FOLDER}]")
Else
LOGGER.Debug($"Temporärer Dokumentordner existiert bereits: [{TEMP_DOCUMENT_FOLDER}]")
End If
Return True
Else
LOGGER.Debug("COPY_WMFILE_2TEMP = False → Kein Temp-Ordner nötig")
Return True
End If
Catch ex As Exception
LOGGER.Error($"Fehler beim Erstellen des Temp-Ordners: {ex.Message}")
LOGGER.Error(ex)
Return False
End Try
End Function
Private Sub DetachAllGridEvents(parent As Control) Private Sub DetachAllGridEvents(parent As Control)
For Each ctrl As Control In parent.Controls For Each ctrl As Control In parent.Controls
If TypeOf ctrl Is GridControl Then If TypeOf ctrl Is GridControl Then
@@ -776,9 +737,11 @@ Public Class frmValidator
MyValidationLogger.Debug($"CloseReason: {e.CloseReason}") MyValidationLogger.Debug($"CloseReason: {e.CloseReason}")
MyValidationLogger.Debug($"Cancel: {e.Cancel}") MyValidationLogger.Debug($"Cancel: {e.Cancel}")
' *** KORREKTUR: StackTrace richtig erstellen *** Try
Dim st As New StackTrace(True) MyValidationLogger?.Debug($"StackTrace: {System.Environment.StackTrace}")
MyValidationLogger.Debug($"StackTrace: {st.ToString()}") Catch ex As Exception
MyValidationLogger?.Debug($"StackTrace konnte nicht ermittelt werden: {ex.Message}")
End Try
' Zusätzliche Diagnostik ' Zusätzliche Diagnostik
MyValidationLogger.Debug($"_FormClosing-Flag: {_FormClosing}") MyValidationLogger.Debug($"_FormClosing-Flag: {_FormClosing}")
@@ -898,15 +861,33 @@ Public Class frmValidator
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF frmValidation_FormClosing] nach ValidatorSearch.Close: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
End If End If
' ========== NEU: Temp-Ordner bereinigen ==========
Try
If COPY_WMFILE_2TEMP = True Then
MyValidationLogger.Debug("🗑️ Bereinige Temp-Ordner beim Schließen...")
CleanupTempFolder()
End If
Catch cleanupEx As Exception
MyValidationLogger.Warn($"⚠️ Fehler beim Bereinigen des Temp-Ordners: {cleanupEx.Message}")
End Try
' ========== ENDE NEU ==========
If LOG_HOTSPOTS Then ' Overlay schließen (falls vorhanden)
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms") Try
End If ForceCloseOverlay()
Catch ex As Exception
MyValidationLogger.Debug($"Overlay-Cleanup-Fehler ignoriert: {ex.Message}")
End Try
' Cleanup DocumentPathHandler ' Cleanup DocumentPathHandler
If _documentPathHandler IsNot Nothing Then If _documentPathHandler IsNot Nothing Then
_documentPathHandler.Cleanup() _documentPathHandler.Cleanup()
End If End If
If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF frmValidation_FormClosing] GESAMT: {(DateTime.Now - perfStart).TotalMilliseconds}ms")
End If
Finally Finally
' WICHTIG: Guard wird NICHT zurückgesetzt, da die Form nun wirklich schließt. ' WICHTIG: Guard wird NICHT zurückgesetzt, da die Form nun wirklich schließt.
@@ -919,6 +900,7 @@ Public Class frmValidator
DT_AdditionalSearches_Resultset_Docs.Clear() DT_AdditionalSearches_Resultset_Docs.Clear()
End If End If
End Sub End Sub
Private Sub CleanupTempFolder() Private Sub CleanupTempFolder()
Try Try
If String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) Then If String.IsNullOrEmpty(TEMP_DOCUMENT_FOLDER) Then
@@ -967,21 +949,20 @@ Public Class frmValidator
End Sub End Sub
Public Function Test_Additional_Data_Searches_Exist() As Boolean Public Function Test_Additional_Data_Searches_Exist() As Boolean
If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Then If DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0 Then
Dim oDataResultCommand As String Dim oDataResultCommand As String
Dim oDatatableDataResult As DataTable = Nothing Dim oDatatableDataResult As DataTable = Nothing
If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Then If DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0 Then
'Check whether DocData is there 'Check whether DocData is there
Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") oDataResultCommand = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("SQL_COMMAND")
oDataResultCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND")
oDataResultCommand = clsPatterns.ReplaceAllValues(oDataResultCommand, PanelValidatorControl, True) oDataResultCommand = clsPatterns.ReplaceAllValues(oDataResultCommand, PanelValidatorControl, True)
oDatatableDataResult = DatabaseFallback.GetDatatableWithConnection(oDataResultCommand, oConID) oDatatableDataResult = DatabaseFallback.GetDatatable(New GetDatatableOptions(oDataResultCommand, DatabaseType.ECM))
End If End If
Dim oDataResultsExist As Boolean = False Dim oDataResultsExist As Boolean = False
If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Then If DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0 Then
If Not IsNothing(oDatatableDataResult) Then If Not IsNothing(oDatatableDataResult) Then
If oDatatableDataResult.Rows.Count > 0 Then If oDatatableDataResult.Rows.Count > 0 Then
oDataResultsExist = True oDataResultsExist = True
@@ -1019,68 +1000,165 @@ Public Class frmValidator
Return False Return False
End If End If
End Function End Function
Private Function IsValidDocSearchResult(pDt As DataTable) As Boolean
If pDt Is Nothing Then Return False
Return pDt.Columns.Contains("DocID") AndAlso pDt.Columns.Contains("FULL_FILENAME")
End Function
Public Sub Load_Additional_Searches(Preload As Boolean) Public Sub Load_Additional_Searches(Preload As Boolean)
If _isLoadingAdditionalSearches Then
MyValidationLogger.Debug("Load_Additional_Searches: Reentrance erkannt, Aufruf wird übersprungen.")
Exit Sub
End If
_isLoadingAdditionalSearches = True
Try Try
AdditionalDocResultsExist = Test_Additional_Doc_Searches_Exist() MyValidationLogger.Debug("========================================")
AdditionalDataResultsExist = Test_Additional_Data_Searches_Exist() MyValidationLogger.Debug("=== Load_Additional_Searches START ===")
'If Test_Additional_Searches_Exist() Then MyValidationLogger.Debug($"Parameter: Preload={Preload}")
If AdditionalDataResultsExist = True Or AdditionalDocResultsExist = True Then MyValidationLogger.Debug($"Current_Document: Id={Current_Document?.Id}, Path={Current_Document?.FullPath}")
Try MyValidationLogger.Debug("========================================")
If RibbonPageCustItm1 <> "" Then
Attmt_bbtnitmShow.Caption = RibbonPageCustItm1
End If
rbnPgGroupAttmt.Visible = True
Attmnt_bbtnitm_LoadonClick.Checked = CONFIG.Config.ADDITIONAL_SEARCHES_LOAD_ONCLICK
Dim oConID As Int16 Dim allSQLSearches As DataTable = DT_FILTERED_PROFILE_SEARCHES_DATA
Dim oCommand As String Dim allDocSearches As DataTable = DT_FILTERED_PROFILE_SEARCHES_DOC
If Preload = True Then If allSQLSearches Is Nothing Then allSQLSearches = New DataTable()
_frmValidatorSearch.TabPreload(BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count, DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count, If allDocSearches Is Nothing Then allDocSearches = New DataTable()
BASEDATA_DT_PROFILE_SEARCHES_SQL, DT_FILTERED_PROFILE_SEARCHES_DOC)
If AdditionalDocResultsExist Then
_frmValidatorSearch._DTDocSearches = DT_FILTERED_PROFILE_SEARCHES_DOC
oConID = DT_FILTERED_PROFILE_SEARCHES_DOC.Rows(0).Item("CONN_ID")
oCommand = DT_FILTERED_PROFILE_SEARCHES_DOC.Rows(0).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, PanelValidatorControl, True)
_frmValidatorSearch.RefreshTabDoc(oConID, oCommand, 0, DT_FILTERED_PROFILE_SEARCHES_DOC.Rows(0).Item("TAB_TITLE"))
End If
Dim hasDATASearches As Boolean = allSQLSearches.Rows.Count > 0
Dim hasDOCSearches As Boolean = allDocSearches.Rows.Count > 0
Dim hasConfiguredSearches As Boolean = hasDATASearches OrElse hasDOCSearches
If AdditionalDataResultsExist Then If Not hasConfiguredSearches Then
_frmValidatorSearch._DTSQLSearches = BASEDATA_DT_PROFILE_SEARCHES_SQL AdditionalDataResultsExist = False
oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") AdditionalDocResultsExist = False
oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, PanelValidatorControl, True)
_frmValidatorSearch.Refresh_Load_GridSQL(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("TAB_TITLE"))
End If
Else
MyValidationLogger.Info("There are additional searches configured, but PRELOAD is false. So they won't be load!")
End If
Catch ex As Exception
MyValidationLogger.Error(ex)
End Try
bbtniRefreshSearches.Visibility = BarItemVisibility.Always
Else
MyValidationLogger.Debug("AdditionalData/Docresults = false!")
bbtniRefreshSearches.Visibility = BarItemVisibility.Never
rbnPgGroupAttmt.Visible = False rbnPgGroupAttmt.Visible = False
Exit Sub
End If End If
'Else If RibbonPageCustItm1 <> "" Then
' Logger.Debug("Not loading AdditionalSearches 2...!") Attmt_bbtnitmShow.Caption = RibbonPageCustItm1
' bbtniRefreshSearches.Visibility = BarItemVisibility.Never End If
'End If rbnPgGroupAttmt.Visible = True
Catch ex As Exception Attmnt_bbtnitm_LoadonClick.Checked = CONFIG.Config.ADDITIONAL_SEARCHES_LOAD_ONCLICK
MsgBox(ex.Message, MsgBoxStyle.Critical, ADDITIONAL_TITLE)
End Try
If _frmValidatorSearch Is Nothing OrElse _frmValidatorSearch.IsDisposed Then
_frmValidatorSearch = New frmValidatorSearch(Me, Environment)
End If
MyValidationLogger.Debug("--- Ergebnisse werden geprüft (DATA/DOC) ---")
Dim validSQLSearches As DataTable = allSQLSearches.Clone()
Dim validDocSearches As DataTable = allDocSearches.Clone()
If hasDATASearches Then
For i As Integer = 0 To allSQLSearches.Rows.Count - 1
Dim searchRow = allSQLSearches.Rows(i)
Try
Dim tabTitle As String = If(searchRow.Item("TAB_TITLE")?.ToString(), $"SQL-Tab {i}")
Dim sqlCommand As String = searchRow.Item("SQL_COMMAND")?.ToString()
Dim connId As Integer = If(IsDBNull(searchRow.Item("CONN_ID")), 1, CInt(searchRow.Item("CONN_ID")))
If String.IsNullOrEmpty(sqlCommand) Then Continue For
Dim replacedSql As String = clsPatterns.ReplaceAllValues(sqlCommand, Me.PanelValidatorControl, True)
Dim testDT = DatabaseFallback.GetDatatable(New GetDatatableOptions(replacedSql, DatabaseType.ECM) With {.ConnectionId = connId})
If testDT IsNot Nothing AndAlso testDT.Rows.Count > 0 Then
validSQLSearches.ImportRow(searchRow)
MyValidationLogger.Info($"✓ SQL-Search '{tabTitle}': {testDT.Rows.Count} Ergebnisse gefunden")
Else
MyValidationLogger.Debug($" SQL-Search '{tabTitle}': Keine Ergebnisse gefunden")
End If
Catch ex As Exception
MyValidationLogger.Error($"❌ Fehler beim Verarbeiten von SQL-Search Index {i}", ex)
End Try
Next
End If
If hasDOCSearches Then
For i As Integer = 0 To allDocSearches.Rows.Count - 1
Dim searchRow = allDocSearches.Rows(i)
Try
Dim tabTitle As String = If(searchRow.Item("TAB_TITLE")?.ToString(), $"Doc-Tab {i}")
Dim sqlCommand As String = searchRow.Item("SQL_COMMAND")?.ToString()
Dim connId As Integer = If(IsDBNull(searchRow.Item("CONN_ID")), 1, CInt(searchRow.Item("CONN_ID")))
If String.IsNullOrEmpty(sqlCommand) Then Continue For
Dim replacedSql As String = clsPatterns.ReplaceAllValues(sqlCommand, Me.PanelValidatorControl, True)
Dim testDT = DatabaseFallback.GetDatatable(New GetDatatableOptions(replacedSql, DatabaseType.ECM) With {.ConnectionId = connId})
If testDT IsNot Nothing AndAlso testDT.Rows.Count > 0 Then
If IsValidDocSearchResult(testDT) Then
validDocSearches.ImportRow(searchRow)
MyValidationLogger.Info($"✓ Doc-Search '{tabTitle}': {testDT.Rows.Count} Dokumente gefunden")
Else
MyValidationLogger.Warn($"⚠️ Doc-Search '{tabTitle}' liefert kein Dokument-Schema (DocID/FULL_FILENAME) und wird übersprungen.")
End If
Else
MyValidationLogger.Debug($" Doc-Search '{tabTitle}': Keine Ergebnisse gefunden")
End If
Catch ex As Exception
MyValidationLogger.Error($"❌ Fehler beim Verarbeiten von Doc-Search Index {i}", ex)
End Try
Next
End If
AdditionalDataResultsExist = validSQLSearches.Rows.Count > 0
AdditionalDocResultsExist = validDocSearches.Rows.Count > 0
MyValidationLogger.Debug($"Ergebnisprüfung abgeschlossen: AdditionalDataResultsExist={AdditionalDataResultsExist}, AdditionalDocResultsExist={AdditionalDocResultsExist}")
rbnPgGroupAttmt.Visible = AdditionalDataResultsExist OrElse AdditionalDocResultsExist
MyValidationLogger.Debug($"rbnPgGroupAttmt.Visible gesetzt auf: {rbnPgGroupAttmt.Visible} | Stack: {New System.Diagnostics.StackTrace(True).ToString().Split(vbCrLf)(1)}")
If Not AdditionalDataResultsExist AndAlso Not AdditionalDocResultsExist Then
If _frmValidatorSearch IsNot Nothing AndAlso Not _frmValidatorSearch.IsDisposed Then
Dim emptySql As DataTable = allSQLSearches.Clone()
Dim emptyDoc As DataTable = allDocSearches.Clone()
_frmValidatorSearch._DTDATASearches = emptySql
_frmValidatorSearch._DTDocSearches = emptyDoc
_frmValidatorSearch.TabPreload(0, 0, emptySql, emptyDoc)
End If
MyValidationLogger.Debug("Load_Additional_Searches: Keine Ergebnisse (DATA/DOC) -> Exit.")
Exit Sub
End If
If Preload Then
MyValidationLogger.Debug("--- PRELOAD-MODUS aktiviert (mit Show) ---")
Dim preloadSQL As DataTable = If(allSQLSearches.Rows.Count > 0, allSQLSearches.Copy(), allSQLSearches.Clone())
Dim preloadDoc As DataTable = If(allDocSearches.Rows.Count > 0, allDocSearches.Copy(), allDocSearches.Clone())
_frmValidatorSearch._DTDATASearches = preloadSQL
_frmValidatorSearch._DTDocSearches = preloadDoc
_frmValidatorSearch.TabPreload(preloadSQL.Rows.Count, preloadDoc.Rows.Count, preloadSQL, preloadDoc)
' Sichtbarkeit explizit setzen, bevor Return
rbnPgGroupAttmt.Visible = AdditionalDataResultsExist OrElse AdditionalDocResultsExist
' Vorgabe: Preload=True => Formular öffnen
If Not _frmValidatorSearch.Visible Then
_frmValidatorSearch.Show()
End If
Return
End If
MyValidationLogger.Debug("--- NORMAL-MODUS aktiviert (nur vorbereiten, NICHT Show) ---")
Dim sqlForUi As DataTable = If(validSQLSearches.Rows.Count > 0, validSQLSearches.Copy(), validSQLSearches.Clone())
Dim docForUi As DataTable = If(validDocSearches.Rows.Count > 0, validDocSearches.Copy(), validDocSearches.Clone())
_frmValidatorSearch._DTDATASearches = sqlForUi
_frmValidatorSearch._DTDocSearches = docForUi
_frmValidatorSearch.TabPreload(sqlForUi.Rows.Count, docForUi.Rows.Count, sqlForUi, docForUi)
' Vorgabe: Preload=False => nur vorbereiten, KEIN Show hier
MyValidationLogger.Debug("Load_Additional_Searches: Vorbereitung abgeschlossen (Preload=False), Formular bleibt geschlossen.")
Catch ex As Exception
MyValidationLogger.Error("❌ Kritischer Fehler in Load_Additional_Searches", ex)
Finally
_isLoadingAdditionalSearches = False
MyValidationLogger.Debug("=== Load_Additional_Searches END ===")
End Try
End Sub End Sub
Private Sub EnsureSqlControlLookup() Private Sub EnsureSqlControlLookup()
If _CachedSqlControlsByGuid IsNot Nothing Then If _CachedSqlControlsByGuid IsNot Nothing Then
@@ -1336,14 +1414,14 @@ Public Class frmValidator
End If End If
' ========== ENDE ========== ' ========== ENDE ==========
oSQL = $"SELECT IIF(LANG.CAPTION IS NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* from TBPM_CONTROL_TABLE T INNER JOIN TBPM_PROFILE_CONTROLS T1 ON T.CONTROL_ID = T1.GUID oSQL = $"SELECT IIF(LANG.CAPTION IS NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* from TBPM_CONTROL_TABLE T WITH (NOLOCK) INNER JOIN TBPM_PROFILE_CONTROLS T1 WITH (NOLOCK) ON T.CONTROL_ID = T1.GUID
LEFT JOIN (SELECT * FROM TBPM_CONTOL_TABLE_LANG WHERE LANG_CODE = '{USER_LANGUAGE}') LANG ON T.GUID = LANG.COL_ID WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE" LEFT JOIN (SELECT * FROM TBPM_CONTOL_TABLE_LANG WHERE LANG_CODE = '{USER_LANGUAGE}') LANG ON T.GUID = LANG.COL_ID WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE"
DT_COLUMNS_GRID = DatabaseFallback.GetDatatable("TBPM_CONTROL_TABLE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { DT_COLUMNS_GRID = DatabaseFallback.GetDatatable("TBPM_CONTROL_TABLE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
.FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID} AND LANG_CODE = '{USER_LANGUAGE}' ", .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID} AND LANG_CODE = '{USER_LANGUAGE}' ",
.SortByColumn = "SEQUENCE" .SortByColumn = "SEQUENCE"
}) })
oSQL = "SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.CONNECTION_ID, T.SQL_COMMAND, T.SPALTENNAME,T.FORMATTYPE,T.FORMATSTRING, T.ADVANCED_LOOKUP from TBPM_CONTROL_TABLE T, TBPM_PROFILE_CONTROLS T1 WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = " & CURRENT_ProfilGUID & " AND LEN(T.SQL_COMMAND) > 0 ORDER BY T.SEQUENCE" oSQL = "SELECT T1.GUID As CONTROL_ID, T1.PROFIL_ID, T.CONNECTION_ID, T.SQL_COMMAND, T.SPALTENNAME,T.FORMATTYPE,T.FORMATSTRING, T.ADVANCED_LOOKUP from TBPM_CONTROL_TABLE T WITH (NOLOCK), TBPM_PROFILE_CONTROLS T1 WITH (NOLOCK) WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T1.PROFIL_ID = " & CURRENT_ProfilGUID & " AND LEN(T.SQL_COMMAND) > 0 ORDER BY T.SEQUENCE"
'DT_COLUMNS_GRID_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE") 'DT_COLUMNS_GRID_WITH_SQL = DataASorDB.GetDatatable("DD_ECM", oSQL, "DTGRID_SQL_DEFINITION", $"PROFIL_ID = {CURRENT_ProfilGUID}", "SEQUENCE")
DT_COLUMNS_GRID_WITH_SQL = DatabaseFallback.GetDatatable("DTGRID_SQL_DEFINITION", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { DT_COLUMNS_GRID_WITH_SQL = DatabaseFallback.GetDatatable("DTGRID_SQL_DEFINITION", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
.FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}", .FilterExpression = $"PROFIL_ID = {CURRENT_ProfilGUID}",
@@ -1664,7 +1742,7 @@ Public Class frmValidator
Catch ex As Exception Catch ex As Exception
Dim st As New StackTrace(True) Dim st As New StackTrace(True)
st = New StackTrace(ex, True) st = New StackTrace(ex, True)
'Logger.Error(ex) 'MyValidationLogger.Error(ex)
Dim omsg = $"Unexpected Error in Create_Controls (Select Case) [{oControlInfo}] - ERROR: {ex.Message}" Dim omsg = $"Unexpected Error in Create_Controls (Select Case) [{oControlInfo}] - ERROR: {ex.Message}"
MyValidationLogger.Warn(omsg) MyValidationLogger.Warn(omsg)
If DEBUG = False Then MsgBox(omsg, MsgBoxStyle.Critical, "Attention:") If DEBUG = False Then MsgBox(omsg, MsgBoxStyle.Critical, "Attention:")
@@ -2783,7 +2861,8 @@ Public Class frmValidator
' KstVerantwortliche bereits befüllt wurde. ' KstVerantwortliche bereits befüllt wurde.
If changedControlNames.Count > 0 Then If changedControlNames.Count > 0 Then
MyValidationLogger.Debug($"[SetControlValues_FromControl] Führe Controls2beEnabled für {changedControlNames.Count} geänderte Controls aus...") MyValidationLogger.Debug($"[SetControlValues_FromControl] Führe Controls2beEnabled für {changedControlNames.Count} geänderte Controls aus...")
_CachedSqlScalarCache.Clear() ' SQL_ENABLE-Cache invalidieren, damit frische Werte geprüft werden ' WICHTIG: SQL-Cache leeren ist NICHT nötig, da Controls2beEnabled bereits frische DB-Werte holt
' _CachedSqlScalarCache.Clear() wurde entfernt, um Performance zu verbessern
For Each changedName As String In changedControlNames For Each changedName As String In changedControlNames
Try Try
Controls2beEnabled(changedName) Controls2beEnabled(changedName)
@@ -2946,7 +3025,7 @@ Public Class frmValidator
Finally Finally
_suppressLookupEvents = wasSuppressed _suppressLookupEvents = wasSuppressed
_DependingControl_In_Action = False _DependingControl_In_Action = False
LOGGER.Debug($"[LookupControl_DependingControls] _suppressLookupEvents zurückgesetzt auf [{wasSuppressed}]") MyValidationLogger.Debug($"[LookupControl_DependingControls] _suppressLookupEvents zurückgesetzt auf [{wasSuppressed}]")
End Try End Try
Next Next
End Sub End Sub
@@ -3425,16 +3504,16 @@ Public Class frmValidator
MyValidationLogger.Debug("Skipping: Invalid SQL_ENABLE_ON_LOAD") MyValidationLogger.Debug("Skipping: Invalid SQL_ENABLE_ON_LOAD")
Continue For Continue For
End If End If
LOGGER.Debug($"[Controls2B_EnDisabled_onLoad] BEFORE ReplaceAllValues for Control [{oENABLE_CtrlName}]") MyValidationLogger.Debug($"[Controls2B_EnDisabled_onLoad] BEFORE ReplaceAllValues for Control [{oENABLE_CtrlName}]")
LOGGER.Debug($" SQL Command: [{oSqlCommand}]") MyValidationLogger.Debug($" SQL Command: [{oSqlCommand}]")
LOGGER.Debug($" Panel Controls Count: [{PanelValidatorControl?.Controls?.Count - 1}]") MyValidationLogger.Debug($" Panel Controls Count: [{PanelValidatorControl?.Controls?.Count - 1}]")
Try Try
oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True)
LOGGER.Debug($"[Controls2B_EnDisabled_onLoad] AFTER ReplaceAllValues: [{oSqlCommand}]") MyValidationLogger.Debug($"[Controls2B_EnDisabled_onLoad] AFTER ReplaceAllValues: [{oSqlCommand}]")
Catch replaceEx As Exception Catch replaceEx As Exception
LOGGER.Error(replaceEx) MyValidationLogger.Error(replaceEx)
MyValidationLogger.Error($"❌ [Controls2B_EnDisabled_onLoad] ReplaceAllValues CRASH für [{oENABLE_CtrlName}]: {replaceEx.Message}") MyValidationLogger.Error($"❌ [Controls2B_EnDisabled_onLoad] ReplaceAllValues CRASH für [{oENABLE_CtrlName}]: {replaceEx.Message}")
LOGGER.Error($" Original SQL: [{oSqlCommand}]") MyValidationLogger.Error($" Original SQL: [{oSqlCommand}]")
Continue For ' ← Überspringe dieses Control und mache weiter Continue For ' ← Überspringe dieses Control und mache weiter
End Try End Try
' FIX: Null/Empty-Check nach ReplaceAllValues — verhindert Crash bei leeren Control-Werten ' FIX: Null/Empty-Check nach ReplaceAllValues — verhindert Crash bei leeren Control-Werten
@@ -3680,14 +3759,14 @@ Public Class frmValidator
Dim cs As String = DatabaseFallback.GetConnectionString(oConnectionId) Dim cs As String = DatabaseFallback.GetConnectionString(oConnectionId)
If allgFunk.CheckValue_Exists(dr.Item("SQL_UEBERPRUEFUNG"), "@Eingabe", control.Text, dr.Item("TYP"), cs, CURRENT_ProfilGUID) = True Then If allgFunk.CheckValue_Exists(dr.Item("SQL_UEBERPRUEFUNG"), "@Eingabe", control.Text, dr.Item("TYP"), cs, CURRENT_ProfilGUID) = True Then
Return True
Else
errormessage = "the input-value '" & control.Text & "' is not existing in database!"
My.Settings.Save()
Return False
End If
Else
Return True Return True
Else
errormessage = "the input-value '" & control.Text & "' is not existing in database!"
My.Settings.Save()
Return False
End If
Else
Return True
End If End If
End If End If
Next Next
@@ -3878,28 +3957,42 @@ Public Class frmValidator
MyValidationLogger.Debug($"GetDocPathWindows: Filestore is {ClassConstants.OpModeFS_ZF}") MyValidationLogger.Debug($"GetDocPathWindows: Filestore is {ClassConstants.OpModeFS_ZF}")
End If End If
If COPY_WMFILE_2TEMP = True Then If COPY_WMFILE_2TEMP = True Then
' Optionen konfigurieren ' Optionen konfigurieren
Dim options As New ClassDocumentPathHandler.DocumentPathOptions With { Dim options As New DocumentPathHandler.DocumentPathOptions With {
.EnableMapping = True, .EnableMapping = True,
.WMSuffix = WMSUFFIX, .WMSuffix = WMSUFFIX,
.SpecificDrive = If(Len(MAP_SHARE_DRIVE) = 1, MAP_SHARE_DRIVE, ""), .SpecificDrive = If(Len(MAP_SHARE_DRIVE) = 1, MAP_SHARE_DRIVE, ""),
.DriveBlacklist = MAP_BLACKLIST, .DriveBlacklist = MAP_BLACKLIST,
.CopyToTemp = True, .CopyToTemp = True,
.TempFolder = TEMP_DOCUMENT_FOLDER, .TempFolder = TEMP_DOCUMENT_FOLDER,
.UnmapAfterCopy = True .UnmapAfterCopy = True
} }
' Verarbeiten ' Verarbeiten
Dim result = _documentPathHandler.ProcessDocumentPath(oFilePath_from_DB, options) Dim result = _documentPathHandler.ProcessDocumentPath(oFilePath_from_DB, options)
If result.Success Then ' Guard: FinalPath muss nutzbar sein
If result.Success AndAlso
Not String.IsNullOrWhiteSpace(result.FinalPath) AndAlso
File.Exists(result.FinalPath) Then
DocPathWindows = result.FinalPath DocPathWindows = result.FinalPath
WMDocPathWindows = oFilePath_from_DB WMDocPathWindows = oFilePath_from_DB
MyValidationLogger.Info($"✓ Dokument verarbeitet: [{Path.GetFileName(result.FinalPath)}]") MyValidationLogger.Info($"✓ Dokument verarbeitet: [{Path.GetFileName(result.FinalPath)}]")
Else Else
MyValidationLogger.Error($"❌ Fehler: {result.ErrorMessage}") MyValidationLogger.Warn($"⚠️ Dokumentpfad-Verarbeitung fehlgeschlagen: {result.ErrorMessage}")
MyValidationLogger.Warn($"⚠️ Fallback auf Originalpfad: [{oFilePath_from_DB}]")
DocPathWindows = oFilePath_from_DB DocPathWindows = oFilePath_from_DB
WMDocPathWindows = oFilePath_from_DB
' Sicherheitsprüfung des Fallbacks
If Not File.Exists(DocPathWindows) Then
MyValidationLogger.Error($"❌ Auch Fallback-Pfad existiert nicht: [{DocPathWindows}]")
Return False
End If
End If End If
Else Else
DocPathWindows = oFilePath_from_DB DocPathWindows = oFilePath_from_DB
@@ -3982,9 +4075,12 @@ Public Class frmValidator
OverrideAll = False OverrideAll = False
_Indexe_Loaded = False _Indexe_Loaded = False
MyValidationLogger.Debug("In Load_Next_Document") MyValidationLogger.Debug("In Load_Next_Document")
' Alte Temp-Datei aufräumen (falls vorhanden) If Not first AndAlso COPY_WMFILE_2TEMP = True Then
If Not first Then Try
CleanupCurrentTempFile() CleanupCurrentTempFile()
Catch cleanupEx As Exception
MyValidationLogger.Warn($"⚠️ Fehler beim Löschen der vorherigen Temp-Datei: {cleanupEx.Message}")
End Try
End If End If
Dim layoutSuspended As Boolean = False Dim layoutSuspended As Boolean = False
Try Try
@@ -4857,7 +4953,7 @@ Public Class frmValidator
End If End If
Else Else
MyValidationLogger.Debug($"GetVariableValuefromSource - IDBCase...") MyValidationLogger.Debug($"GetVariableValuefromSource - IDBCase - IndexName: {oSourceIndexName}, IDBTyp: {oIDBTyp}, FromIDB: {FromIDB}")
oValuefromSource = IDBData.GetVariableValue(oSourceIndexName, oIDBTyp, FromIDB) oValuefromSource = IDBData.GetVariableValue(oSourceIndexName, oIDBTyp, FromIDB)
End If End If
Return oValuefromSource Return oValuefromSource
@@ -4870,7 +4966,7 @@ Public Class frmValidator
Sub FillIndexValues(first As Boolean, Optional SingleAttribute As String = "") Sub FillIndexValues(first As Boolean, Optional SingleAttribute As String = "")
If _SetControlValue_In_Action AndAlso Not String.IsNullOrWhiteSpace(SingleAttribute) Then If _SetControlValue_In_Action AndAlso Not String.IsNullOrWhiteSpace(SingleAttribute) Then
MyValidationLogger.Debug("FillIndexValues", $"Übersprungen: SetControlValue läuft für [{SingleAttribute}]") MyValidationLogger.Debug("FillIndexValues", $"⛔ BLOCKIERT während SetControlValue - Attribut [{SingleAttribute}] nicht aus IDB neu laden")
Exit Sub Exit Sub
End If End If
@@ -5702,11 +5798,16 @@ Public Class frmValidator
Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME") Dim oDEPENDING_COLUMN = oRow.Item("SPALTENNAME")
Dim oSqlCommand = oRow.Item("SQL_COMMAND") Dim oSqlCommand = oRow.Item("SQL_COMMAND")
Dim oCONNID = 1 Dim oCONNID = 1
If Not IsNullOrEmpty(oRow.Item("CONN_ID")) Then Try
oCONNID = CInt(oRow.Item("CONN_ID")) If Not IsNullOrEmpty(oRow.Item("CONNECTION_ID")) Then
Else oCONNID = CInt(oRow.Item("CONNECTION_ID"))
MyValidationLogger.Warn($"⚠️ CONN_ID is null or empty for CONTROL_ID {oDEPENDING_CTRL_ID} - defaulting to 1") Else
End If MyValidationLogger.Warn($"⚠️ CONNECTION_ID is null or empty for CONTROL_ID {oDEPENDING_CTRL_ID} - defaulting to 1") 'vormals CONN_ID
End If
Catch ex As Exception
MyValidationLogger.Warn($"⚠️ FillIndexValues - Error in creating dropdown for Grid - CONTROL_ID {oDEPENDING_CTRL_ID}: " & ex.Message)
End Try
Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP") Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP")
oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True)
@@ -5815,7 +5916,7 @@ Public Class frmValidator
_Indexe_Loaded = True _Indexe_Loaded = True
Load_Additional_Searches(Not CONFIG.Config.ADDITIONAL_SEARCHES_LOAD_ONCLICK) Load_Additional_Searches(Not CONFIG.Config.ADDITIONAL_SEARCHES_LOAD_ONCLICK)
MyValidationLogger.Debug($"[FillIndexValues] Nach Load_Additional_Searches: rbnPgGroupAttmt.Visible={rbnPgGroupAttmt.Visible}")
If LOG_HOTSPOTS Then If LOG_HOTSPOTS Then
MyValidationLogger.Info($"[PERF FillIndexValues] Nach Load_Additional_Searches: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms") MyValidationLogger.Info($"[PERF FillIndexValues] Nach Load_Additional_Searches: {(DateTime.Now - perfLastCheck).TotalMilliseconds}ms")
perfLastCheck = DateTime.Now perfLastCheck = DateTime.Now
@@ -6250,10 +6351,10 @@ Public Class frmValidator
Dim oGUID = oFinalIndexRow.Item("GUID") Dim oGUID = oFinalIndexRow.Item("GUID")
Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND") Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND")
Dim oConnectionID = 1 Dim oConnectionID = 1
If Not IsNullOrEmpty(oFinalIndexRow.Item("CONN_ID")) Then If Not IsNullOrEmpty(oFinalIndexRow.Item("CONNECTION_ID")) Then
oConnectionID = CInt(oFinalIndexRow.Item("CONN_ID")) oConnectionID = CInt(oFinalIndexRow.Item("CONNECTION_ID"))
Else Else
MyValidationLogger.Warn($"⚠️ CONN_ID is null or empty for final indexing of index {oFinalIndex} - defaulting to 1") MyValidationLogger.Warn($"⚠️ CONNECTION_ID is null or empty for final indexing of index {oFinalIndex} - defaulting to 1") 'vormals CONN_ID
End If End If
oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, PanelValidatorControl, True) oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, PanelValidatorControl, True)
If IsNothing(oSQLCommand) Then If IsNothing(oSQLCommand) Then
@@ -7623,7 +7724,7 @@ Public Class frmValidator
If IDB_ACTIVE Then If IDB_ACTIVE Then
If oMissing = False Then If oMissing = False Then
If Not IDBData.CommitBatch() Then If Not IDBData.CommitBatch() Then
LOGGER.Warn("CommitBatch failed in Check_UpdateIndexe") MyValidationLogger.Warn("CommitBatch failed in Check_UpdateIndexe")
oMissing = True oMissing = True
End If End If
Else Else
@@ -8231,13 +8332,50 @@ Public Class frmValidator
End Sub End Sub
Sub TryOpen_Additional_Searches() Sub TryOpen_Additional_Searches()
Try Try
_frmValidatorSearch?.Close() MyValidationLogger.Debug("=== TryOpen_Additional_Searches START ===")
_frmValidatorSearch = New frmValidatorSearch(Me, Environment)
_frmValidatorSearch.Show() Dim hasDATASearches As Boolean = (DT_FILTERED_PROFILE_SEARCHES_DATA IsNot Nothing AndAlso DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0)
Dim hasDOCSearches As Boolean = (DT_FILTERED_PROFILE_SEARCHES_DOC IsNot Nothing AndAlso DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count > 0)
If Not hasDATASearches AndAlso Not hasDOCSearches Then Exit Sub
' 1) Immer vorbereiten (ohne Show)
Load_Additional_Searches(False)
If _frmValidatorSearch Is Nothing OrElse _frmValidatorSearch.IsDisposed Then
MyValidationLogger.Debug("Instantiating frmValidatorSearch for additional searches...")
_frmValidatorSearch = New frmValidatorSearch(Me, Environment)
End If
' 2) Öffnen nur hier per User-Aktion
Dim wasVisible As Boolean = _frmValidatorSearch.Visible
If Not wasVisible Then
MyValidationLogger.Debug("Showing frmValidatorSearch for additional searches...")
_frmValidatorSearch.Show()
Else
MyValidationLogger.Debug("Bringing frmValidatorSearch to front for additional searches...")
_frmValidatorSearch.BringToFront()
End If
' 3) WICHTIG: Nach erstem Show erneut binden (UI ist jetzt vollständig initialisiert)
If Not wasVisible Then
Me.BeginInvoke(New Action(Sub()
Try
If _frmValidatorSearch IsNot Nothing AndAlso
Not _frmValidatorSearch.IsDisposed AndAlso
_frmValidatorSearch.Visible Then
MyValidationLogger.Debug("TryOpen_Additional_Searches: Post-Show Rebind gestartet")
Load_Additional_Searches(False)
End If
Catch ex As Exception
MyValidationLogger.Error("❌ Fehler beim Post-Show Rebind in TryOpen_Additional_Searches", ex)
End Try
End Sub))
End If
Catch ex As Exception Catch ex As Exception
MyValidationLogger.Error(ex) MyValidationLogger.Error("❌ Fehler in TryOpen_Additional_Searches", ex)
End Try End Try
Load_Additional_Searches(True)
End Sub End Sub
Private Sub bbtniRefresh_ItemClick(sender As Object, e As ItemClickEventArgs) Handles bbtniRefresh.ItemClick Private Sub bbtniRefresh_ItemClick(sender As Object, e As ItemClickEventArgs) Handles bbtniRefresh.ItemClick
' ========== KRITISCH: Events KOMPLETT blockieren während Refresh ========== ' ========== KRITISCH: Events KOMPLETT blockieren während Refresh ==========
@@ -8416,6 +8554,7 @@ Public Class frmValidator
End Sub End Sub
Private Sub Attmt_bbtnitmShow_Click(sender As Object, e As ItemClickEventArgs) Handles Attmt_bbtnitmShow.ItemClick Private Sub Attmt_bbtnitmShow_Click(sender As Object, e As ItemClickEventArgs) Handles Attmt_bbtnitmShow.ItemClick
MyValidationLogger.Debug("Attmt_bbtnitmShow.ItemClick...")
TryOpen_Additional_Searches() TryOpen_Additional_Searches()
End Sub End Sub
@@ -8627,13 +8766,13 @@ Public Class frmValidator
'For Each oControl As Control In PanelValidatorControl.Controls 'For Each oControl As Control In PanelValidatorControl.Controls
' If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Attribute = PROFIL_NOT_RESP_COMMENT_ATTR Then ' If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Attribute = PROFIL_NOT_RESP_COMMENT_ATTR Then
' Dim oName = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Name ' Dim oName = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Name
' Logger.Debug($"Got the control for the NR Attribute :{oName}..Gettin the value...") ' MyValidationLogger.Debug($"Got the control for the NR Attribute :{oName}..Gettin the value...")
' If oControl.GetType() = GetType(DevExpress.XtraEditors.TextEdit) Or oControl.GetType() = GetType(MemoEdit) Then ' If oControl.GetType() = GetType(DevExpress.XtraEditors.TextEdit) Or oControl.GetType() = GetType(MemoEdit) Then
' Try ' Try
' DirectCast(oControl, DevExpress.XtraEditors.TextEdit).EditValue = frmDialog.oComment ' DirectCast(oControl, DevExpress.XtraEditors.TextEdit).EditValue = frmDialog.oComment
' Exit For ' Exit For
' Catch ex As Exception ' Catch ex As Exception
' Logger.Warn($"⚠️ Unexpected error in Setting EditValue NotResponsible: {ex.Message}") ' MyValidationLogger.Warn($"⚠️ Unexpected error in Setting EditValue NotResponsible: {ex.Message}")
' End Try ' End Try
' End If ' End If
' End If ' End If

View File

@@ -138,7 +138,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlDocSearch1.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlDocSearch1.Size" type="System.Drawing.Size, System.Drawing">
<value>349, 557</value> <value>279, 446</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="GridControlDocSearch1.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlDocSearch1.TabIndex" type="System.Int32, mscorlib">
@@ -187,7 +187,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlDocSearch2.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlDocSearch2.Size" type="System.Drawing.Size, System.Drawing">
<value>349, 557</value> <value>279, 446</value>
</data> </data>
<data name="GridControlDocSearch2.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlDocSearch2.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -229,7 +229,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlDocSearch3.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlDocSearch3.Size" type="System.Drawing.Size, System.Drawing">
<value>349, 557</value> <value>279, 446</value>
</data> </data>
<data name="GridControlDocSearch3.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlDocSearch3.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -271,7 +271,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlDocSearch4.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlDocSearch4.Size" type="System.Drawing.Size, System.Drawing">
<value>349, 557</value> <value>279, 446</value>
</data> </data>
<data name="GridControlDocSearch4.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlDocSearch4.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -313,7 +313,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlDocSearch5.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlDocSearch5.Size" type="System.Drawing.Size, System.Drawing">
<value>349, 557</value> <value>279, 446</value>
</data> </data>
<data name="GridControlDocSearch5.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlDocSearch5.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -454,7 +454,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlSearch1.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlSearch1.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 560</value> <value>275, 448</value>
</data> </data>
<data name="GridControlSearch1.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlSearch1.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -502,7 +502,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlSearch2.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlSearch2.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>275, 448</value>
</data> </data>
<data name="GridControlSearch2.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlSearch2.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -520,7 +520,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabPageSearch2.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPageSearch2.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>344, 560</value>
</data> </data>
<data name="XtraTabPageSearch2.Text" xml:space="preserve"> <data name="XtraTabPageSearch2.Text" xml:space="preserve">
<value>Search2</value> <value>Search2</value>
@@ -544,7 +544,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlSearch3.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlSearch3.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>275, 448</value>
</data> </data>
<data name="GridControlSearch3.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlSearch3.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -562,7 +562,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabPageSearch3.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPageSearch3.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>344, 560</value>
</data> </data>
<data name="XtraTabPageSearch3.Text" xml:space="preserve"> <data name="XtraTabPageSearch3.Text" xml:space="preserve">
<value>XtraTabPage1</value> <value>XtraTabPage1</value>
@@ -586,7 +586,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlSearch4.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlSearch4.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>275, 448</value>
</data> </data>
<data name="GridControlSearch4.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlSearch4.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -604,7 +604,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabPageSearch4.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPageSearch4.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>344, 560</value>
</data> </data>
<data name="XtraTabPageSearch4.Text" xml:space="preserve"> <data name="XtraTabPageSearch4.Text" xml:space="preserve">
<value>XtraTabPage2</value> <value>XtraTabPage2</value>
@@ -628,7 +628,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlSearch5.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlSearch5.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>275, 448</value>
</data> </data>
<data name="GridControlSearch5.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlSearch5.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@@ -646,7 +646,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabPageSearch5.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPageSearch5.Size" type="System.Drawing.Size, System.Drawing">
<value>511, 560</value> <value>344, 560</value>
</data> </data>
<data name="XtraTabPageSearch5.Text" xml:space="preserve"> <data name="XtraTabPageSearch5.Text" xml:space="preserve">
<value>XtraTabPage3</value> <value>XtraTabPage3</value>

View File

@@ -1,4 +1,5 @@
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Data.SqlClient
Imports System.IO Imports System.IO
Imports System.Runtime.InteropServices Imports System.Runtime.InteropServices
Imports DevExpress.Utils Imports DevExpress.Utils
@@ -7,12 +8,13 @@ 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 DevExpress.XtraTab Imports DevExpress.XtraTab
Imports DigitalData.GUIs.Common
Imports DigitalData.GUIs.Common.DocumentResultList Imports DigitalData.GUIs.Common.DocumentResultList
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.EDMI.API.Constants Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.ZooFlow.Constants
Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.ZooFlow
Imports DigitalData.GUIs.Common Imports DigitalData.Modules.ZooFlow.Constants
Public Class frmValidatorSearch Public Class frmValidatorSearch
<DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)> <DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)>
@@ -43,7 +45,7 @@ Public Class frmValidatorSearch
#End Region #End Region
Public formLoaded As Boolean = False Public formLoaded As Boolean = False
Public _DTDocSearches As DataTable Public _DTDocSearches As DataTable
Public _DTSQLSearches As DataTable Public _DTDATASearches As DataTable
Private _frmValidator As frmValidator 'You need a reference to Form1 Private _frmValidator As frmValidator 'You need a reference to Form1
Private Shared BW_DocPath As String Private Shared BW_DocPath As String
Private Shared BW_DocID As Integer Private Shared BW_DocID As Integer
@@ -51,7 +53,8 @@ Public Class frmValidatorSearch
Private Documentloader As Loader Private Documentloader As Loader
Private Property OperationMode As OperationMode Private Property OperationMode As OperationMode
Private ReadOnly Environment As Environment Private ReadOnly Environment As Environment
Private _documentPathHandler As ClassDocumentPathHandler Private _documentPathHandler As DocumentPathHandler
Private _suppressTabEvents As Boolean = False
Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment) Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment)
@@ -80,52 +83,354 @@ Public Class frmValidatorSearch
End Function End Function
Public Sub TabPreload(TabCountSQL As Integer, TabCountDoc As Integer, DTSQL As DataTable, DTDOC As DataTable) Public Sub TabPreload(TabCountSQL As Integer, TabCountDoc As Integer, DTSQL As DataTable, DTDOC As DataTable)
Try Try
SplitContainerSearches.Panel1Collapsed = IIf(DTSQL.Rows.Count > 0, False, True) LOGGER.Debug("=== TabPreload START ===")
SplitContainerSearches.Panel2Collapsed = IIf(DTDOC.Rows.Count > 0, False, True) LOGGER.Debug($"Parameters: TabCountSQL={TabCountSQL}, TabCountDoc={TabCountDoc}, DTSQL.Rows={If(DTSQL?.Rows.Count, 0)}, DTDOC.Rows={If(DTDOC?.Rows.Count, 0)}")
If Me.InvokeRequired() Then
Me.Invoke(Sub() TabPreload(TabCountSQL, TabCountDoc, DTSQL, DTDOC))
Else
'#### SQL Tabs Design Laden
If DTSQL.Rows.Count > 0 Then
LOGGER.Debug(String.Format("[{0} SQL-Definitions]", DTSQL.Rows.Count))
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
XtraTabControlSQL.TabPages(p).PageVisible = False
End If
Next
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
Exit For
End If
XtraTabControlSQL.TabPages(p).Text = DTSQL.Rows(p).Item("TAB_TITLE")
Next
End If
If DTDOC.Rows.Count > 0 Then
LOGGER.Debug(String.Format("[{0} Doc-Definitions]", DTDOC.Rows.Count))
'#### Doc Tabs Design Laden
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then
XtraTabControlDocs.TabPages(p).PageVisible = False
End If
Next
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then
Exit For
End If
XtraTabControlDocs.TabPages(p).Text = DTDOC.Rows(p).Item("TAB_TITLE")
Next
End If
' Validierung der Parameter
If DTSQL Is Nothing Then
LOGGER.Warn("⚠️ DTSQL ist Nothing")
DTSQL = New DataTable()
End If
If DTDOC Is Nothing Then
LOGGER.Warn("⚠️ DTDOC ist Nothing")
DTDOC = New DataTable()
End If End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
' Thread-Synchronisation
If Me.InvokeRequired() Then
LOGGER.Debug("InvokeRequired=True, rufe auf UI-Thread auf")
Me.Invoke(Sub() TabPreload(TabCountSQL, TabCountDoc, DTSQL, DTDOC))
Return
End If
LOGGER.Debug("Ausführung auf UI-Thread")
' ============================================================
' WICHTIG: Variablen VOR Try-Block deklarieren
' ============================================================
Dim hasSQLData As Boolean = False
Dim hasDocData As Boolean = False
Dim actualSQLTabCount As Integer = 0
Dim actualDocTabCount As Integer = 0
' ============================================================
' KRITISCH: Events DEAKTIVIEREN während der Rekonfiguration
' ============================================================
_suppressTabEvents = True
LOGGER.Debug("🚫 Tab-Events deaktiviert")
Try
' KRITISCH: DataTables SOFORT zuweisen
_DTDATASearches = DTSQL
_DTDocSearches = DTDOC
LOGGER.Debug($"✓ _DTDATASearches und _DTDocSearches zugewiesen: SQL={_DTDATASearches.Rows.Count}, Doc={_DTDocSearches.Rows.Count}")
' TabCount-Validierung
actualSQLTabCount = Math.Min(TabCountSQL, DTSQL.Rows.Count)
actualDocTabCount = Math.Min(TabCountDoc, DTDOC.Rows.Count)
If actualSQLTabCount <> TabCountSQL Then
LOGGER.Warn($"⚠️ TabCountSQL korrigiert: {TabCountSQL} → {actualSQLTabCount}")
End If
If actualDocTabCount <> TabCountDoc Then
LOGGER.Warn($"⚠️ TabCountDoc korrigiert: {TabCountDoc} → {actualDocTabCount}")
End If
' Panel-Sichtbarkeit
hasSQLData = DTSQL.Rows.Count > 0 AndAlso actualSQLTabCount > 0
hasDocData = DTDOC.Rows.Count > 0 AndAlso actualDocTabCount > 0
SplitContainerSearches.Panel1Collapsed = Not hasSQLData
SplitContainerSearches.Panel2Collapsed = Not hasDocData
LOGGER.Debug($"Panel1Collapsed (SQL)={SplitContainerSearches.Panel1Collapsed}, Panel2Collapsed (Doc)={SplitContainerSearches.Panel2Collapsed}")
' ============================================================
' KRITISCH: DocumentViewer nur bei Doc-Searches sichtbar
' ============================================================
If hasDocData Then
If Not DocumentViewer1.Visible Then
DocumentViewer1.Visible = True
LOGGER.Debug("✓ DocumentViewer1 sichtbar gemacht (Doc-Searches vorhanden)")
End If
Else
If DocumentViewer1.Visible Then
DocumentViewer1.Visible = False
LOGGER.Debug("✓ DocumentViewer1 ausgeblendet (keine Doc-Searches)")
End If
End If
' #### SQL Tabs konfigurieren
If hasSQLData Then
LOGGER.Debug($"Konfiguriere SQL-Tabs: {DTSQL.Rows.Count} Definitionen")
' ALLE Tabs unsichtbar machen
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
XtraTabControlSQL.TabPages(p).PageVisible = False
Next
LOGGER.Debug($"Alle {XtraTabControlSQL.TabPages.Count} SQL-Tabs auf PageVisible=False gesetzt")
' Nur benötigte Tabs sichtbar machen
Dim processedTabs As Integer = 0
For p As Integer = 0 To Math.Min(actualSQLTabCount - 1, XtraTabControlSQL.TabPages.Count - 1)
If p < DTSQL.Rows.Count Then
Try
Dim tabTitle As String = If(DTSQL.Rows(p).Item("TAB_TITLE")?.ToString(), $"Tab {p + 1}")
XtraTabControlSQL.TabPages(p).Text = tabTitle
XtraTabControlSQL.TabPages(p).PageVisible = True
processedTabs += 1
LOGGER.Debug($"SQL-Tab {p}: Text='{tabTitle}', PageVisible=True")
Catch ex As Exception
LOGGER.Error($"❌ Fehler beim Konfigurieren von SQL-Tab {p}", ex)
End Try
End If
Next
LOGGER.Info($"✓ {processedTabs} SQL-Tabs konfiguriert")
Else
LOGGER.Debug("Keine SQL-Daten, alle Tabs ausblenden")
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
XtraTabControlSQL.TabPages(p).PageVisible = False
Next
End If
' #### Doc Tabs konfigurieren
If hasDocData Then
LOGGER.Debug($"Konfiguriere Doc-Tabs: {DTDOC.Rows.Count} Definitionen")
' ALLE Tabs unsichtbar machen
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
XtraTabControlDocs.TabPages(p).PageVisible = False
Next
LOGGER.Debug($"Alle {XtraTabControlDocs.TabPages.Count} Doc-Tabs auf PageVisible=False gesetzt")
' Nur benötigte Tabs sichtbar machen
Dim processedTabs As Integer = 0
For p As Integer = 0 To Math.Min(actualDocTabCount - 1, XtraTabControlDocs.TabPages.Count - 1)
If p < DTDOC.Rows.Count Then
Try
Dim tabTitle As String = If(DTDOC.Rows(p).Item("TAB_TITLE")?.ToString(), $"Tab {p + 1}")
XtraTabControlDocs.TabPages(p).Text = tabTitle
XtraTabControlDocs.TabPages(p).PageVisible = True
processedTabs += 1
LOGGER.Debug($"Doc-Tab {p}: Text='{tabTitle}', PageVisible=True")
Catch ex As Exception
LOGGER.Error($"❌ Fehler beim Konfigurieren von Doc-Tab {p}", ex)
End Try
End If
Next
LOGGER.Info($"✓ {processedTabs} Doc-Tabs konfiguriert")
Else
LOGGER.Debug("Keine Doc-Daten, alle Tabs ausblenden")
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
XtraTabControlDocs.TabPages(p).PageVisible = False
Next
End If
Finally
' ============================================================
' KRITISCH: Events REAKTIVIEREN nach Rekonfiguration
' ============================================================
_suppressTabEvents = False
LOGGER.Debug("✓ Tab-Events reaktiviert")
End Try
' JETZT manuell den ersten sichtbaren Tab aktivieren
' ERSETZE im unteren Teil von TabPreload den SQL-Block:
If hasSQLData AndAlso XtraTabControlSQL.TabPages.Count > 0 Then
Dim firstVisibleSqlIndex As Integer = -1
For i As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
If XtraTabControlSQL.TabPages(i).PageVisible Then
firstVisibleSqlIndex = i
Exit For
End If
Next
If firstVisibleSqlIndex >= 0 AndAlso _DTDATASearches IsNot Nothing AndAlso firstVisibleSqlIndex < _DTDATASearches.Rows.Count Then
LOGGER.Debug($"Setze SQL SelectedTabPageIndex manuell auf {firstVisibleSqlIndex}")
Dim prevSuppress As Boolean = _suppressTabEvents
_suppressTabEvents = True
XtraTabControlSQL.SelectedTabPageIndex = firstVisibleSqlIndex
_suppressTabEvents = prevSuppress
Try
Dim selectedRow As DataRow = _DTDATASearches.Rows(firstVisibleSqlIndex)
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {firstVisibleSqlIndex}")
If Not String.IsNullOrEmpty(oCommand) Then
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
LOGGER.Debug($"SQL-Tab {firstVisibleSqlIndex}: erzwungener Initial-Refresh")
RefreshTabSQL(oConID, oCommand, firstVisibleSqlIndex, oTabCaption)
End If
Catch ex As Exception
LOGGER.Error("❌ Fehler beim SQL-Initial-Refresh in TabPreload", ex)
End Try
End If
End If
' ERSETZE im unteren Teil von TabPreload den Doc-Block:
If hasDocData AndAlso XtraTabControlDocs.TabPages.Count > 0 Then
Dim firstVisibleDocIndex As Integer = -1
For i As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
If XtraTabControlDocs.TabPages(i).PageVisible Then
firstVisibleDocIndex = i
Exit For
End If
Next
If firstVisibleDocIndex >= 0 AndAlso _DTDocSearches IsNot Nothing AndAlso firstVisibleDocIndex < _DTDocSearches.Rows.Count Then
LOGGER.Debug($"Setze Doc SelectedTabPageIndex manuell auf {firstVisibleDocIndex}")
Dim prevSuppress As Boolean = _suppressTabEvents
_suppressTabEvents = True
XtraTabControlDocs.SelectedTabPageIndex = firstVisibleDocIndex
_suppressTabEvents = prevSuppress
Try
Dim selectedRow As DataRow = _DTDocSearches.Rows(firstVisibleDocIndex)
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {firstVisibleDocIndex}")
If Not String.IsNullOrEmpty(oCommand) Then
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
LOGGER.Debug($"Doc-Tab {firstVisibleDocIndex}: erzwungener Initial-Refresh")
RefreshTabDoc(oConID, oCommand, firstVisibleDocIndex, oTabCaption)
End If
Catch ex As Exception
LOGGER.Error("❌ Fehler beim Doc-Initial-Refresh in TabPreload", ex)
End Try
End If
End If
LOGGER.Debug("=== TabPreload END ===")
Catch ex As Exception
LOGGER.Error("❌ Fehler in TabPreload", ex)
LOGGER.Error($"Stack Trace: {ex.StackTrace}")
_suppressTabEvents = False ' Sicherstellung
Try
SplitContainerSearches.Panel1Collapsed = True
SplitContainerSearches.Panel2Collapsed = True
DocumentViewer1.Visible = False
Catch collapseEx As Exception
LOGGER.Error("❌ Fehler beim Kollabieren der Panels", collapseEx)
End Try
End Try
End Sub
Private Sub XtraTabControlSQL_SelectedPageChanged(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlSQL.SelectedPageChanged
Try
' KRITISCH: Event unterdrücken während TabPreload läuft
If _suppressTabEvents Then
LOGGER.Debug($"🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex})")
Exit Sub
End If
LOGGER.Debug($"=== XtraTabControlSQL_SelectedPageChanged START - SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex} ===")
If _DTDATASearches Is Nothing Then
LOGGER.Warn("⚠️ _DTDATASearches ist Nothing - Exit Sub")
Exit Sub
End If
If XtraTabControlSQL.SelectedTabPageIndex >= 0 AndAlso
Not XtraTabControlSQL.TabPages(XtraTabControlSQL.SelectedTabPageIndex).PageVisible Then
LOGGER.Debug("SQL-Tab ist nicht sichtbar - Exit Sub")
Exit Sub
End If
If XtraTabControlSQL.SelectedTabPageIndex >= _DTDATASearches.Rows.Count Then
LOGGER.Error($"❌ SelectedTabPageIndex ({XtraTabControlSQL.SelectedTabPageIndex}) >= _DTDATASearches.Rows.Count ({_DTDATASearches.Rows.Count}) - Exit Sub")
Exit Sub
End If
Dim selectedRow As DataRow = _DTDATASearches.Rows(XtraTabControlSQL.SelectedTabPageIndex)
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
Dim oTabIndex As Integer = XtraTabControlSQL.SelectedTabPageIndex
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {oTabIndex}")
LOGGER.Debug($"Tab-Info: '{oTabCaption}', ConID={oConID}, TabIndex={oTabIndex}")
If String.IsNullOrEmpty(oCommand) Then
LOGGER.Warn($"⚠️ SQL_COMMAND ist leer für Tab '{oTabCaption}' - Exit Sub")
Exit Sub
End If
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
LOGGER.Debug($"SQL ersetzt, Länge={oCommand.Length} Zeichen")
' ============================================================
' KRITISCH: RefreshTabSQL aufrufen!
' ============================================================
LOGGER.Debug($"Rufe RefreshTabSQL auf für Tab '{oTabCaption}'")
RefreshTabSQL(oConID, oCommand, oTabIndex, oTabCaption)
LOGGER.Debug("=== XtraTabControlSQL_SelectedPageChanged END ===")
Catch ex As Exception
LOGGER.Error("❌ Fehler in XtraTabControlSQL_SelectedPageChanged", ex)
LOGGER.Error($"Details: SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex}, _DTDATASearches.Rows.Count={If(_DTDATASearches?.Rows.Count, 0)}")
End Try
End Sub
Private Sub XtraTabControlDocs_SelectedPageChanged_1(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlDocs.SelectedPageChanged
Try
' KRITISCH: Event unterdrücken während TabPreload läuft
If _suppressTabEvents Then
LOGGER.Debug($"🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex})")
Exit Sub
End If
LOGGER.Debug($"=== XtraTabControlDocs_SelectedPageChanged START - SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex} ===")
If _DTDocSearches Is Nothing Then
LOGGER.Warn("⚠️ _DTDocSearches ist Nothing - Exit Sub")
Exit Sub
End If
If XtraTabControlDocs.SelectedTabPageIndex < 0 Then
LOGGER.Debug("SelectedTabPageIndex < 0 - Exit Sub")
Exit Sub
End If
If XtraTabControlDocs.SelectedTabPageIndex >= _DTDocSearches.Rows.Count Then
LOGGER.Error($"❌ SelectedTabPageIndex ({XtraTabControlDocs.SelectedTabPageIndex}) >= _DTDocSearches.Rows.Count ({_DTDocSearches.Rows.Count}) - Exit Sub")
Exit Sub
End If
Dim selectedRow As DataRow = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex)
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
Dim oTabIndex As Integer = XtraTabControlDocs.SelectedTabPageIndex
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {oTabIndex}")
LOGGER.Debug($"Tab-Info: '{oTabCaption}', ConID={oConID}, TabIndex={oTabIndex}")
If String.IsNullOrEmpty(oCommand) Then
LOGGER.Warn($"⚠️ SQL_COMMAND ist leer für Tab '{oTabCaption}' - Exit Sub")
Exit Sub
End If
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
LOGGER.Debug($"SQL ersetzt, Länge={oCommand.Length} Zeichen")
' ============================================================
' KRITISCH: RefreshTabDoc aufrufen!
' ============================================================
LOGGER.Debug($"Rufe RefreshTabDoc auf für Tab '{oTabCaption}'")
RefreshTabDoc(oConID, oCommand, oTabIndex, oTabCaption)
LOGGER.Debug("=== XtraTabControlDocs_SelectedPageChanged END ===")
Catch ex As Exception
LOGGER.Error("❌ Fehler in XtraTabControlDocs_SelectedPageChanged", ex)
LOGGER.Error($"Details: SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex}, _DTDocSearches.Rows.Count={If(_DTDocSearches?.Rows.Count, 0)}")
End Try
End Sub End Sub
Public Sub RefreshTabSQL(ConID As Integer, SQLCommand As String, TabIndex As Integer, TabCaption As String) Public Sub RefreshTabSQL(ConID As Integer, SQLCommand As String, TabIndex As Integer, TabCaption As String)
If Me.InvokeRequired() Then If Me.InvokeRequired() Then
@@ -238,28 +543,31 @@ Public Class frmValidatorSearch
myGridview = GridViewDocSearch5 myGridview = GridViewDocSearch5
End Select End Select
myGridControl.ContextMenuStrip = ContextMenuStripWMFile myGridControl.ContextMenuStrip = ContextMenuStripWMFile
'Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_ConId(SQLCommand, ConID)
Dim oDatatable As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(SQLCommand, DatabaseType.ECM) With { Dim oDatatable As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(SQLCommand, DatabaseType.ECM) With {
.ConnectionId = ConID .ConnectionId = ConID
}) })
If Not IsNothing(oDatatable) Then If Not IsNothing(oDatatable) Then
XtraTabControlDocs.TabPages(TabIndex).Text = $"{TabCaption} ({oDatatable.Rows.Count})" XtraTabControlDocs.TabPages(TabIndex).Text = $"{TabCaption} ({oDatatable.Rows.Count})"
clsWMDocGrid.DTDocuments = oDatatable
'Select Case TabIndex
' Case 0
' GridControlDocSearch1.DataSource = oDatatable
' Case 1
' GridControlDocSearch2.DataSource = oDatatable
' Case 2
' GridControlDocSearch3.DataSource = oDatatable
' Case 3
' GridControlDocSearch4.DataSource = oDatatable
' Case 4
' GridControlDocSearch5.DataSource = oDatatable
'End Select ' FIX: Nicht jedes Doc-Tab liefert echte Dokumentspalten
Dim hasDocId As Boolean = oDatatable.Columns.Contains("DocID")
Dim hasFullFilename As Boolean = oDatatable.Columns.Contains("FULL_FILENAME")
If Not hasDocId OrElse Not hasFullFilename Then
LOGGER.Warn($"⚠️ Refresh_Load_GridDoc: Tab [{TabCaption}] liefert kein Dokument-Schema (DocID/FULL_FILENAME fehlt). Fallback auf Standard-Grid.")
myGridControl.DataSource = oDatatable
myGridview.BestFitColumns(True)
clsWMDocGrid.DTDocuments = Nothing
ToolStripDropDownButtonFile.Visible = False
tslblState.Text = $"Tab [{TabCaption}] refreshed (fallback grid) - {Now}"
Exit Sub
End If
clsWMDocGrid.DTDocuments = oDatatable
Create_GridControl(myGridview, oDatatable) Create_GridControl(myGridview, oDatatable)
Dim oxmlPath As String = "" Dim oxmlPath As String = ""
oxmlPath = Get_DocGrid_Layout_Filename(XtraTabControlDocs.SelectedTabPageIndex) oxmlPath = Get_DocGrid_Layout_Filename(XtraTabControlDocs.SelectedTabPageIndex)
@@ -465,7 +773,7 @@ Public Class frmValidatorSearch
SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance
End If End If
' DocumentPathHandler initialisieren ' DocumentPathHandler initialisieren
_documentPathHandler = New ClassDocumentPathHandler(LOGGER) _documentPathHandler = New DocumentPathHandler(LOGCONFIG)
ToolStripDropDownButtonFile.Visible = False ToolStripDropDownButtonFile.Visible = False
End Sub End Sub
@@ -522,24 +830,7 @@ Public Class frmValidatorSearch
formLoaded = True formLoaded = True
End Sub End Sub
Private Sub XtraTabControlSQL_SelectedPageChanged(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlSQL.SelectedPageChanged
If IsNothing(_DTSQLSearches) Then Exit Sub
Dim oConID = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("CONN_ID")
Dim oCommand = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
Dim oTabIndex = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("TAB_INDEX")
Dim oTabCaption = _DTSQLSearches.Rows(XtraTabControlSQL.SelectedTabPageIndex).Item("TAB_TITLE")
RefreshTabSQL(oConID, oCommand, oTabIndex, oTabCaption)
End Sub
Private Sub XtraTabControlDocs_SelectedPageChanged_1(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlDocs.SelectedPageChanged
If IsNothing(_DTDocSearches) Then Exit Sub
Dim oConID = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("CONN_ID")
Dim oCommand = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
Dim oTabIndex = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("TAB_INDEX")
Dim oTabCaption = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex).Item("TAB_TITLE")
RefreshTabDoc(oConID, oCommand, oTabIndex, oTabCaption)
End Sub
Private Sub EigenschaftenDateiToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EigenschaftenDateiToolStripMenuItem.Click Private Sub EigenschaftenDateiToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EigenschaftenDateiToolStripMenuItem.Click
Show_File_Properties() Show_File_Properties()
@@ -568,99 +859,126 @@ Public Class frmValidatorSearch
Next Next
End Sub End Sub
Sub Refresh_DocID(myGrid As GridView) Sub Refresh_DocID(myGrid As GridView)
Try If myGrid Is Nothing Then
LOGGER.Warn("⚠️ Refresh_DocID: myGrid is Nothing - Exit Sub")
Return
End If
Try
myGrid.ShowLoadingPanel() myGrid.ShowLoadingPanel()
clsWMDocGrid.ActiveDocGrid = myGrid clsWMDocGrid.ActiveDocGrid = myGrid
clsWMDocGrid.ActiveDocGrid.EndSelection() clsWMDocGrid.ActiveDocGrid.EndSelection()
clsWMDocGrid.GetDocItems() clsWMDocGrid.GetDocItems()
If ToolStripDropDownButtonFile.Visible = False Then If ToolStripDropDownButtonFile.Visible = False Then
ToolStripDropDownButtonFile.Visible = True ToolStripDropDownButtonFile.Visible = True
End If End If
If clsWMDocGrid.SELECTED_DOC_ID <> 0 Then
If LastDocID = clsWMDocGrid.SELECTED_DOC_ID Then
myGrid.HideLoadingPanel()
Exit Sub
End If
Dim msg = "DocID: " & clsWMDocGrid.SELECTED_DOC_ID.ToString
tslblDocID.Text = msg
ToolStripDropDownButtonFile.Enabled = True
Dim oDocument As DocumentResultList.Document = Nothing
' Load DocumentInfo
oDocument = Documentloader.Load(clsWMDocGrid.SELECTED_DOC_ID, clsWMDocGrid.SELECTED_DOC_PATH)
If Not IsNothing(DocumentViewer1) Then If clsWMDocGrid.SELECTED_DOC_ID = 0 Then
Dim oFileName = $"{clsWMDocGrid.SELECTED_DOC_ID}.{oDocument.Extension}"
If Not IsNothing(DocumentViewer1) AndAlso Not IsNothing(oDocument.Contents) Then
' Optionen konfigurieren
Dim options As New ClassDocumentPathHandler.DocumentPathOptions With {
.EnableMapping = False,
.CopyToTemp = COPY_WMFILE_2TEMP,
.TempFolder = TEMP_DOCUMENT_FOLDER,
.UnmapAfterCopy = False
}
' Verarbeiten
Dim result = _documentPathHandler.ProcessDocumentPath(clsWMDocGrid.SELECTED_DOC_PATH, options)
If result.Success Then
DocumentViewer1.LoadFile_FromPath(result.FinalPath)
LastDocID = clsWMDocGrid.SELECTED_DOC_ID
DocumentViewer1.RightViewOnly(USER_RIGHT_VIEW_ONLY)
LOGGER.Info($"✓ [ValidatorSearch] Dokument geladen: [{Path.GetFileName(result.FinalPath)}]")
Else
LOGGER.Error($"❌ [ValidatorSearch] {result.ErrorMessage}")
statlbl.Text = $"Fehler: {result.ErrorMessage}"
End If
Else
statlbl.Text = "odocument.content is nothing, Check Your log"
End If
End If
Else
tslblDocID.Text = "DocRow not selected" tslblDocID.Text = "DocRow not selected"
ToolStripDropDownButtonFile.Enabled = False ToolStripDropDownButtonFile.Enabled = False
Return
End If End If
If LastDocID = clsWMDocGrid.SELECTED_DOC_ID Then
Return
End If
tslblDocID.Text = "DocID: " & clsWMDocGrid.SELECTED_DOC_ID.ToString
ToolStripDropDownButtonFile.Enabled = True
LOGGER.Debug($"✓ DocID aktualisiert: {clsWMDocGrid.SELECTED_DOC_ID}")
If IsNothing(Documentloader) Then
If OperationMode = Nothing Then
OperationMode = GetOperationMode()
End If
Documentloader = New Loader(LOGCONFIG, OperationMode, Environment.Service.Client, Environment.User)
End If
If _documentPathHandler Is Nothing Then
_documentPathHandler = New DocumentPathHandler(LOGCONFIG)
End If
Dim oDocument As DocumentResultList.Document = Documentloader.Load(clsWMDocGrid.SELECTED_DOC_ID, clsWMDocGrid.SELECTED_DOC_PATH)
If IsNothing(oDocument) Then
LOGGER.Warn($"⚠️ Refresh_DocID: Documentloader.Load lieferte Nothing (DocID={clsWMDocGrid.SELECTED_DOC_ID})")
statlbl.Text = "Dokument konnte nicht geladen werden."
Return
Else
LOGGER.Debug($"✓ Documentloader.Load erfolgreich für DocID={clsWMDocGrid.SELECTED_DOC_ID}, Pfad: {clsWMDocGrid.SELECTED_DOC_PATH}")
End If
If Not IsNothing(DocumentViewer1) AndAlso Not IsNothing(oDocument.Contents) Then
Dim options As New DocumentPathHandler.DocumentPathOptions With {
.EnableMapping = COPY_WMFILE_2TEMP AndAlso Not String.IsNullOrWhiteSpace(WMSUFFIX),
.WMSuffix = WMSUFFIX,
.SpecificDrive = If(Len(MAP_SHARE_DRIVE) = 1, MAP_SHARE_DRIVE, ""),
.DriveBlacklist = MAP_BLACKLIST,
.CopyToTemp = COPY_WMFILE_2TEMP,
.TempFolder = TEMP_DOCUMENT_FOLDER,
.UnmapAfterCopy = True
}
Dim result = _documentPathHandler.ProcessDocumentPath(clsWMDocGrid.SELECTED_DOC_PATH, options)
If result.Success Then
DocumentViewer1.LoadFile_FromPath(result.FinalPath)
LastDocID = clsWMDocGrid.SELECTED_DOC_ID
DocumentViewer1.RightViewOnly(USER_RIGHT_VIEW_ONLY)
LOGGER.Debug($"✓ [ValidatorSearch] Dokument geladen: [{Path.GetFileName(result.FinalPath)}]")
Else
LOGGER.Error($"❌ [ValidatorSearch] {result.ErrorMessage}")
statlbl.Text = $"Fehler: {result.ErrorMessage}"
End If
Else
statlbl.Text = "Dokumentinhalt ist leer."
End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
Finally
Try
myGrid.HideLoadingPanel()
Catch
End Try
End Try End Try
myGrid.HideLoadingPanel()
End Sub End Sub
Private Sub GridViewDocSearch1_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewDocSearch1.FocusedRowChanged Private Sub GridViewDocSearch_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch1.FocusedRowChanged,
Refresh_DocID(GridViewDocSearch1) GridViewDocSearch2.FocusedRowChanged,
GridViewDocSearch3.FocusedRowChanged,
GridViewDocSearch4.FocusedRowChanged,
GridViewDocSearch5.FocusedRowChanged
If Not Me.Visible Then
Return
End If
Dim activeGrid As GridView = TryCast(sender, GridView)
If activeGrid Is Nothing Then
Return
End If
LOGGER.Debug($"FocusedRowChanged ausgelöst: [{activeGrid.Name}]")
Refresh_DocID(activeGrid)
End Sub End Sub
Private Sub GridViewDocSearch2_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch2.FocusedRowChanged Private Sub GridViewDocSearch_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch1.FocusedColumnChanged,
Refresh_DocID(GridViewDocSearch2) GridViewDocSearch2.FocusedColumnChanged,
End Sub GridViewDocSearch3.FocusedColumnChanged,
Private Sub GridViewDocSearch3_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch3.FocusedRowChanged GridViewDocSearch4.FocusedColumnChanged,
Refresh_DocID(GridViewDocSearch3) GridViewDocSearch5.FocusedColumnChanged
End Sub
Private Sub GridViewDocSearch4_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch4.FocusedRowChanged
Refresh_DocID(GridViewDocSearch4)
End Sub
Private Sub GridViewDocSearch5_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch5.FocusedRowChanged
Refresh_DocID(GridViewDocSearch5)
End Sub
Private Sub GridViewDocSearch1_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch1.FocusedColumnChanged If Not Me.Visible Then
Refresh_DocID(GridViewDocSearch1) Return
End Sub End If
Private Sub GridViewDocSearch2_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch2.FocusedColumnChanged Dim activeGrid As GridView = TryCast(sender, GridView)
Refresh_DocID(GridViewDocSearch2) If activeGrid Is Nothing Then
End Sub Return
Private Sub GridViewDocSearch3_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch3.FocusedColumnChanged End If
Refresh_DocID(GridViewDocSearch3)
End Sub LOGGER.Debug($"FocusedColumnChanged ausgelöst: [{activeGrid.Name}]")
Private Sub GridViewDocSearch4_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch4.FocusedColumnChanged Refresh_DocID(activeGrid)
Refresh_DocID(GridViewDocSearch4)
End Sub
Private Sub GridViewDocSearch5_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch5.FocusedColumnChanged
Refresh_DocID(GridViewDocSearch5)
End Sub End Sub
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
@@ -756,14 +1074,16 @@ Public Class frmValidatorSearch
End Sub End Sub
Private Sub ToolStripButtonRefreshSearches_Click(sender As Object, e As EventArgs) Handles ToolStripButtonRefreshSearches.Click Private Sub ToolStripButtonRefreshSearches_Click(sender As Object, e As EventArgs) Handles ToolStripButtonRefreshSearches.Click
If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Then If DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0 Then
LOGGER.Debug($"There are [{BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count}] SQLSearches configured!") LOGGER.Debug($"There are [{DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count}] DATASearches configured!")
_DTSQLSearches = BASEDATA_DT_PROFILE_SEARCHES_SQL _DTDATASearches = DT_FILTERED_PROFILE_SEARCHES_DATA
Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID") Dim oConID = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("CONN_ID")
Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND") Dim oCommand = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True) oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
XtraTabControlSQL.SelectedTabPageIndex = 0 XtraTabControlSQL.SelectedTabPageIndex = 0
Refresh_Load_GridSQL(oConID, oCommand, 0, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("TAB_TITLE")) Refresh_Load_GridSQL(oConID, oCommand, 0, DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("TAB_TITLE"))
Else
LOGGER.Debug("No DATASearches configured for this profile!")
End If End If
If DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then If DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then
LOGGER.Debug($"There are [{DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count}] DocSearches configured!") LOGGER.Debug($"There are [{DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count}] DocSearches configured!")
@@ -773,6 +1093,8 @@ Public Class frmValidatorSearch
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True) oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
XtraTabControlDocs.SelectedTabPageIndex = 0 XtraTabControlDocs.SelectedTabPageIndex = 0
RefreshTabDoc(oConID, oCommand, 0, DT_FILTERED_PROFILE_SEARCHES_DOC.Rows(0).Item("TAB_TITLE")) RefreshTabDoc(oConID, oCommand, 0, DT_FILTERED_PROFILE_SEARCHES_DOC.Rows(0).Item("TAB_TITLE"))
Else
LOGGER.Debug("No DocSearches configured for this profile!")
End If End If
End Sub End Sub
@@ -817,48 +1139,57 @@ Public Class frmValidatorSearch
End Sub End Sub
Sub ReLoad_Active_SQLTab() Sub ReLoad_Active_SQLTab()
Dim oTabIndex = XtraTabControlSQL.SelectedTabPageIndex Dim oTabIndex = XtraTabControlSQL.SelectedTabPageIndex
Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("CONN_ID") Dim oConID = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(oTabIndex).Item("CONN_ID")
Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("SQL_COMMAND") Dim oCommand = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(oTabIndex).Item("SQL_COMMAND")
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True) oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
RefreshTabSQL(oConID, oCommand, oTabIndex, BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("TAB_TITLE")) RefreshTabSQL(oConID, oCommand, oTabIndex, DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(oTabIndex).Item("TAB_TITLE"))
End Sub End Sub
Private Sub GridControlDocSearch1_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch1.DoubleClick Private Sub GridControlDocSearch1_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch1.DoubleClick
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch1) Refresh_DocID(GridViewDocSearch1)
FileShow() FileShow()
End Sub End Sub
Private Sub GridControlDocSearch2_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch2.DoubleClick Private Sub GridControlDocSearch2_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch2.DoubleClick
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch2) Refresh_DocID(GridViewDocSearch2)
FileShow() FileShow()
End Sub End Sub
Private Sub GridControlDocSearch3_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch3.DoubleClick Private Sub GridControlDocSearch3_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch3.DoubleClick
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch3) Refresh_DocID(GridViewDocSearch3)
FileShow() FileShow()
End Sub End Sub
Private Sub GridControlDocSearch4_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch4.DoubleClick Private Sub GridControlDocSearch4_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch4.DoubleClick
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch4) Refresh_DocID(GridViewDocSearch4)
FileShow() FileShow()
End Sub End Sub
Private Sub GridControlDocSearch5_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch5.DoubleClick Private Sub GridControlDocSearch5_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch5.DoubleClick
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch5) Refresh_DocID(GridViewDocSearch5)
FileShow() FileShow()
End Sub End Sub
Private Sub GridControlDocSearch1_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch1.Click Private Sub GridControlDocSearch1_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch1.Click
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch1) Refresh_DocID(GridViewDocSearch1)
End Sub End Sub
Private Sub GridControlDocSearch2_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch2.Click Private Sub GridControlDocSearch2_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch2.Click
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch2) Refresh_DocID(GridViewDocSearch2)
End Sub End Sub
Private Sub GridControlDocSearch3_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch3.Click Private Sub GridControlDocSearch3_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch3.Click
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch3) Refresh_DocID(GridViewDocSearch3)
End Sub End Sub
Private Sub GridControlDocSearch4_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch4.Click Private Sub GridControlDocSearch4_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch4.Click
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch4) Refresh_DocID(GridViewDocSearch4)
End Sub End Sub
Private Sub GridControlDocSearch5_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch5.Click Private Sub GridControlDocSearch5_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch5.Click
If Not Me.Visible Then Return
Refresh_DocID(GridViewDocSearch5) Refresh_DocID(GridViewDocSearch5)
End Sub End Sub

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -151,9 +151,9 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
</Reference> </Reference>
<Reference Include="DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DigitalData.Controls.DocumentViewer, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Controls.DocumentViewer, Version=2.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\Controls.DocumentViewer\obj\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Controls.LookupGrid"> <Reference Include="DigitalData.Controls.LookupGrid">
<HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
@@ -462,7 +462,6 @@
<Compile Include="ClassConfig.vb" /> <Compile Include="ClassConfig.vb" />
<Compile Include="ClassConstants.vb" /> <Compile Include="ClassConstants.vb" />
<Compile Include="ClassControlCreator.vb" /> <Compile Include="ClassControlCreator.vb" />
<Compile Include="ClassDocumentPathHandler.vb" />
<Compile Include="ClassDragDrop.vb" /> <Compile Include="ClassDragDrop.vb" />
<Compile Include="ClassFinalIndex.vb" /> <Compile Include="ClassFinalIndex.vb" />
<Compile Include="ClassFinalizeDoc.vb" /> <Compile Include="ClassFinalizeDoc.vb" />
@@ -1258,7 +1257,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="logtaskflow.txt" /> <Content Include="logtaskflow.txt" />
<Content Include="taskFLOW-TEST-Debug.txt" />
<None Include="Changelog.md" /> <None Include="Changelog.md" />
<Content Include="DataColumnExpression.txt" /> <Content Include="DataColumnExpression.txt" />
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" /> <Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />