23 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
Developer01
df3f8167fe Automatisches Mappen und Arbeiten mit Temporärem Verzeichnis
ConnectionID sicher auf 1
2026-04-24 11:15:09 +02:00
Developer01
376dc3390f DigitalData.Modules.Language.Utils auskommentiert 2026-04-21 09:59:02 +02:00
Developer01
a2a96c0f8d Verweise 2026-04-21 09:50:16 +02:00
Developer01
771fca60f0 Verweise nach Domänenupdate erneuern 2026-04-21 09:50:06 +02:00
Developer01
a84dafef0b Leerzeile wegen Push 2026-04-14 08:11:14 +02:00
Developer01
4cb3bd9eb1 TestPush 2026-04-13 09:28:09 +02:00
Developer01
43ad71f520 Leerzeilen 2026-03-30 15:13:23 +02:00
Developer01
724a37ad47 Leerzeile entfernt 2026-03-30 12:45:04 +02:00
Developer01
f5ca487158 Session.Logout 2026-03-27 13:50:30 +01:00
Developer01
73e69b3eef 2.8.7.1 2026-03-27 12:48:25 +01:00
Developer01
cb51396952 FORMEL_SQL release Candidate 2026-03-25 15:20:39 +01:00
Developer01
c464f24681 Vor SetControlValuesChange 2026-03-20 13:43:09 +01:00
Developer01
969e07eb17 Vor Controls2B_EnDisabled Change 2026-03-11 16:43:34 +01:00
Developer01
7629d54fe1 2.8.4 Beta IDB replace Hochkomma bei Delete, Währungskonvertierung 2026-03-11 12:08:46 +01:00
Developer01
41e46f9dbb Version 2.8.3 zu Test an MK und HE 2026-03-03 12:55:01 +01:00
Developer01
a192267d96 MS Anpassung Speicherung IDBData 2026-03-02 16:29:14 +01:00
Developer01
a0d3a487d8 Vor Ändeurng LoogUpControl 2026-02-27 11:46:09 +01:00
Developer01
54744a0531 Vor GridControl Length 2026-02-26 10:37:05 +01:00
57 changed files with 12019 additions and 7252 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"/>
@@ -137,40 +131,60 @@
<File Id="Limilabs.Mail" Name="Mail.dll" Source="Mail.dll" KeyPath="no" /> <File Id="Limilabs.Mail" Name="Mail.dll" Source="Mail.dll" KeyPath="no" />
<File Id="NLog" Name="NLog.dll" Source="NLog.dll"/> <File Id="NLog" Name="NLog.dll" Source="NLog.dll"/>
</Component> </Component>
<Component Id="RuntimeLibs" Guid="F7170744-3DB5-4275-ACCD-7F3B9BDE1D6E">
<Component Id="Oracle" Guid="CF76DB5D-3263-450F-96C6-F02F5447A0A1"> <File Id="Newtonsoft.Json" Name="Newtonsoft.Json.dll" Source="Newtonsoft.Json.dll" KeyPath="yes" />
<File Id="Oracle.ManagedDataAccess" Name="Oracle.ManagedDataAccess.dll" Source="P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll" KeyPath="yes"/> <File Id="System.Text.Json" Name="System.Text.Json.dll" Source="System.Text.Json.dll" />
</Component> <File Id="FirebirdSql.Data.FirebirdClient" Name="FirebirdSql.Data.FirebirdClient.dll" Source="FirebirdSql.Data.FirebirdClient.dll" />
<File Id="EntityFramework" Name="EntityFramework.dll" Source="EntityFramework.dll" />
<Component Id="PDFsharp" Guid="9cd1cfb7-3f84-4a8b-aa51-642b723fcd70"> <File Id="EntityFramework.SqlServer" Name="EntityFramework.SqlServer.dll" Source="EntityFramework.SqlServer.dll" />
<File Id="PdfSharpgdi" Name="PdfSharp-gdi.dll" Source="P:\Visual Studio Projekte\Bibliotheken\PdfSharp-gdi.dll" KeyPath="yes"/> <File Id="EntityFramework.Firebird" Name="EntityFramework.Firebird.dll" Source="EntityFramework.Firebird.dll" />
</Component> </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.CAD" Name="GdPicture.NET.14.CAD.dll" />
<File Id="GdPicture.NET.14.CAD.DWG" Name="GdPicture.NET.14.CAD.DWG.dll" />
<File Id="GdPicture.NET.14.filters" Name="GdPicture.NET.14.filters.dll" /> <File Id="GdPicture.NET.14.filters" Name="GdPicture.NET.14.filters.dll" />
<File Id="GdPicture.NET.14.filters64" Name="GdPicture.NET.14.filters.64.dll" /> <File Id="GdPicture.NET.14.filters64" Name="GdPicture.NET.14.filters.64.dll" />
<File Id="GdPicture.NET.14.image" Name="GdPicture.NET.14.image.gdimgplug.dll" /> <File Id="GdPicture.NET.14.image" Name="GdPicture.NET.14.image.gdimgplug.dll" />
<File Id="GdPicture.NET.14.image64" Name="GdPicture.NET.14.image.gdimgplug.64.dll" /> <File Id="GdPicture.NET.14.image64" Name="GdPicture.NET.14.image.gdimgplug.64.dll" />
<File Id="GdPicture.NET.14.Imaging.Formats" Name="GdPicture.NET.14.Imaging.Formats.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.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.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" 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.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.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">
@@ -286,9 +300,7 @@
<ComponentRef Id="WindreamLibs" /> <ComponentRef Id="WindreamLibs" />
<ComponentRef Id="FormsUtilsLibs"/> <ComponentRef Id="FormsUtilsLibs"/>
<ComponentRef Id="DDLibs" /> <ComponentRef Id="DDLibs" />
<ComponentRef Id="Oracle" /> <ComponentRef Id="RuntimeLibs" />
<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

@@ -11,6 +11,7 @@
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="taskFLOW.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> <section name="taskFLOW.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup> </sectionGroup>
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections> </configSections>
<applicationSettings> <applicationSettings>
<taskFLOW.My.MySettings> <taskFLOW.My.MySettings>
@@ -102,8 +103,7 @@
</DevExpress.LookAndFeel.Design.AppSettings> </DevExpress.LookAndFeel.Design.AppSettings>
</applicationSettings> </applicationSettings>
<connectionStrings> <connectionStrings>
<add name="taskFLOW.My.MySettings.ConnectionString" connectionString="Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd;Encrypt=False" <add name="taskFLOW.My.MySettings.ConnectionString" connectionString="Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd;Encrypt=False" providerName="System.Data.SqlClient" />
providerName="System.Data.SqlClient" />
</connectionStrings> </connectionStrings>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
@@ -194,6 +194,10 @@
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Formats.Asn1" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<entityFramework> <entityFramework>
@@ -246,4 +250,10 @@
</setting> </setting>
</taskFLOW.My.MySettings> </taskFLOW.My.MySettings>
</userSettings> </userSettings>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
</configuration> </configuration>

View File

@@ -3,6 +3,7 @@ Imports System.Data.OracleClient
Imports System.IO Imports System.IO
Imports WINDREAMLib Imports WINDREAMLib
Imports DevExpress.Utils.CommonDialogs Imports DevExpress.Utils.CommonDialogs
Imports System.Runtime.InteropServices
Public Class ClassAllgemeineFunktionen Public Class ClassAllgemeineFunktionen
Public Shared Function GUI_LANGUAGE_INFO(pTITLE As String) Public Shared Function GUI_LANGUAGE_INFO(pTITLE As String)

View File

@@ -1,38 +0,0 @@
Imports PdfSharp.Pdf
Imports PdfSharp.Pdf.Annotations
Imports PdfSharp.Pdf.IO
Imports PdfSharp.Drawing
Public Class ClassAnnotation
Public Shared Function Annotate_PDF(title As String, content As String, page As Integer, fromGui As Boolean, Optional ycorrect As Integer = 0, Optional sizecorrect As Integer = 0)
If CURRENT_DOC_PATH.Length > 0 Then
Try
Dim doc As PdfDocument = PdfReader.Open(CURRENT_DOC_PATH, PdfDocumentOpenMode.Modify)
Dim firstPage As PdfPage = doc.Pages(page)
Dim gfx As XGraphics = XGraphics.FromPdfPage(firstPage)
Dim rect As XRect = gfx.Transformer.WorldToDefaultPage(New XRect(New XPoint(30, 60 + ycorrect), New XSize(60 + sizecorrect, 40 + sizecorrect)))
Dim annot As PdfTextAnnotation = New PdfTextAnnotation
annot.Title = title
'annot.Subject = txtsubject.Text
annot.Contents = content
annot.Rectangle = New PdfRectangle(rect)
firstPage.Annotations.Add(annot)
doc.Save(CURRENT_DOC_PATH)
Return True
Catch ex As Exception
If fromGui = True Then
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Annotate pdf:")
End If
LOGGER.Error(ex)
LOGGER.Info("Unexpected error in Annotate pdf: " & ex.Message, False)
Return False
End Try
End If
End Function
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

@@ -68,6 +68,18 @@ Public Class ClassControlCreator
''' </summary> ''' </summary>
Public Property GridTables As New Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)) Public Property GridTables As New Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
Public Property GridColumns As New Dictionary(Of Integer, DataTable) Public Property GridColumns As New Dictionary(Of Integer, DataTable)
Private _globalLookupEventGuard As Boolean = False
Public Property GlobalLookupEventGuard As Boolean
Get
Return _globalLookupEventGuard
End Get
Set(value As Boolean)
_globalLookupEventGuard = value
Logger.Debug($"GlobalLookupEventGuard -> gesetzt auf [{value}]")
End Set
End Property
''' <summary> ''' <summary>
''' Standard Eigenschaften für alle Controls ''' Standard Eigenschaften für alle Controls
@@ -533,12 +545,11 @@ Public Class ClassControlCreator
End Function End Function
Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean, pcurrencySymbol As String) As GridControl Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean, pcurrencySymbol As String) As GridControl
Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables) Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables, pcurrencySymbol)
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode) Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid
Dim oView As GridView Dim oView As GridView
Dim oControlName = oControl.Name Dim oControlName = oControl.Name
oControl.ForceInitialize() oControl.ForceInitialize()
oView = oControl.MainView oView = oControl.MainView
@@ -635,9 +646,13 @@ Public Class ClassControlCreator
End Try End Try
End If End If
oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl, pcurrencySymbol) ' *** KORRIGIERT: ConfigureViewColumns OHNE currencySymbol-Parameter ***
oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl)
' *** NEU: ConfigureViewColumnsCurrency() für editierbare Währungsspalten ***
oGridControlCreator.ConfigureViewColumnsCurrency(DT_MY_COLUMNS, oView, oControl)
oGridControlCreator.ConfigureViewEvents(DT_MY_COLUMNS, oView, oControl, oControlId) oGridControlCreator.ConfigureViewEvents(DT_MY_COLUMNS, oView, oControl, oControlId)
' 08.11.2021: Fix editor being empty on first open
oView.FocusInvalidRow() oView.FocusInvalidRow()
Return oControl Return oControl
@@ -848,7 +863,35 @@ Public Class ClassControlCreator
End Function End Function
Public Sub GridTables_HandleControlValueChange(pControlPanel As XtraScrollableControl, pColumnsWithSqlAndControlPlaceholders As DataTable) Public Sub GridTables_HandleControlValueChange(pControlPanel As XtraScrollableControl, pColumnsWithSqlAndControlPlaceholders As DataTable)
If Not IsNothing(pColumnsWithSqlAndControlPlaceholders) AndAlso pColumnsWithSqlAndControlPlaceholders.Rows.Count > 0 Then If pColumnsWithSqlAndControlPlaceholders Is Nothing OrElse pColumnsWithSqlAndControlPlaceholders.Rows.Count = 0 Then
Logger.Debug("No depending controls with SQL statements defined, skipping handling control value change.")
Return
End If
' ============================================================================
' Schritt 1 - Sichere ALLE Lookup-Werte VOR SQL-Reload
' ============================================================================
Dim lookupBackups As New Dictionary(Of String, Object)
For Each oControl As Control In pControlPanel.Controls
If TypeOf oControl Is LookupControl3 Then
Try
Dim lookup = DirectCast(oControl, LookupControl3)
' Speichere den aktuellen EditValue (kann einzelner Wert oder Liste sein)
If lookup.EditValue IsNot Nothing Then
Dim controlName As String = lookup.Name
lookupBackups(controlName) = lookup.EditValue
Logger.Debug($"GridTables_HandleControlValueChange -> Backup für Lookup [{controlName}]: [{lookup.EditValue}]")
End If
Catch ex As Exception
Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Backup von Lookup: {ex.Message}")
End Try
End If
Next
' ============================================================================
' Schritt 2 - Verarbeite Grid-Columns mit SQL-Abhängigkeiten
' ============================================================================
For Each oRow As DataRow In pColumnsWithSqlAndControlPlaceholders.Rows For Each oRow As DataRow In pColumnsWithSqlAndControlPlaceholders.Rows
Try Try
Dim oSqlStatement = oRow.ItemEx("SQL_COMMAND", String.Empty) Dim oSqlStatement = oRow.ItemEx("SQL_COMMAND", String.Empty)
@@ -857,35 +900,202 @@ Public Class ClassControlCreator
Dim oColumnName = oRow.Item("SPALTENNAME") Dim oColumnName = oRow.Item("SPALTENNAME")
Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP") Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP")
If oSqlStatement <> String.Empty And oConnectionId > -1 Then If oSqlStatement <> String.Empty AndAlso oConnectionId > -1 Then
oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, pControlPanel, True) oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, pControlPanel, True)
GridTables_CacheDatatableForColumn(oControlId, oColumnName, oSqlStatement, oConnectionId, oAdvancedLookup) GridTables_CacheDatatableForColumn(oControlId, oColumnName, oSqlStatement, oConnectionId, oAdvancedLookup)
' Force-setting Editor for GridColumns
' === Block to force setting the editor for GridColumns
Logger.Debug("Force-setting Editor for all Gridcells..") Logger.Debug("Force-setting Editor for all Gridcells..")
For Each oControl As Control In pControlPanel.Controls For Each oControl As Control In pControlPanel.Controls
Try Try
Dim oMeta = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata) If oControl.Tag IsNot Nothing AndAlso TypeOf oControl.Tag Is ControlMetadata Then
Dim oMeta = DirectCast(oControl.Tag, ControlMetadata)
If oMeta.Guid = oControlId AndAlso TypeOf oControl Is GridControl Then If oMeta.Guid = oControlId AndAlso TypeOf oControl Is GridControl Then
Dim oGrid As GridControl = DirectCast(oControl, GridControl) Dim oGrid As GridControl = DirectCast(oControl, GridControl)
If oGrid.FocusedView IsNot Nothing AndAlso TypeOf oGrid.FocusedView Is GridView Then
DirectCast(oGrid.FocusedView, GridView).FocusInvalidRow() DirectCast(oGrid.FocusedView, GridView).FocusInvalidRow()
Logger.Debug("Force-setting Editor for Grid [{0}]", oGrid.Name) Logger.Debug($"Force-setting Editor for Grid [{oGrid.Name}]")
End If
Exit For Exit For
End If End If
End If
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Force-setting Editor: {ex.Message}")
End Try End Try
Next Next
' === End
End If End If
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)
Logger.Info("Unexpected Error in Display SQL result for grid column: " & oRow.Item("CONTROL_ID") & " - ERROR: " & ex.Message) Logger.Info($"Unexpected Error in Display SQL result for grid column: {oRow.Item("CONTROL_ID")} - ERROR: {ex.Message}")
End Try End Try
Next Next
' ============================================================================
' Schritt 3 - Prüfe und restauriere Lookup-Werte mit SQL-Abhängigkeiten
' ============================================================================
If lookupBackups.Count > 0 Then
Logger.Debug($"GridTables_HandleControlValueChange -> Prüfe {lookupBackups.Count} Lookups auf Wiederherstellung...")
For Each oControl As Control In pControlPanel.Controls
If TypeOf oControl Is LookupControl3 Then
Try
Dim lookup = DirectCast(oControl, LookupControl3)
Dim controlName As String = lookup.Name
' Wenn wir einen Backup für dieses Lookup haben
If lookupBackups.ContainsKey(controlName) Then
Dim oldValue = lookupBackups(controlName)
' Prüfe ob Lookup ein DataSource hat (könnte durch SQL neu geladen worden sein)
If lookup.Properties.DataSource IsNot Nothing AndAlso TypeOf lookup.Properties.DataSource Is DataTable Then
Dim currentDataSource = DirectCast(lookup.Properties.DataSource, DataTable)
' Wenn DataSource Rows hat, versuche Werte wiederherzustellen
If currentDataSource.Rows.Count > 0 Then
RestoreLookupValues(lookup, oldValue, currentDataSource, controlName)
End If
End If
End If
Catch ex As Exception
Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Prüfen von Lookup: {ex.Message}")
Logger.Error(ex)
End Try
End If
Next
End If End If
End Sub End Sub
Private Sub RestoreLookupValues(lookup As LookupControl3, oldValue As Object,
newDataSource As DataTable, controlName As String)
If lookup Is Nothing OrElse oldValue Is Nothing OrElse newDataSource Is Nothing Then
Logger.Warn($"RestoreLookupValues -> [{controlName}] Ungültige Parameter")
Return
End If
Try
' Bestimme ValueColumn
Dim valueColumn As String = String.Empty
If String.IsNullOrEmpty(lookup.Properties.ValueMember) AndAlso newDataSource.Columns.Count > 0 Then
valueColumn = newDataSource.Columns(0).ColumnName
ElseIf Not String.IsNullOrEmpty(lookup.Properties.ValueMember) Then
valueColumn = lookup.Properties.ValueMember
Else
Logger.Warn($"RestoreLookupValues -> [{controlName}] Keine ValueColumn verfügbar")
Return
End If
' Build HashSet für effiziente Suche
Dim availableValues As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
For Each row As DataRow In newDataSource.Rows
If Not IsDBNull(row(valueColumn)) Then
availableValues.Add(row(valueColumn).ToString())
End If
Next
' Prüfe ob der alte Wert noch in der neuen DataSource existiert
Dim validValue As Object = Nothing
' Behandle verschiedene Datentypen (String, List, Array, etc.)
If TypeOf oldValue Is String Then
Dim valueStr As String = oldValue.ToString()
If availableValues.Contains(valueStr) Then
validValue = oldValue
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✓ gefunden")
Else
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✗ nicht mehr vorhanden")
End If
ElseIf TypeOf oldValue Is IEnumerable Then
' Behandle Listen/Arrays
Dim validValues As New List(Of Object)
For Each item As Object In DirectCast(oldValue, IEnumerable)
If item IsNot Nothing Then
Dim itemStr As String = item.ToString()
If availableValues.Contains(itemStr) Then
validValues.Add(item)
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{itemStr}] ✓ gefunden")
Else
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{itemStr}] ✗ nicht mehr vorhanden")
End If
End If
Next
If validValues.Count > 0 Then
validValue = validValues
End If
Else
' Fallback für andere Typen
Dim valueStr As String = oldValue.ToString()
If availableValues.Contains(valueStr) Then
validValue = oldValue
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✓ gefunden")
Else
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✗ nicht mehr vorhanden")
End If
End If
' Gültige Werte wiederherstellen
If validValue IsNot Nothing Then
' Event-Guard temporär aktivieren um Endlosschleifen zu vermeiden
Dim oldGuard As Boolean = GlobalLookupEventGuard
GlobalLookupEventGuard = True
Try
' Prüfe ob bereits korrekt gesetzt
Dim currentValue = lookup.EditValue
If currentValue IsNot Nothing AndAlso currentValue.Equals(validValue) Then
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert bereits korrekt gesetzt")
Return
End If
' Setze den Wert neu
lookup.EditValue = Nothing
Application.DoEvents()
lookup.EditValue = validValue
lookup.Refresh()
Application.DoEvents()
' Validierung
Dim newValue = lookup.EditValue
If newValue IsNot Nothing AndAlso newValue.Equals(validValue) Then
Logger.Debug($"RestoreLookupValues -> [{controlName}] ✓ erfolgreich wiederhergestellt: [{validValue}]")
Else
Logger.Error($"RestoreLookupValues -> [{controlName}] ✗ Fehler beim Wiederherstellen! Erwartet: [{validValue}], Ist: [{If(newValue, "NULL")}]")
' Retry mit BeginUpdate/EndUpdate
Logger.Debug($"RestoreLookupValues -> [{controlName}] Versuche alternative Methode mit BeginUpdate...")
lookup.Properties.BeginUpdate()
Try
lookup.EditValue = Nothing
Application.DoEvents()
lookup.EditValue = validValue
Finally
lookup.Properties.EndUpdate()
End Try
lookup.Refresh()
Application.DoEvents()
Dim retryValue = lookup.EditValue
If retryValue IsNot Nothing AndAlso retryValue.Equals(validValue) Then
Logger.Debug($"RestoreLookupValues -> [{controlName}] ✓ Alternative Methode erfolgreich")
Else
Logger.Error($"RestoreLookupValues -> [{controlName}] ✗ Auch alternative Methode fehlgeschlagen!")
End If
End If
Finally
' Event-Guard wiederherstellen
GlobalLookupEventGuard = oldGuard
End Try
Else
Logger.Info($"RestoreLookupValues -> [{controlName}] Keine gültigen Werte zum Wiederherstellen")
End If
Catch ex As Exception
Logger.Error($"RestoreLookupValues -> Fehler bei [{controlName}]: {ex.Message}")
Logger.Error(ex)
End Try
End Sub
End Class End Class

View File

@@ -28,6 +28,99 @@ Public Class ClassFormat
End Select End Select
End Function End Function
''' <summary>
''' Normalisiert einen numerischen String für die invariante Kultur-Konvertierung.
''' Entfernt Tausendertrennzeichen und ersetzt Dezimaltrennzeichen durch Punkt.
''' </summary>
Private Shared Function NormalizeNumericString(pValue As String) As String
If String.IsNullOrWhiteSpace(pValue) Then
Return pValue
End If
Dim normalized As String = pValue.Trim()
LOGGER.Debug($"[NormalizeNumericString] Input: [{pValue}]")
' Entferne Währungssymbole und Leerzeichen
normalized = System.Text.RegularExpressions.Regex.Replace(normalized, "[€$£¥\s]", "")
Dim hasDot As Boolean = normalized.Contains(".")
Dim hasComma As Boolean = normalized.Contains(",")
LOGGER.Debug($"[NormalizeNumericString] After cleanup: [{normalized}], HasDot={hasDot}, HasComma={hasComma}")
If hasDot AndAlso hasComma Then
' Beide vorhanden: Das letzte ist der Dezimaltrenner
Dim lastDotPos As Integer = normalized.LastIndexOf(".")
Dim lastCommaPos As Integer = normalized.LastIndexOf(",")
LOGGER.Debug($"[NormalizeNumericString] Both separators found: LastDotPos={lastDotPos}, LastCommaPos={lastCommaPos}")
If lastDotPos > lastCommaPos Then
normalized = normalized.Replace(",", "")
Else
normalized = normalized.Replace(".", "").Replace(",", ".")
End If
ElseIf hasComma Then
Dim commaCount As Integer = normalized.Count(Function(c) c = ","c)
LOGGER.Debug($"[NormalizeNumericString] Only comma found: CommaCount={commaCount}")
If commaCount = 1 Then
Dim lastCommaPos As Integer = normalized.LastIndexOf(",")
Dim digitsAfterComma As Integer = normalized.Length - lastCommaPos - 1
LOGGER.Debug($"[NormalizeNumericString] Single comma: DigitsAfterComma={digitsAfterComma}")
If digitsAfterComma <= 3 Then
normalized = normalized.Replace(",", ".")
Else
normalized = normalized.Replace(",", "")
End If
Else
normalized = normalized.Replace(",", "")
End If
ElseIf hasDot Then
Dim dotCount As Integer = normalized.Count(Function(c) c = "."c)
LOGGER.Debug($"[NormalizeNumericString] Only dot found: DotCount={dotCount}")
If dotCount = 1 Then
Dim lastDotPos As Integer = normalized.LastIndexOf(".")
Dim digitsAfterDot As Integer = normalized.Length - lastDotPos - 1
LOGGER.Debug($"[NormalizeNumericString] Single dot: DigitsAfterDot={digitsAfterDot}")
' ✅ KRITISCHE ÄNDERUNG: Prüfe auch Stellen VOR dem Punkt
Dim digitsBeforeDot As Integer = lastDotPos
' Heuristik: Wenn <= 3 Stellen nach Punkt UND >= 1 Stelle davor → Dezimaltrenner
' Wenn > 3 Stellen davor UND <= 3 Stellen nach Punkt → unklar, vermutlich Dezimal
' Wenn > 3 Stellen nach Punkt → definitiv KEIN Dezimaltrenner
If digitsAfterDot > 3 Then
LOGGER.Warn($"⚠️ [NormalizeNumericString] Dot with {digitsAfterDot} digits after → treating as THOUSAND separator!")
normalized = normalized.Replace(".", "")
ElseIf digitsAfterDot >= 1 AndAlso digitsAfterDot <= 3 Then
' Wahrscheinlich Dezimaltrenner (z.B. 5464.17 oder 120.5)
LOGGER.Debug($"[NormalizeNumericString] Dot treated as decimal separator ({digitsBeforeDot} digits before, {digitsAfterDot} after)")
Else
' digitsAfterDot = 0 → Punkt am Ende, vermutlich Fehler
LOGGER.Warn($"⚠️ [NormalizeNumericString] Dot at end of string → removing")
normalized = normalized.Replace(".", "")
End If
Else
' Mehrere Punkte → Tausendertrenner
LOGGER.Debug($"[NormalizeNumericString] Multiple dots → removing all")
normalized = normalized.Replace(".", "")
End If
Else
LOGGER.Debug($"[NormalizeNumericString] No separators found → integer or already normalized")
End If
LOGGER.Debug($"[NormalizeNumericString] Output: [{normalized}]")
Return normalized
End Function
''' <summary> ''' <summary>
''' Converts a string according to the type information, using the invariant culture ''' Converts a string according to the type information, using the invariant culture
@@ -41,25 +134,40 @@ Public Class ClassFormat
Select Case pType Select Case pType
Case ClassControlCreator.CONTROL_TYPE_DOUBLE Case ClassControlCreator.CONTROL_TYPE_DOUBLE
If Double.TryParse(pValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
Return oConvertedValue
End If
Case ClassControlCreator.CONTROL_TYPE_CURRENCY
Try Try
LOGGER.Debug($"GetConvertedValue: Converting {pValue.ToString} to Currency ") ' ✅ IMMER normalisieren auch für DB-Werte!
If Double.TryParse(pValue, NumberStyles.Currency, CultureInfo.InvariantCulture, oConvertedValue) Then Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
If Double.TryParse(normalizedValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
Return oConvertedValue Return oConvertedValue
End If End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
End Try End Try
Case ClassControlCreator.CONTROL_TYPE_CURRENCY
Try
' ✅ KRITISCH: Normalisierung VOR Konvertierung
Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
LOGGER.Debug($"GetConvertedValue CURRENCY: Original=[{pValue}], Normalized=[{normalizedValue}]")
Case ClassControlCreator.CONTROL_TYPE_INTEGER If Double.TryParse(normalizedValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
If Integer.TryParse(pValue, NumberStyles.Integer, CultureInfo.InvariantCulture, oConvertedValue) Then
Return oConvertedValue Return oConvertedValue
End If End If
Catch ex As Exception
LOGGER.Error($"Currency conversion failed for [{pValue}]: {ex.Message}")
LOGGER.Error(ex)
End Try
Case ClassControlCreator.CONTROL_TYPE_INTEGER
Try
Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
If Integer.TryParse(normalizedValue, NumberStyles.Integer, CultureInfo.InvariantCulture, oConvertedValue) Then
Return oConvertedValue
End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
Case Else Case Else
LOGGER.Debug($"GetConvertedValue - Case ELSE - pType is {pType}") LOGGER.Debug($"GetConvertedValue - Case ELSE - pType is {pType}")
Try Try
@@ -68,7 +176,6 @@ Public Class ClassFormat
LOGGER.Warn($"Error in GetConvertedValue: pType is {pType} - converting value to String") LOGGER.Warn($"Error in GetConvertedValue: pType is {pType} - converting value to String")
oConvertedValue = "" oConvertedValue = ""
End Try End Try
End Select End Select
Return oConvertedValue Return oConvertedValue
@@ -76,26 +183,32 @@ Public Class ClassFormat
''' <summary> ''' <summary>
''' Converts values to their respective data type and then back to string ''' Converts values to their respective data type and then back to string
''' according to the current culture ''' using INVARIANT culture for consistency across systems.
''' </summary> ''' </summary>
''' <param name="pValue"></param> ''' <param name="pValue"></param>
''' <returns></returns> ''' <returns></returns>
Public Shared Function GetStringValue(pValue As Object) As String Public Shared Function GetStringValue(pValue As Object) As String
' ✅ FIX: Immer InvariantCulture verwenden für DB-Speicherung
Select Case pValue.GetType Select Case pValue.GetType
Case GetType(Single) Case GetType(Single)
Return DirectCast(pValue, Single).ToString(CultureInfo.CurrentCulture) ' ✅ NEU: InvariantCulture statt CurrentCulture
Return DirectCast(pValue, Single).ToString(CultureInfo.InvariantCulture)
Case GetType(Double) Case GetType(Double)
Return DirectCast(pValue, Double).ToString(CultureInfo.CurrentCulture) ' ✅ NEU: InvariantCulture statt CurrentCulture
Return DirectCast(pValue, Double).ToString(CultureInfo.InvariantCulture)
Case GetType(Decimal) Case GetType(Decimal)
Return DirectCast(pValue, Decimal).ToString(CultureInfo.CurrentCulture) ' ✅ NEU: InvariantCulture statt CurrentCulture
Return DirectCast(pValue, Decimal).ToString(CultureInfo.InvariantCulture)
Case GetType(Date) Case GetType(Date)
Return DirectCast(pValue, Date).ToString(CultureInfo.CurrentCulture) ' Datum: ISO 8601 Format für Culture-Unabhängigkeit
Return DirectCast(pValue, Date).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)
Case GetType(DateTime) Case GetType(DateTime)
Return DirectCast(pValue, DateTime).ToString(CultureInfo.CurrentCulture) ' DateTime: ISO 8601 Format
Return DirectCast(pValue, DateTime).ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)
Case Else Case Else
Return pValue.ToString Return pValue.ToString

View File

@@ -1,5 +1,75 @@
Public Class ClassIDBData Public Class ClassIDBData
Public DTVWIDB_BE_ATTRIBUTE As DataTable Public DTVWIDB_BE_ATTRIBUTE As DataTable
Public IDBSystemIndices As List(Of String)
''' <summary>
''' Wenn True, werden SQL-Statements nicht sofort ausgeführt,
''' sondern in <see cref="_sqlBatch"/> gesammelt.
''' </summary>
Public Property BatchMode As Boolean = False
Private _sqlBatch As New List(Of String)
''' <summary>
''' Startet den Batch-Sammelmodus.
''' </summary>
Public Sub BeginBatch()
_sqlBatch.Clear()
BatchMode = True
End Sub
''' <summary>
''' Führt alle gesammelten SQL-Statements als einen einzigen String
''' an ExecuteNonQueryIDB weiter. Jeder Block wird in BEGIN...END
''' gekapselt, damit DECLARE-Variablen nicht kollidieren.
''' </summary>
''' <returns>True wenn erfolgreich</returns>
Public Function CommitBatch() As Boolean
BatchMode = False
If _sqlBatch.Count = 0 Then Return True
Try
Dim oStatements = _sqlBatch.
Where(Function(s) Not String.IsNullOrWhiteSpace(s)).
ToList()
' @NEW_OBJ_MD_ID pro Statement eindeutig umbenennen → kein Namenskonflikt im Batch
Dim oNumberedStatements As New List(Of String)
Dim oIndex As Integer = 0
For Each oStatement As String In oStatements
Dim oNumbered = oStatement.Replace("@NEW_OBJ_MD_ID", $"@NEW_OBJ_MD_ID_{oIndex}")
oNumberedStatements.Add(oNumbered)
oIndex += 1
Next
Dim oBatchSQL = String.Join(vbNewLine, oNumberedStatements)
LOGGER.Debug($"⚡ CommitBatch - Executing {oStatements.Count} statements as one batch:{vbNewLine}{oBatchSQL}")
Dim oResult = DatabaseFallback.ExecuteNonQueryIDB(oBatchSQL)
_sqlBatch.Clear()
Return oResult
Catch ex As Exception
LOGGER.Error(ex)
_sqlBatch.Clear()
Return False
End Try
End Function
''' <summary>
''' Verwirft alle gesammelten Statements ohne Ausführung.
''' </summary>
Public Sub RollbackBatch()
_sqlBatch.Clear()
BatchMode = False
End Sub
''' <summary>
''' Führt ein SQL-Statement aus sofort oder gesammelt je nach BatchMode.
''' </summary>
Private Function ExecuteOrQueue(oSQL As String) As Boolean
If BatchMode Then
_sqlBatch.Add(oSQL)
LOGGER.Debug($"BatchMode - Queued statement: {oSQL}")
Return True
Else
Return DatabaseFallback.ExecuteNonQueryIDB(oSQL)
End If
End Function
''' <summary> ''' <summary>
''' Gets all indices by BusinessEntity. ''' Gets all indices by BusinessEntity.
''' </summary> ''' </summary>
@@ -7,15 +77,16 @@
''' <returns>Array with all Indices</returns> ''' <returns>Array with all Indices</returns>
''' <remarks></remarks> ''' <remarks></remarks>
''' '''
Public Function Init() Public Function Init() As Boolean
Dim oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE WHERE SYS_ATTRIBUTE = 0 ORDER BY ATTR_TITLE" Dim oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE WHERE SYS_ATTRIBUTE = 0 ORDER BY ATTR_TITLE"
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL) DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
If IsNothing(DTVWIDB_BE_ATTRIBUTE) Then If IsNothing(DTVWIDB_BE_ATTRIBUTE) Then
oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE ORDER BY ATTR_TITLE " oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE ORDER BY ATTR_TITLE "
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL) DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
End If End If
Return True
End Function End Function
Public IDBSystemIndices As List(Of String)
Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String() Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String()
Try Try
Dim aNames(4) As String Dim aNames(4) As String
@@ -84,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($"GetVariableValue: {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
@@ -138,10 +221,11 @@
If IDB_USES_WMFILESTORE Then If IDB_USES_WMFILESTORE Then
oID_IS_FOREIGN = 1 oID_IS_FOREIGN = 1
End If End If
oTerm2Delete = oTerm2Delete.Replace("'", "''")
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN}" Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN};"
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL) LOGGER.Debug($"Delete_Term_Object_From_Metadata: {oDELSQL}")
'DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
Return ExecuteOrQueue(oDELSQL)
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
Return Nothing Return Nothing
@@ -150,9 +234,10 @@
End Function End Function
Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object
Try Try
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}'" Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}';"
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL) LOGGER.Debug($"Delete_Attribute_Data: {oDELSQL}")
' DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
Return ExecuteOrQueue(oDELSQL)
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
Return Nothing Return Nothing
@@ -162,18 +247,23 @@
Public Function SetVariableValue(oAttributeName As String, oNewValue As Object, Optional CheckDeleted As Boolean = False, Optional oIDBTyp As Integer = 0) Public Function SetVariableValue(oAttributeName As String, oNewValue As Object, Optional CheckDeleted As Boolean = False, Optional oIDBTyp As Integer = 0)
Try Try
Dim omsg = $"IDBData - SetVariableValue - Attribute: [{oAttributeName}] - NewValue: [{oNewValue}] - CheckDeleted: [{CheckDeleted.ToString}] - oIDBTyp: [{oIDBTyp}]"
LOGGER.Debug(omsg)
Dim omytype = oNewValue.GetType.ToString Dim omytype = oNewValue.GetType.ToString
If omytype = "System.Data.DataTable" Then If omytype = "System.Data.DataTable" Then
Dim oDTMyNewValues As DataTable = oNewValue Dim oDTMyNewValues As DataTable = oNewValue
Dim oOldAttributeResult Dim oAttributeResultFromDB
Dim oTypeOldResult Dim oTypeOldResult
' Für DataTable (Mehrfachauswahl/Vektor) IMMER auf gelöschte Werte prüfen,
' unabhängig vom übergebenen CheckDeleted-Parameter.
Dim oEffectiveCheckDeleted As Boolean = True
If CheckDeleted = True Then If oEffectiveCheckDeleted = True Then
oOldAttributeResult = GetVariableValue(oAttributeName, oIDBTyp) oAttributeResultFromDB = GetVariableValue(oAttributeName, oIDBTyp)
oTypeOldResult = oOldAttributeResult.GetType.ToString oTypeOldResult = oAttributeResultFromDB.GetType.ToString
If oTypeOldResult = "System.Data.DataTable" Then If TypeOf oAttributeResultFromDB Is DataTable Then
Dim myOldValues As DataTable = oOldAttributeResult Dim myOldValues As DataTable = oAttributeResultFromDB
If myOldValues.Rows.Count > 1 Then If myOldValues.Rows.Count >= 1 Then
'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues 'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
For Each oOldValueRow As DataRow In myOldValues.Rows For Each oOldValueRow As DataRow In myOldValues.Rows
@@ -199,27 +289,26 @@
'### Old Value is a single value ### '### Old Value is a single value ###
If oDTMyNewValues.Rows.Count > 1 Then If oDTMyNewValues.Rows.Count > 1 Then
'### there is more than one new value ### '### there is more than one new value ###
Dim oExists As Boolean Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
oExists = False LOGGER.Debug($"Checking oldValue[{oAttributeResultFromDB}] vs NewValue [{oNewValueRow.Item(1)}]")
Dim oInfo1 = $"Checking oldValue[{oOldAttributeResult}] vs NewValue [{oNewValueRow.Item(1)}]" If oNewValueRow.Item(1).ToString.ToUpper = oAttributeResultFromDB.ToString.ToUpper Then
If oNewValueRow.Item(1).ToString.ToUpper = oOldAttributeResult.ToString.ToUpper Then
oExists = True oExists = True
Exit For ' ← sobald gefunden, abbrechen
End If End If
Next Next
If oExists = False Then If oExists = False Then
Dim oInfo2 = $"Value [{oOldAttributeResult}] no longer existing in Vector-Attribute [{oAttributeName}] - will be deleted!" LOGGER.Debug($"Value [{oAttributeResultFromDB}] no longer existing in Attribute [{oAttributeName}] - will be deleted!")
LOGGER.Debug(oInfo2)
'SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo2) 'SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo2)
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult) Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
End If End If
Else Else
'### there is only ONE new value ### '### there is only ONE new value ###
If oDTMyNewValues.Rows(0).Item(1) <> oOldAttributeResult Then If oDTMyNewValues.Rows(0).Item(1) <> oAttributeResultFromDB Then
Dim oInfo = $"Value [{oOldAttributeResult}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!" Dim oInfo = $"Value [{oAttributeResultFromDB}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
LOGGER.Debug(oInfo) LOGGER.Debug(oInfo)
SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo) SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo)
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult) Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
Else Else
LOGGER.Debug($"Attributvalue of [{oAttributeName}] did not change!") LOGGER.Debug($"Attributvalue of [{oAttributeName}] did not change!")
End If End If
@@ -231,22 +320,25 @@
End If End If
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
Dim oSuccess As Boolean = False 'Dim oSuccess As Boolean = False
Dim oVALUE = oNewValueRow.Item(1).ToString Dim oVALUE = oNewValueRow.Item(1).ToString
oVALUE = oVALUE.Replace("'", "''") oVALUE = oVALUE.Replace("'", "''")
Dim oPRSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oVALUE}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT" Dim oPRSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oVALUE}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT;"
LOGGER.Debug(oPRSQL) LOGGER.Debug(oPRSQL)
oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL) 'oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL)
If oSuccess = False Then If Not ExecuteOrQueue(oPRSQL) Then Return False
Return False 'If oSuccess = False Then
End If ' Return False
'End If
Next Next
Return True Return True
Else Else
'oNewValue = oNewValue.Replace("'", "' + NCHAR(39) + '") 'oNewValue = oNewValue.Replace("'", "' + NCHAR(39) + '")
Dim oFNSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValue}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT" oNewValue = oNewValue.Replace("'", "''")
LOGGER.Debug(oFNSQL) Dim oPRIDB_NEW_OBJ_DATA = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValue}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT;"
Return DatabaseFallback.ExecuteNonQueryIDB(oFNSQL) LOGGER.Debug(oPRIDB_NEW_OBJ_DATA)
' Return DatabaseFallback.ExecuteNonQueryIDB(oPRIDB_NEW_OBJ_DATA)
Return ExecuteOrQueue(oPRIDB_NEW_OBJ_DATA)
End If End If
Catch ex As Exception Catch ex As Exception

View File

@@ -483,6 +483,14 @@ Public Class ClassInit
'BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "") 'BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "")
BASEDATA_DT_TBDD_CONNECTION = DatabaseFallback.GetDatatable("TBDD_CONNECTION", New GetDatatableOptions(oSql, DatabaseType.ECM)) BASEDATA_DT_TBDD_CONNECTION = DatabaseFallback.GetDatatable("TBDD_CONNECTION", New GetDatatableOptions(oSql, DatabaseType.ECM))
oStep = "TBDD_CATALOG"
oSql = "select CAT_TITLE,CAT_STRING from TBDD_CATALOG"
BASEDATA_DT_TBDD_CATALOG = DatabaseFallback.GetDatatable("TBDD_CATALOG", New GetDatatableOptions(oSql, DatabaseType.ECM))
For Each oROW As DataRow In BASEDATA_DT_TBDD_CATALOG.Rows
Next
oStep = "TBDD_3RD_PARTY_MODULES" oStep = "TBDD_3RD_PARTY_MODULES"
oSql = "Select * FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1" oSql = "Select * FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1"
Dim oTBDD_3RD_PARTY_MODULES As DataTable Dim oTBDD_3RD_PARTY_MODULES As DataTable
@@ -520,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,227 +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 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
' End If
' End If
'ElseIf oMode = "PM.EXCEL_OVERVIEW" Then
' EXCEL_OVERVIEW = True
' LOGGER.Info($"EXCEL_OVERVIEW [{EXCEL_OVERVIEW}]")
'ElseIf oMode = "PM.MONITORING" Then
' MONITORING_ACTIVE = True
' LOGGER.Debug($"MONITORING_ACTIVE [{MONITORING_ACTIVE}]")
'ElseIf oMode = "PM.GHOSTMODE" Then
' GHOSTMODE_ACTIVE = True
' LOGGER.Info($"GHOSTMODE_ACTIVE [{GHOSTMODE_ACTIVE}]")
'ElseIf oMode.StartsWith("PM.COLORSCHEME") Then
' Dim oColorScheme = oMode.Replace("PM.COLORSCHEME=", "")
' RIBBON_COLOR_SCHEME = oColorScheme.ToUpper
' LOGGER.Debug($"RIBBON_COLOR_SCHEME [{RIBBON_COLOR_SCHEME}]")
'ElseIf oMode.StartsWith("PM.NO_DETAIL_PROFILES") Then
' NO_DETAIL_PROFILES = True
' LOGGER.Debug($"NO_DETAIL_PROFILES [{NO_DETAIL_PROFILES}]")
'ElseIf oMode = "PM.NO_POPUP" Then
' POPUP_REMINDER_ACTIVE = False
' LOGGER.Debug($"POPUP_REMINDER_ACTIVE [{POPUP_REMINDER_ACTIVE}]")
'ElseIf oMode.StartsWith("PM.POPUP_TIMELAPS_OVERRIDE") Then
' Dim oTimeLapse = oMode.Replace("PM.POPUP_TIMELAPS_OVERRIDE=", "")
' LOGGER.Info($"CENTRAL POPUP_TIMELAPS_OVERRIDE [{oTimeLapse}]")
' Try
' CONFIG.Config.ReminderTimer = oTimeLapse
' Catch ex As Exception
' End Try
Dim oConString = DatabaseFallback.GetConnectionString(CON_ID) 'ElseIf oMode.StartsWith("PM.CONV_IDENTIFICATION") Then
' Dim oIdent = oMode.Replace("PM.CONV_IDENTIFICATION=", "")
' CONV_IDENTIFICATION = oIdent
'ElseIf oMode.StartsWith("PM.INACTIVITY_DURATION") Then
' Dim oInactivityDuration = oMode.Replace("PM.INACTIVITY_DURATION=", "")
' Try
' INACTIVITY_DURATION = CInt(oInactivityDuration)
' LOGGER.Debug($"InactivityDuration [{INACTIVITY_DURATION}]")
' Catch ex As Exception
' LOGGER.Warn($"INACTIVITY_DURATION = 0 - {ex.Message}")
' INACTIVITY_DURATION = 0
' End Try
'ElseIf oMode.StartsWith("PM.COL_LAST_EDITED") Then
' Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_EDITED=", "")
' Try
' LAST_EDITED_COLUMN = oLEDITEDCOL
' LOGGER.Debug($"LAST_EDITED_COLUMN: {oLEDITEDCOL}")
' Catch ex As Exception
' LAST_EDITED_COLUMN = ""
CONNECTION_STRING_IDB = oConString ' End Try
Database_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB) 'ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then
If Database_IDB.DBInitialized = True Then ' Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "")
IDB_ACTIVE = True ' Try
LOGGER.Info($"IDB is active - IDB-Connection [{CON_ID}]!") ' LAST_ADDED_COLUMN = oLEDITEDCOL
DatabaseFallback.InitializeIDB(Database_IDB) ' LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}")
Else ' Catch ex As Exception
IDB_ACTIVE = False ' LAST_ADDED_COLUMN = ""
End If
End If
ElseIf oMode = "PM.EXCEL_OVERVIEW" Then
EXCEL_OVERVIEW = True
LOGGER.Info($"EXCEL_OVERVIEW [{EXCEL_OVERVIEW}]")
ElseIf oMode = "PM.MONITORING" Then
MONITORING_ACTIVE = True
LOGGER.Debug($"MONITORING_ACTIVE [{MONITORING_ACTIVE}]")
ElseIf oMode = "PM.GHOSTMODE" Then
GHOSTMODE_ACTIVE = True
LOGGER.Info($"GHOSTMODE_ACTIVE [{GHOSTMODE_ACTIVE}]")
ElseIf oMode.StartsWith("PM.COLORSCHEME") Then
Dim oColorScheme = oMode.Replace("PM.COLORSCHEME=", "")
RIBBON_COLOR_SCHEME = oColorScheme.ToUpper
LOGGER.Debug($"RIBBON_COLOR_SCHEME [{RIBBON_COLOR_SCHEME}]")
ElseIf oMode.StartsWith("PM.NO_DETAIL_PROFILES") Then
NO_DETAIL_PROFILES = True
LOGGER.Debug($"NO_DETAIL_PROFILES [{NO_DETAIL_PROFILES}]")
ElseIf oMode = "PM.NO_POPUP" Then
POPUP_REMINDER_ACTIVE = False
LOGGER.Debug($"POPUP_REMINDER_ACTIVE [{POPUP_REMINDER_ACTIVE}]")
ElseIf oMode.StartsWith("PM.POPUP_TIMELAPS_OVERRIDE") Then
Dim oTimeLapse = oMode.Replace("PM.POPUP_TIMELAPS_OVERRIDE=", "")
LOGGER.Info($"CENTRAL POPUP_TIMELAPS_OVERRIDE [{oTimeLapse}]")
Try
CONFIG.Config.ReminderTimer = oTimeLapse
Catch ex As Exception
End Try
ElseIf oMode.StartsWith("PM.CONV_IDENTIFICATION") Then ' End Try
Dim oIdent = oMode.Replace("PM.CONV_IDENTIFICATION=", "") 'ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then
CONV_IDENTIFICATION = oIdent ' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "")
ElseIf oMode.StartsWith("PM.INACTIVITY_DURATION") Then ' Try
Dim oInactivityDuration = oMode.Replace("PM.INACTIVITY_DURATION=", "") ' MON_EDITED_COLUMN = oLEDITEDCOL
Try ' LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}")
INACTIVITY_DURATION = CInt(oInactivityDuration) ' Catch ex As Exception
LOGGER.Debug($"InactivityDuration [{INACTIVITY_DURATION}]")
Catch ex As Exception
LOGGER.Warn($"INACTIVITY_DURATION = 0 - {ex.Message}")
INACTIVITY_DURATION = 0
End Try
ElseIf oMode.StartsWith("PM.COL_LAST_EDITED") Then
Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_EDITED=", "")
Try
LAST_EDITED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"LAST_EDITED_COLUMN: {oLEDITEDCOL}")
Catch ex As Exception
LAST_EDITED_COLUMN = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then 'ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then
Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "") ' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "")
Try ' Try
LAST_ADDED_COLUMN = oLEDITEDCOL ' MON_ADDED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}") ' LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}")
Catch ex As Exception ' Catch ex As Exception
LAST_ADDED_COLUMN = ""
End Try ' End Try
ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then 'ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "") ' Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "")
Try ' Try
MON_EDITED_COLUMN = oLEDITEDCOL ' USE_APPSERVER = CBool(oUSE_APPSERVER)
LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}") ' Catch ex As Exception
Catch ex As Exception ' USE_APPSERVER = False
' End Try
'ElseIf oMode.StartsWith("PM.COPYWM2TEMP") Then
' Dim oCOPYWM2TEMP = oMode.Replace("PM.COPYWM2TEMP=", "")
' Try
' COPY_WMFILE_2TEMP = CBool(oCOPYWM2TEMP)
' Catch ex As Exception
' COPY_WMFILE_2TEMP = False
' End Try
'ElseIf oMode.StartsWith("PM.MAP_SHARE_DRIVE") Then
' Dim oMAP_SHARE_DRIVE = oMode.Replace("PM.MAP_SHARE_DRIVE=", "")
' Try
' MAP_SHARE_DRIVE = oMAP_SHARE_DRIVE
' Catch ex As Exception
' oMAP_SHARE_DRIVE = String.Empty
' End Try
'ElseIf oMode.StartsWith("PM.MAP_BLACKLIST") Then
' Dim oMAP_BLACKLIST = oMode.Replace("PM.MAP_BLACKLIST=", "")
' Try
' MAP_BLACKLIST = oMAP_BLACKLIST
' Catch ex As Exception
' MAP_BLACKLIST = String.Empty
' End Try
'ElseIf oMode.StartsWith("PM.SEARCH1") Then
' Dim oSearch1 = oMode.Replace("PM.SEARCH1=", "")
' Try
' SEARCH1 = oSearch1
' Catch ex As Exception
' SEARCH1 = ""
' End Try
'ElseIf oMode.StartsWith("PM.SEARCH2") Then
' Dim oSearch2 = oMode.Replace("PM.SEARCH2=", "")
' Try
' SEARCH2 = oSearch2
' Catch ex As Exception
' SEARCH2 = ""
' End Try
'ElseIf oMode.StartsWith("PM.TRAFFICLIGHT_ICON") Then
' Dim oParam = oMode.Replace("PM.TRAFFICLIGHT_ICON=", "")
' Try
' TL_ICON = CBool(oParam)
' Catch ex As Exception
' TL_ICON = False
' End Try
'ElseIf oMode.StartsWith("PM.TITLE_NOTIFICATIONS") Then
' Dim oParam = oMode.Replace("PM.TITLE_NOTIFICATIONS=", "")
' Try
' TITLE_NOTIFICATIONS = oParam
' Catch ex As Exception
' TITLE_NOTIFICATIONS = ""
' End Try
'ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") And pMode = "Load" Then
' Dim oParam = oMode.Replace("TF.InheritanceMsgAmount=", "")
' Try
' InheritanceMsgAmount = oParam
' Catch ex As Exception
' End Try
'ElseIf oMode.StartsWith("TF.InheritanceCalcReset") And pMode = "Load" Then
' Dim oParam = oMode.Replace("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)
End Try ' UserInheritance_ConfirmationByColumn = Nothing
ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then ' CONFIG.Save()
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "") ' End If
Try ' Catch ex As Exception
MON_ADDED_COLUMN = oLEDITEDCOL
LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}")
Catch ex As Exception
' End Try
'ElseIf oMode.StartsWith("PM.START_CW") Then
' Dim oAfterReplace = oMode.Replace("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)
' Catch ex As Exception
' START_CW_LOC_VARIANT = "-1"
' LOGGER.Warn($"Could not read START_CW_LOCVARIANT : {ex.Message}")
' End Try
End Try ' Catch ex As Exception
ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then ' LOGGER.Warn($"Could not read START_CW Param: {ex.Message}")
Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "") ' START_CW = False
Try ' End Try
USE_APPSERVER = CBool(oUSE_APPSERVER) 'ElseIf oMode.StartsWith("PM.RibbonPageCustTitle") Then
Catch ex As Exception ' Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustTitle=", "")
USE_APPSERVER = False ' RibbonPageCustTitle = oAfterReplace
'ElseIf oMode.StartsWith("PM.RibbonPageCustItm1") Then
End Try ' Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustItm1=", "")
ElseIf oMode.StartsWith("PM.SEARCH1") Then ' RibbonPageCustItm1 = oAfterReplace
Dim oSearch1 = oMode.Replace("PM.SEARCH1=", "") 'ElseIf oMode.StartsWith("PM.ButtonExport2FolderCaption") Then
Try ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2FolderCaption=", "")
SEARCH1 = oSearch1 ' ButtonExport2Folder_Caption = oAfterReplace
Catch ex As Exception 'ElseIf oMode.StartsWith("PM.ButtonExport2Folder_Mode") Then
SEARCH1 = "" ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_Mode=", "")
' ButtonExport2Folder_Mode = oAfterReplace
End Try 'ElseIf oMode.StartsWith("PM.ButtonExport2Folder_RootFolder") Then
ElseIf oMode.StartsWith("PM.SEARCH2") Then ' Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_RootFolder=", "")
Dim oSearch2 = oMode.Replace("PM.SEARCH2=", "") ' ButtonExport2Folder_RootFolder = oAfterReplace
Try 'ElseIf oMode = "MAINFORM_ALLOW_LOGFILES" Then
SEARCH2 = oSearch2 ' MAINFORM_CREATE_LOG_FILES = True
Catch ex As Exception 'Else
SEARCH2 = "" ' LOGGER.Info($"Wrong oMode: {oMode}")
'End If
End Try
ElseIf oMode.StartsWith("PM.TRAFFICLIGHT_ICON") Then
Dim oParam = oMode.Replace("PM.TRAFFICLIGHT_ICON=", "")
Try
TL_ICON = CBool(oParam)
Catch ex As Exception
TL_ICON = False
End Try
ElseIf oMode.StartsWith("PM.TITLE_NOTIFICATIONS") Then
Dim oParam = oMode.Replace("PM.TITLE_NOTIFICATIONS=", "")
Try
TITLE_NOTIFICATIONS = oParam
Catch ex As Exception
TITLE_NOTIFICATIONS = ""
End Try
ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") And pMode = "Load" Then
Dim oParam = oMode.Replace("TF.InheritanceMsgAmount=", "")
Try
InheritanceMsgAmount = oParam
Catch ex As Exception
End Try
ElseIf oMode.StartsWith("TF.InheritanceCalcReset") And pMode = "Load" Then
Dim oParam = oMode.Replace("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
End Try
ElseIf oMode.StartsWith("PM.START_CW") Then
Dim oAfterReplace = oMode.Replace("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)
Catch ex As Exception
START_CW_LOC_VARIANT = "-1"
LOGGER.Warn($"Could not read START_CW_LOCVARIANT : {ex.Message}")
End Try
Catch ex As Exception
LOGGER.Warn($"Could not read START_CW Param: {ex.Message}")
START_CW = False
End Try
ElseIf oMode.StartsWith("PM.RibbonPageCustTitle") Then
Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustTitle=", "")
RibbonPageCustTitle = oAfterReplace
ElseIf oMode.StartsWith("PM.RibbonPageCustItm1") Then
Dim oAfterReplace = oMode.Replace("PM.RibbonPageCustItm1=", "")
RibbonPageCustItm1 = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2FolderCaption") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2FolderCaption=", "")
ButtonExport2Folder_Caption = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2Folder_Mode") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_Mode=", "")
ButtonExport2Folder_Mode = oAfterReplace
ElseIf oMode.StartsWith("PM.ButtonExport2Folder_RootFolder") Then
Dim oAfterReplace = oMode.Replace("PM.ButtonExport2Folder_RootFolder=", "")
ButtonExport2Folder_RootFolder = oAfterReplace
ElseIf oMode = "MAINFORM_ALLOW_LOGFILES" Then
MAINFORM_CREATE_LOG_FILES = True
Else
LOGGER.Info($"Wrong oMode: {oMode}")
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
@@ -298,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)
If _View.FocusedRowHandle <> -1 Then
_View.TopRowIndex = _View.GetVisibleIndex(_View.FocusedRowHandle) - _VisibleRowIndex _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
@@ -322,30 +322,30 @@ LOGGER.Error(ex)
''' <param name="objekttypName">Name des Objekttyps</param> ''' <param name="objekttypName">Name des Objekttyps</param>
''' <returns>Objekttyp als WMObject</returns> ''' <returns>Objekttyp als WMObject</returns>
''' <remarks></remarks> ''' <remarks></remarks>
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject 'Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
Try ' Try
If IsNothing(Me.oSession) Then ' If IsNothing(Me.oSession) Then
LOGGER.Warn("⚠️ GetObjecttypeByName: WMSession is nothing") ' LOGGER.Warn("⚠️ GetObjecttypeByName: WMSession is nothing")
Return Nothing ' Return Nothing
End If ' End If
' alle Objekttypen auslesen ' ' alle Objekttypen auslesen
Dim oObjectTypes As WMObjects = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument) ' Dim oObjectTypes As WMObjects = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen ' ' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen
For Each oObjectType As WMObject In oObjectTypes ' For Each oObjectType As WMObject In oObjectTypes
If oObjectType.aName = objekttypName Then ' If oObjectType.aName = objekttypName Then
Return oObjectType ' Return oObjectType
End If ' End If
Next ' Next
Return Nothing ' Return Nothing
Catch ex As Exception ' Catch ex As Exception
LOGGER.Error(ex) ' LOGGER.Error(ex)
MsgBox("Es konnte ein Objekttyp nicht erstellt werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Objekttyp konnte nicht erstellt werden") ' MsgBox("Es konnte ein Objekttyp nicht erstellt werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Objekttyp konnte nicht erstellt werden")
Return Nothing ' Return Nothing
End Try ' End Try
End Function 'End Function
''' <summary> ''' <summary>
''' Überprüft ob der angegebene Index im Objekttyp existiert ''' Überprüft ob der angegebene Index im Objekttyp existiert

View File

@@ -25,13 +25,93 @@ Namespace ControlCreator
Private newRowModified As Boolean Private newRowModified As Boolean
Private isApplyingInheritedValue As Boolean Private isApplyingInheritedValue As Boolean
Private _FormulaColumnNames As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
Private _FormulaSqlColumns As New Dictionary(Of String, FormulaSqlDefinition)(StringComparer.OrdinalIgnoreCase)
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))) Private _isRefreshingFormula As Boolean = False ' *** NEU: Flag für Formel-Refresh ***
Private _currencySymbol As String = ""
''' <summary>
''' SHARED Dictionary: Speichert das aktuelle Währungssymbol PRO GridView (via Name).
''' Dies ist notwendig, weil UpdateCurrencyFormat auf einer NEUEN GridControl-Instanz
''' aufgerufen wird, der CustomColumnDisplayText-Handler aber auf der URSPRÜNGLICHEN
''' Instanz registriert wurde. Durch das Shared Dictionary können alle Instanzen
''' auf das aktuelle Symbol zugreifen.
''' </summary>
Private Shared _CurrencySymbolByGridName As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase)
''' <summary>
''' Definiert eine SQL-basierte Formelspalte mit allen nötigen Metadaten.
''' </summary>
Private Class FormulaSqlDefinition
Public Property SqlTemplate As String
Public Property ReferencedColumns As List(Of String)
End Class
''' <summary>
''' Extrahiert alle {#TBCOL#ColumnName}-Platzhalter aus einem SQL-Template.
''' </summary>
Private Function GetReferencedSqlColumnNames(sqlTemplate As String) As List(Of String)
Dim columnNames As New List(Of String)
Dim pattern As String = "\{#TBCOL#([^}]+)\}"
Dim matches = Regex.Matches(sqlTemplate, pattern)
For Each match As Match In matches
Dim colName = match.Groups(1).Value
If Not columnNames.Contains(colName, StringComparer.OrdinalIgnoreCase) Then
columnNames.Add(colName)
End If
Next
Return columnNames
End Function
''' <summary>
''' Ersetzt alle {#TBCOL#ColumnName}-Platzhalter durch die aktuellen Zeilenwerte.
''' Gibt den ausführbaren SQL-String zurück.
''' </summary>
Private Function ResolveSqlTemplate(sqlTemplate As String, pView As GridView, rowHandle As Integer) As String
Dim resolvedSql As String = sqlTemplate
Dim pattern As String = "\{#TBCOL#([^}]+)\}"
Dim matches = Regex.Matches(sqlTemplate, pattern)
For Each match As Match In matches
Dim colName = match.Groups(1).Value
Dim cellValue = pView.GetRowCellValue(rowHandle, colName)
Dim safeValue As String
If cellValue Is Nothing OrElse IsDBNull(cellValue) Then
safeValue = "NULL"
ElseIf TypeOf cellValue Is String Then
' SQL-Injection-Schutz: Einfache Anführungszeichen escapen
safeValue = "'" & cellValue.ToString().Replace("'", "''") & "'"
ElseIf TypeOf cellValue Is Boolean Then
safeValue = If(CBool(cellValue), "1", "0")
Else
' Numerische Werte: Invariant-Format (Punkt als Dezimaltrenner)
safeValue = Convert.ToString(cellValue, CultureInfo.InvariantCulture)
End If
resolvedSql = resolvedSql.Replace(match.Value, safeValue)
_Logger.Debug("Resolved SQL placeholder [{0}] with value [{1}] → {2}", match.Value, cellValue, safeValue)
Next
_Logger.Debug("Final resolved SQL: {0}", resolvedSql)
Return resolvedSql
End Function
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)), pCurrencySymbol As String)
_LogConfig = pLogConfig _LogConfig = pLogConfig
_Logger = pLogConfig.GetLogger() _Logger = pLogConfig.GetLogger()
_GridTables = pGridTables _GridTables = pGridTables
_currencySymbol = pCurrencySymbol
End Sub
''' <summary>
''' Setzt den Shared Currency-Cache zurück. Muss beim Laden eines neuen Dokuments
''' aufgerufen werden, bevor UpdateCurrencyFormat die neuen Werte schreibt.
''' Verhindert, dass ein veraltetes Währungssymbol aus einem vorherigen Dokument
''' durch den CustomColumnDisplayText-Handler verwendet wird.
''' </summary>
Public Shared Sub ResetCurrencySymbolCache()
SyncLock _CurrencySymbolByGridName
_CurrencySymbolByGridName.Clear()
End SyncLock
End Sub End Sub
Public Function CreateGridColumns(pColumnTable As DataTable) As DataTable Public Function CreateGridColumns(pColumnTable As DataTable) As DataTable
Dim oDataTable As New DataTable Dim oDataTable As New DataTable
Dim columnsWithExpressions As New List(Of Tuple(Of DataColumn, String)) Dim columnsWithExpressions As New List(Of Tuple(Of DataColumn, String))
@@ -60,9 +140,19 @@ Namespace ControlCreator
End Select End Select
Dim oFormulaExpression = ObjectEx.NotNull(oRow.Item("FORMULA_EXPRESSION"), String.Empty) Dim oFormulaExpression = ObjectEx.NotNull(oRow.Item("FORMULA_EXPRESSION"), String.Empty)
Dim oFormulaSql = ObjectEx.NotNull(oRow.Item("FORMULA_SQL"), String.Empty)
' *** VALIDIERUNG: Beides gleichzeitig ist nicht erlaubt ***
If oFormulaExpression <> String.Empty AndAlso oFormulaSql <> String.Empty Then
_Logger.Warn("⚠️ [CreateGridColumns] Column [{0}] has BOTH FORMULA_EXPRESSION and FORMULA_SQL FORMULA_SQL will be ignored.", oColumn.ColumnName)
' FORMULA_EXPRESSION hat Vorrang → nur Expression wird als DataTable.Expression gesetzt
End If
If oFormulaExpression <> String.Empty Then If oFormulaExpression <> String.Empty Then
' Expression merken, aber erst später setzen ' FORMULA_EXPRESSION: Expression merken, aber erst später setzen (DataTable.Expression)
columnsWithExpressions.Add(New Tuple(Of DataColumn, String)(oColumn, oFormulaExpression)) columnsWithExpressions.Add(New Tuple(Of DataColumn, String)(oColumn, oFormulaExpression))
' HINWEIS: FORMULA_SQL-Spalten bekommen KEINE DataTable.Expression,
' da deren Werte programmatisch via SetRowCellValue gesetzt werden.
End If End If
Try Try
@@ -199,16 +289,136 @@ Namespace ControlCreator
Return oEditor Return oEditor
End If End If
End Function End Function
''' <summary>
''' Setzt das Währungssymbol für ein bestimmtes Grid im Shared Cache.
''' Muss bei JEDEM Dokumentwechsel aufgerufen werden (auch bei EUR),
''' damit der CustomColumnDisplayText-Handler sofort den korrekten Wert hat.
''' </summary>
Public Shared Sub SetCurrencySymbolForGrid(gridName As String, currencySymbol As String)
SyncLock _CurrencySymbolByGridName
_CurrencySymbolByGridName(gridName) = currencySymbol
End SyncLock
End Sub
' Hilfsroutine: passt NUR das Summary-Item an (ohne FormatInfo) ' Hilfsroutine: passt NUR das Summary-Item an (ohne FormatInfo)
Private Sub ApplyCurrencySummaryFormat(oCol As GridColumn, currencySymbol As String) Private Sub ApplyCurrencySummaryFormat(oCol As GridColumn)
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
' Variante A: Standard-Währungsformat aus aktueller Kultur _Logger.Debug("Applying currency summary format for column [{0}] with symbol [{1}]", oCol.FieldName, _currencySymbol)
' oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}"
' Variante B: Kulturunabhängig, Symbol explizit anhängen ' Variante B: Kulturunabhängig, Symbol explizit anhängen
oCol.SummaryItem.DisplayFormat = $"SUM: {{0:N2}} {currencySymbol}" oCol.SummaryItem.DisplayFormat = $"{{0:N2}} {_currencySymbol}"
End Sub End Sub
Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pcurrencySymbol As String) ''' <summary>
''' Aktualisiert die Währungsformatierung für alle CURRENCY-Spalten mit neuem Währungssymbol.
''' Betrifft DisplayFormat, ColumnEdit (für editierbare Spalten) und Summary-Footer.
''' </summary>
''' <summary>
'''
Public Sub UpdateCurrencyFormat(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pNewCurrencySymbol As String)
Try
_Logger.Info("[UpdateCurrencyFormat] *** START *** [{0}] → [{1}] für [{2}]", _currencySymbol, pNewCurrencySymbol, pGrid.Name)
' *** KERN-FIX: Speichere Symbol im SHARED Dictionary ***
Dim gridName As String = pGrid.Name
SyncLock _CurrencySymbolByGridName
If _CurrencySymbolByGridName.ContainsKey(gridName) Then
_CurrencySymbolByGridName(gridName) = pNewCurrencySymbol
Else
_CurrencySymbolByGridName.Add(gridName, pNewCurrencySymbol)
End If
End SyncLock
_Logger.Debug("[UpdateCurrencyFormat] Shared Dictionary updated: [{0}] = [{1}]", gridName, pNewCurrencySymbol)
_currencySymbol = pNewCurrencySymbol
Dim oCultureInfo As CultureInfo = New CultureInfo("de-DE")
oCultureInfo.NumberFormat.CurrencySymbol = _currencySymbol
Dim riTextEdit As New RepositoryItemTextEdit()
riTextEdit.MaskSettings.Configure(Of MaskSettings.Numeric)(
Sub(settings)
settings.MaskExpression = "c"
settings.Culture = oCultureInfo
End Sub)
riTextEdit.UseMaskAsDisplayFormat = False
riTextEdit.DisplayFormat.FormatType = FormatType.Custom
riTextEdit.DisplayFormat.FormatString = $"#,##0.00 {_currencySymbol}"
_Logger.Debug("[UpdateCurrencyFormat] riTextEdit: DisplayFormat=[{0}]",
riTextEdit.DisplayFormat.FormatString)
pGridView.BeginUpdate()
Try
' Schritt 1: Altes RepositoryItem entfernen (ohne vorher ColumnEdit=Nothing)
Dim oldItems = pGrid.RepositoryItems.OfType(Of RepositoryItemTextEdit)().
Where(Function(item) item.MaskSettings.MaskExpression = "c").ToList()
For Each oldItem In oldItems
_Logger.Debug("[UpdateCurrencyFormat] Removing old riTextEdit: DisplayFormat=[{0}]",
oldItem.DisplayFormat.FormatString)
pGrid.RepositoryItems.Remove(oldItem)
Next
' Schritt 2: CURRENCY-Spalten konfigurieren
For Each oCol As GridColumn In pGridView.Columns
Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{oCol.FieldName}'").
FirstOrDefault()
If oColumnData Is Nothing Then Continue For
If ObjectEx.NotNull(oColumnData.Item("TYPE_COLUMN"), String.Empty).ToString() <> "CURRENCY" Then Continue For
Dim oIsFormulaExpression As Boolean =
ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty) <> String.Empty
Dim oIsFormulaSql As Boolean =
ObjectEx.NotNull(oColumnData.Item("FORMULA_SQL"), String.Empty) <> String.Empty
' Entweder/Oder: Beide gleichzeitig → Expression gewinnt, SQL ignoriert
If oIsFormulaExpression AndAlso oIsFormulaSql Then
_Logger.Warn("[UpdateCurrencyFormat] Column [{0}] has BOTH FORMULA_EXPRESSION and FORMULA_SQL treating as EXPRESSION only.", oCol.FieldName)
oIsFormulaSql = False
End If
' Spalte ist eine Formel-Spalte (Expression ODER SQL) → ReadOnly, kein ColumnEdit
Dim oIsAnyFormula As Boolean = oIsFormulaExpression OrElse oIsFormulaSql
' DisplayFormat immer aktualisieren
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = $"#,##0.00 {_currencySymbol}"
If Not oIsAnyFormula AndAlso oCol.OptionsColumn.AllowEdit Then
' Nur editierbare Nicht-Formel-Spalten bekommen ein ColumnEdit
oCol.ColumnEdit = riTextEdit
_Logger.Debug("[UpdateCurrencyFormat] ColumnEdit=[{0}] für [{1}]",
DirectCast(oCol.ColumnEdit, RepositoryItemTextEdit).DisplayFormat.FormatString,
oCol.FieldName)
Else
_Logger.Debug("[UpdateCurrencyFormat] [{0}]: ReadOnly/Formula nur DisplayFormat aktualisiert (IsExpression=[{1}], IsSql=[{2}])",
oCol.FieldName, oIsFormulaExpression, oIsFormulaSql)
End If
If ObjectEx.NotNull(oColumnData.Item("SUMMARY_FUNCTION"), String.Empty) =
Constants.AGGREGATE_TOTAL_CURRENCY Then
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = $"{{0:N2}} {_currencySymbol}"
End If
Next
Finally
pGridView.EndUpdate()
End Try
pGridView.LayoutChanged()
For i As Integer = 0 To pGridView.DataRowCount - 1
pGridView.InvalidateRow(i)
Next
pGridView.UpdateTotalSummary()
_Logger.Info("[UpdateCurrencyFormat] *** END *** _currencySymbol=[{0}]", _currencySymbol)
Catch ex As Exception
_Logger.Error("[UpdateCurrencyFormat] Fehler: {0}", ex.Message)
_Logger.Error(ex)
End Try
End Sub
Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl)
Dim oShouldDisplayFooter As Boolean = False Dim oShouldDisplayFooter As Boolean = False
For Each oCol As GridColumn In pGridView.Columns For Each oCol As GridColumn In pGridView.Columns
Dim oColumnData As DataRow = pColumnTable. Dim oColumnData As DataRow = pColumnTable.
@@ -237,7 +447,10 @@ Namespace ControlCreator
If oFormulaExpression <> String.Empty Then If oFormulaExpression <> String.Empty Then
oIsReadOnly = True oIsReadOnly = True
End If End If
Dim oSQLExpression = ObjectEx.NotNull(oColumnData.Item("FORMULA_SQL"), String.Empty)
If oSQLExpression <> String.Empty Then
oIsReadOnly = True
End If
oCol.OptionsColumn.AllowEdit = Not oIsReadOnly oCol.OptionsColumn.AllowEdit = Not oIsReadOnly
@@ -253,8 +466,14 @@ Namespace ControlCreator
oCol.DisplayFormat.FormatString = "N2" oCol.DisplayFormat.FormatString = "N2"
Case "CURRENCY" Case "CURRENCY"
oCol.DisplayFormat.FormatType = FormatType.Custom ' *** DisplayFormat wird NICHT hier gesetzt ***
oCol.DisplayFormat.FormatString = "C2" ' ConfigureViewColumnsCurrency übernimmt die CURRENCY-Formatierung
' mit dem korrekten _currencySymbol. Dieses Standardformat würde
' später von UpdateCurrencyFormat überschrieben werden müssen
' für Formel-Spalten (kein ColumnEdit) greift aber nur DisplayFormat,
' weshalb ein falscher Initialwert hier persistent bleibt.
_Logger.Debug("CURRENCY column [{0}]: DisplayFormat wird von ConfigureViewColumnsCurrency gesetzt", oCol.FieldName)
End Select End Select
Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION") Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION")
@@ -262,16 +481,17 @@ Namespace ControlCreator
Select Case oSummaryFunction Select Case oSummaryFunction
Case Constants.AGGREGATE_TOTAL_INTEGER Case Constants.AGGREGATE_TOTAL_INTEGER
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N0}" oCol.SummaryItem.DisplayFormat = "{0:N0}"
oShouldDisplayFooter = True oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_FLOAT Case Constants.AGGREGATE_TOTAL_FLOAT
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
oCol.SummaryItem.DisplayFormat = "SUM: {0:N2}" oCol.SummaryItem.DisplayFormat = "{0:N2}"
oShouldDisplayFooter = True oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_CURRENCY Case Constants.AGGREGATE_TOTAL_CURRENCY
ApplyCurrencySummaryFormat(oCol, pcurrencySymbol) _Logger.Debug(Of String)("Applying currency summary format for column [{0}]", oCol.FieldName)
ApplyCurrencySummaryFormat(oCol)
oShouldDisplayFooter = True oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_AVG Case Constants.AGGREGATE_TOTAL_AVG
@@ -306,37 +526,179 @@ Namespace ControlCreator
End With End With
End If End If
End Sub End Sub
Public Sub ConfigureViewColumnsCurrency(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pCurrency As String)
Public Sub ConfigureViewColumnsCurrency(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl)
Dim oCultureInfo As CultureInfo = New CultureInfo("de-DE") Dim oCultureInfo As CultureInfo = New CultureInfo("de-DE")
oCultureInfo.NumberFormat.CurrencySymbol = pCurrency oCultureInfo.NumberFormat.CurrencySymbol = _currencySymbol
Dim riTextEdit As RepositoryItemTextEdit = New RepositoryItemTextEdit() Dim riTextEdit As RepositoryItemTextEdit = New RepositoryItemTextEdit()
riTextEdit.MaskSettings.Configure(Of MaskSettings.Numeric)(Sub(settings) riTextEdit.MaskSettings.Configure(Of MaskSettings.Numeric)(
Sub(settings)
settings.MaskExpression = "c" settings.MaskExpression = "c"
settings.Culture = oCultureInfo settings.Culture = oCultureInfo
End Sub) End Sub)
riTextEdit.UseMaskAsDisplayFormat = True 'Optional riTextEdit.UseMaskAsDisplayFormat = False
pGrid.RepositoryItems.Add(riTextEdit) riTextEdit.DisplayFormat.FormatType = FormatType.Custom
riTextEdit.DisplayFormat.FormatString = $"#,##0.00 {_currencySymbol}"
_Logger.Debug("[ConfigureViewColumnsCurrency] riTextEdit erstellt: DisplayFormat=[{0}], HashCode=[{1}]",
riTextEdit.DisplayFormat.FormatString, riTextEdit.GetHashCode())
_Logger.Debug("[ConfigureViewColumnsCurrency] pGrid.RepositoryItems.Count VOR Schleife=[{0}]",
pGrid.RepositoryItems.Count)
For Each oCol As GridColumn In pGridView.Columns For Each oCol As GridColumn In pGridView.Columns
Dim oColumnData As DataRow = pColumnTable. Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{oCol.FieldName}'"). Select($"SPALTENNAME = '{oCol.FieldName}'").
FirstOrDefault() FirstOrDefault()
If oColumnData Is Nothing Then Continue For
If oColumnData Is Nothing Then Dim oColumnType As String = ObjectEx.NotNull(oColumnData.Item("TYPE_COLUMN"), String.Empty).ToString()
Continue For If oColumnType <> "CURRENCY" Then Continue For
Dim oFormulaExpression = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty)
Dim oFormulaSql = ObjectEx.NotNull(oColumnData.Item("FORMULA_SQL"), String.Empty)
' Entweder/Oder: Beide gleichzeitig → Expression gewinnt, SQL ignoriert
If oFormulaExpression <> String.Empty AndAlso oFormulaSql <> String.Empty Then
_Logger.Warn("[ConfigureViewColumnsCurrency] Column [{0}] has BOTH FORMULA_EXPRESSION and FORMULA_SQL treating as EXPRESSION only.", oCol.FieldName)
oFormulaSql = String.Empty
End If End If
Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN") ' Spalte ist eine Formel-Spalte (Expression ODER SQL) → nur DisplayFormat, kein ColumnEdit
Dim oIsAnyFormula As Boolean = oFormulaExpression <> String.Empty OrElse oFormulaSql <> String.Empty
Select Case oColumnType If oIsAnyFormula Then
Case "CURRENCY" ' Formel-Spalten (Expression oder SQL): nur DisplayFormat setzen
oCol.DisplayFormat.FormatType = FormatType.Custom oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = $"#,##0.00 {_currencySymbol}"
_Logger.Debug("[ConfigureViewColumnsCurrency] Formel-Spalte [{0}] (IsExpression=[{1}], IsSql=[{2}]): DisplayFormat=[{3}], RepositoryItems.Count=[{4}]",
oCol.FieldName,
oFormulaExpression <> String.Empty,
oFormulaSql <> String.Empty,
oCol.DisplayFormat.FormatString,
pGrid.RepositoryItems.Count)
ElseIf oCol.OptionsColumn.AllowEdit Then
_Logger.Debug("[ConfigureViewColumnsCurrency] [{0}] VOR ColumnEdit: RepositoryItems.Count=[{1}]",
oCol.FieldName, pGrid.RepositoryItems.Count)
oCol.ColumnEdit = riTextEdit oCol.ColumnEdit = riTextEdit
End Select
_Logger.Debug("[ConfigureViewColumnsCurrency] [{0}] NACH ColumnEdit: RepositoryItems.Count=[{1}]",
oCol.FieldName, pGrid.RepositoryItems.Count)
Dim assignedEdit = TryCast(oCol.ColumnEdit, RepositoryItemTextEdit)
_Logger.Debug("[ConfigureViewColumnsCurrency] [{0}]: IsSameObject=[{1}], ColumnEdit.DisplayFormat=[{2}], ColumnEdit.HashCode=[{3}]",
oCol.FieldName,
Object.ReferenceEquals(assignedEdit, riTextEdit),
If(assignedEdit IsNot Nothing, assignedEdit.DisplayFormat.FormatString, "N/A"),
If(assignedEdit IsNot Nothing, assignedEdit.GetHashCode(), -1))
For i As Integer = 0 To pGrid.RepositoryItems.Count - 1
_Logger.Debug("[ConfigureViewColumnsCurrency] RepositoryItems[{0}]: Type=[{1}], HashCode=[{2}]",
i, pGrid.RepositoryItems(i).GetType().Name, pGrid.RepositoryItems(i).GetHashCode())
Next Next
End If
Next
Dim oTestFired As Boolean = False
AddHandler pGridView.CustomColumnDisplayText,
Sub(sender As Object, e As CustomColumnDisplayTextEventArgs)
If e.Column Is Nothing OrElse e.Value Is Nothing OrElse IsDBNull(e.Value) Then
Return
End If
Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{e.Column.FieldName}'").
FirstOrDefault()
If oColumnData IsNot Nothing AndAlso
oColumnData.Item("TYPE_COLUMN").ToString() = "CURRENCY" Then
Try
Dim currentSymbol As String = _currencySymbol
Dim gridName As String = pGrid.Name
SyncLock _CurrencySymbolByGridName
If _CurrencySymbolByGridName.ContainsKey(gridName) Then
currentSymbol = _CurrencySymbolByGridName(gridName)
End If
End SyncLock
Dim oValue As Double
If TypeOf e.Value Is Double OrElse TypeOf e.Value Is Decimal Then
oValue = Convert.ToDouble(e.Value)
ElseIf TypeOf e.Value Is String Then
Dim oStringValue As String = e.Value.ToString().Trim()
Dim oDeCulture As CultureInfo = New CultureInfo("de-DE")
If Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, oDeCulture, oValue) Then
ElseIf Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, CultureInfo.InvariantCulture, oValue) Then
Else
oValue = Convert.ToDouble(oStringValue, CultureInfo.CurrentCulture)
End If
Else
oValue = Convert.ToDouble(e.Value)
End If
Dim oDeCultureInfo As CultureInfo = New CultureInfo("de-DE")
e.DisplayText = oValue.ToString("N2", oDeCultureInfo) & " " & currentSymbol
_Logger.Debug("[CustomColumnDisplayText] CURRENCY [{0}]: DisplayText=[{1}], Symbol=[{2}] (from Shared Dict in ConfigureViewColumnsCurrency)",
e.Column.FieldName, e.DisplayText, currentSymbol)
Catch ex As Exception
_Logger.Warn("⚠️ Could not format currency value [{0}] for column [{1}]: {2}",
e.Value, e.Column.FieldName, ex.Message)
Dim fallbackSymbol As String = _currencySymbol
SyncLock _CurrencySymbolByGridName
If _CurrencySymbolByGridName.ContainsKey(pGrid.Name) Then
fallbackSymbol = _CurrencySymbolByGridName(pGrid.Name)
End If
End SyncLock
e.DisplayText = e.Value.ToString() & " " & fallbackSymbol
End Try
End If
End Sub End Sub
End Sub
Public Sub ConfigureViewEvents(pColumnTable As DataTable, pGridView As GridView, pControl As Windows.Forms.Control, pControlId As Integer) Public Sub ConfigureViewEvents(pColumnTable As DataTable, pGridView As GridView, pControl As Windows.Forms.Control, pControlId As Integer)
' *** Formel-Spalten einmalig cachen + Validierung: Entweder EXPRESSION oder SQL, nie beides ***
_FormulaColumnNames.Clear()
_FormulaSqlColumns.Clear()
For Each r As DataRow In pColumnTable.Rows
Dim oColName = r.Item("SPALTENNAME").ToString()
Dim oExpr = ObjectEx.NotNull(r.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
Dim oSql = ObjectEx.NotNull(r.Item("FORMULA_SQL"), String.Empty).ToString()
' *** VALIDIERUNG: Beides gleichzeitig ist nicht erlaubt ***
If oExpr <> String.Empty AndAlso oSql <> String.Empty Then
_Logger.Warn("⚠️ Column [{0}] has BOTH FORMULA_EXPRESSION and FORMULA_SQL this is not allowed! FORMULA_SQL will be ignored.", oColName)
MsgBox(String.Format(
"Die Spalte '{0}' enthält sowohl eine FORMULA_EXPRESSION als auch eine FORMULA_SQL." & vbCrLf &
"Es darf nur eine der beiden Formeln gesetzt sein." & vbCrLf &
"FORMULA_SQL wird ignoriert. Bitte korrigieren Sie die Konfiguration im Tabellen-Designer.",
oColName), MsgBoxStyle.Exclamation, "Ungültige Spalten-Konfiguration")
' FORMULA_EXPRESSION hat Vorrang → SQL ignorieren
oSql = String.Empty
End If
If oExpr <> String.Empty Then
_FormulaColumnNames.Add(oColName)
_Logger.Debug("[ConfigureViewEvents] Column [{0}] registered as FORMULA_EXPRESSION column.", oColName)
ElseIf oSql <> String.Empty Then
Dim oConnectionId As Integer = r.ItemEx("CONNECTION_ID", 0)
_FormulaSqlColumns(oColName) = New FormulaSqlDefinition() With {
.SqlTemplate = oSql,
.ReferencedColumns = GetReferencedSqlColumnNames(oSql)
}
' SQL-Spalten auch in _FormulaColumnNames aufnehmen → Editor-Blockade + ReadOnly
_FormulaColumnNames.Add(oColName)
_Logger.Debug("[ConfigureViewEvents] Column [{0}] registered as FORMULA_SQL column. ReferencedColumns=[{1}]",
oColName, String.Join(", ", GetReferencedSqlColumnNames(oSql)))
End If
Next
AddHandler pGridView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs) AddHandler pGridView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs)
Try Try
_Logger.Debug("Initialzing new row") _Logger.Debug("Initialzing new row")
@@ -362,23 +724,100 @@ Namespace ControlCreator
newRowModified = False newRowModified = False
End Try End Try
End Sub End Sub
' *** NEU: CustomColumnDisplayText für robuste CURRENCY-Formatierung ***
AddHandler pGridView.CustomColumnDisplayText,
Sub(sender As Object, e As CustomColumnDisplayTextEventArgs)
If e.Column Is Nothing OrElse e.Value Is Nothing OrElse IsDBNull(e.Value) Then
Return
End If
' Prüfe ob Spalte vom Typ CURRENCY ist
Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{e.Column.FieldName}'").
FirstOrDefault()
If oColumnData IsNot Nothing AndAlso
oColumnData.Item("TYPE_COLUMN").ToString() = "CURRENCY" Then
Try
' *** KERN-FIX: Hole Symbol aus SHARED Dictionary statt Instanz-Feld ***
Dim currentSymbol As String = _currencySymbol ' Fallback
Dim gridName As String = pControl.Name
SyncLock _CurrencySymbolByGridName
If _CurrencySymbolByGridName.ContainsKey(gridName) Then
currentSymbol = _CurrencySymbolByGridName(gridName)
End If
End SyncLock
Dim oValue As Double
' *** KRITISCH: Robustes Parsing unabhängig vom Dezimaltrenner ***
If TypeOf e.Value Is Double OrElse TypeOf e.Value Is Decimal Then
oValue = Convert.ToDouble(e.Value)
ElseIf TypeOf e.Value Is String Then
Dim oStringValue As String = e.Value.ToString().Trim()
' Versuche zuerst deutsches Format (1.234,56)
Dim oDeCulture As CultureInfo = New CultureInfo("de-DE")
If Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, oDeCulture, oValue) Then
' Erfolgreich mit deutschem Format geparst
ElseIf Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, CultureInfo.InvariantCulture, oValue) Then
' Erfolgreich mit invariantem Format (Punkt als Dezimaltrenner)
Else
' Fallback: Systemkultur
oValue = Convert.ToDouble(oStringValue, CultureInfo.CurrentCulture)
End If
Else
oValue = Convert.ToDouble(e.Value)
End If
' Formatierung IMMER mit deutscher Kultur (Komma als Dezimaltrenner)
Dim oDeCultureInfo As CultureInfo = New CultureInfo("de-DE")
e.DisplayText = oValue.ToString("N2", oDeCultureInfo) & " " & currentSymbol
_Logger.Debug("[CustomColumnDisplayText] CURRENCY [{0}]: DisplayText=[{1}], Symbol=[{2}] (from Shared Dict in ConfigureViewEvents)",
e.Column.FieldName, e.DisplayText, currentSymbol)
Catch ex As Exception
_Logger.Warn("⚠️ Could not format currency value [{0}] for column [{1}]: {2}",
e.Value, e.Column.FieldName, ex.Message)
' Fallback: Original-Wert + Symbol
Dim fallbackSymbol As String = _currencySymbol
SyncLock _CurrencySymbolByGridName
If _CurrencySymbolByGridName.ContainsKey(pControl.Name) Then
fallbackSymbol = _CurrencySymbolByGridName(pControl.Name)
End If
End SyncLock
e.DisplayText = e.Value.ToString() & " " & fallbackSymbol
End Try
End If
End Sub
AddHandler pGridView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs) AddHandler pGridView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
Try Try
For Each oRow As DataRow In pColumnTable.Rows For Each oRow As DataRow In pColumnTable.Rows
Dim oColumnName = oRow.Item("SPALTENNAME") Dim oColumnName As String = oRow.Item("SPALTENNAME").ToString()
If oColumnName <> e.Column.FieldName Then Continue For
Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(pControlId, oColumnName) Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(pControlId, oColumnName)
If oColumnName <> e.Column.FieldName Then
Continue For
End If
If oEditorExists Then If oEditorExists Then
' Combobox/Lookup-Editor aus GridTables: immer zuweisen
Dim oEditor = _GridTables.Item(pControlId).Item(oColumnName) Dim oEditor = _GridTables.Item(pControlId).Item(oColumnName)
_Logger.Debug("Assigning Editor to Column [{0}]", oColumnName) _Logger.Debug("Assigning Editor to Column [{0}]", oColumnName)
e.RepositoryItem = oEditor e.RepositoryItem = oEditor
Else
Dim oColumnType As String = ObjectEx.NotNull(oRow.Item("TYPE_COLUMN"), String.Empty).ToString()
If oColumnType = "CURRENCY" Then
If _FormulaColumnNames.Contains(oColumnName) Then
_Logger.Debug("CURRENCY column [{0}] is formula/readonly CustomColumnDisplayText handles display", oColumnName)
Else
_Logger.Debug("CURRENCY column [{0}] NO e.RepositoryItem set. Display via CustomColumnDisplayText, Edit via GridColumn.ColumnEdit", oColumnName)
End If
Else Else
_Logger.Debug("Editor for Column [{0}] does not exist", oColumnName) _Logger.Debug("Editor for Column [{0}] does not exist", oColumnName)
End If End If
End If
Exit For
Next Next
Catch ex As Exception Catch ex As Exception
_Logger.Warn("⚠️ Error in CustomRowCellEdit for [{0}]", e.CellValue) _Logger.Warn("⚠️ Error in CustomRowCellEdit for [{0}]", e.CellValue)
@@ -394,30 +833,328 @@ Namespace ControlCreator
End Sub End Sub
AddHandler pGridView.PopupMenuShowing, AddressOf View_PopupMenuShowing AddHandler pGridView.PopupMenuShowing, AddressOf View_PopupMenuShowing
AddHandler pGridView.InvalidRowException, AddressOf View_InvalidRowException AddHandler pGridView.InvalidRowException, AddressOf View_InvalidRowException
AddHandler pGridView.ValidatingEditor, AddressOf View_ValidatingEditor AddHandler pGridView.ValidatingEditor, AddressOf View_ValidatingEditor
' AddHandler pGridView.CustomColumnDisplayText, AddressOf View_CustomColumnDisplayText AddHandler pGridView.ShownEditor,
Sub(sender As Object, e As EventArgs)
Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(view.FocusedRowHandle) Then
_Logger.Debug("Attaching Modified Handler.")
AddHandler view.ActiveEditor.Modified, Sub()
_Logger.Debug("Row was modified.")
newRowModified = True
End Sub
End If
' *** LIVE-REFRESH bei JEDER Eingabe (nur für FORMULA_EXPRESSION!) ***
' FORMULA_SQL wird NICHT hier behandelt SQL-Refresh erfolgt nur über CellValueChanged
If view.FocusedColumn IsNot Nothing AndAlso view.ActiveEditor IsNot Nothing Then
Dim oFocusedColumnName As String = view.FocusedColumn.FieldName
' Prüfen ob diese Spalte von FORMULA_EXPRESSION-Spalten referenziert wird
Dim oFormulaColumnsToRefresh As New List(Of String)
For Each oColumnData As DataRow In pColumnTable.Rows
Dim oColName = oColumnData.Item("SPALTENNAME").ToString()
Dim oExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
' Nur FORMULA_EXPRESSION FORMULA_SQL wird über CellValueChanged behandelt
If oExpr = String.Empty Then
Continue For
End If
' Spalte darf keine FORMULA_SQL haben (wurde oben validiert, Sicherheitsprüfung)
Dim oSqlExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_SQL"), String.Empty).ToString()
If oSqlExpr <> String.Empty Then
_Logger.Debug("[FormulaRefresh] Column [{0}] has both FORMULA_EXPRESSION and FORMULA_SQL skipping live refresh.", oColName)
Continue For
End If
Dim referencedColumns = GetReferencedColumnNames(oExpr)
If referencedColumns.Any(Function(col) String.Equals(col, oFocusedColumnName, StringComparison.OrdinalIgnoreCase)) Then
oFormulaColumnsToRefresh.Add(oColName)
End If
Next
If oFormulaColumnsToRefresh.Count > 0 Then
_Logger.Debug("[FormulaRefresh] Attaching EditValueChanged handler for LIVE formula updates on column [{0}].", oFocusedColumnName)
' Handler für LIVE Aktualisierung während JEDER Eingabe
AddHandler view.ActiveEditor.EditValueChanged,
Sub(editorSender As Object, editorArgs As EventArgs)
Try
Dim oRowHandle As Integer = view.FocusedRowHandle
If Not view.IsValidRowHandle(oRowHandle) Then Return
Dim oEditor As DevExpress.XtraEditors.BaseEdit = TryCast(editorSender, DevExpress.XtraEditors.BaseEdit)
If oEditor Is Nothing Then Return
Dim isNewItemRow As Boolean = view.IsNewItemRow(oRowHandle)
Try
Dim oValue As Object = oEditor.EditValue
If TypeOf oEditor Is DevExpress.XtraEditors.TextEdit Then
Dim oTextEdit As DevExpress.XtraEditors.TextEdit = DirectCast(oEditor, DevExpress.XtraEditors.TextEdit)
If oTextEdit.Properties.MaskSettings IsNot Nothing Then
oValue = oEditor.EditValue
End If
End If
If isNewItemRow Then
_Logger.Debug("[FormulaRefresh] EditValueChanged (NewItemRow) setting value for [{0}] = [{1}].", oFocusedColumnName, oValue)
_isRefreshingFormula = True
Try
' Wert setzen
view.SetRowCellValue(oRowHandle, oFocusedColumnName, If(oValue Is Nothing, DBNull.Value, oValue))
' *** KRITISCH: DoEvents() damit SetRowCellValue processed wird ***
view.UpdateCurrentRow()
' Formel-Spalten SOFORT refreshen
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = view.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn IsNot Nothing Then
view.RefreshRowCell(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] (NewItemRow) Refreshed [{0}], current value: [{1}]",
oFormulaColumnName, view.GetRowCellValue(oRowHandle, oGridColumn))
End If
Next
Finally
_isRefreshingFormula = False
End Try
Else
' Bestehende Row
Dim oDataRow As DataRow = view.GetDataRow(oRowHandle)
If oDataRow IsNot Nothing Then
_Logger.Debug("[FormulaRefresh] EditValueChanged setting value for [{0}] in DataTable.", oFocusedColumnName)
oDataRow.Item(oFocusedColumnName) = If(oValue Is Nothing, DBNull.Value, oValue)
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = view.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn IsNot Nothing Then
view.RefreshRowCell(oRowHandle, oGridColumn)
Dim currentValue = view.GetRowCellValue(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] Current value for [{0}]: [{1}]", oFormulaColumnName, currentValue)
End If
Next
End If
End If
Catch parseEx As Exception
_Logger.Debug("[FormulaRefresh] Parse error during EditValueChanged: {0}", parseEx.Message)
End Try
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
End If
End If
End Sub
' These handlers are all used for the custom DefaultValue functionality, additionally some code in the 'InitNewRow' event.
' https://supportcenter.devexpress.com/ticket/details/t1035580/how-to-default-a-value-in-a-column-when-add-new-row-in-data-grid
AddHandler pGridView.ShowingEditor, AddressOf View_ShowingEditor
AddHandler pGridView.ShownEditor, AddressOf View_ShownEditor
AddHandler pGridView.ValidateRow, AddressOf View_ValidateRow AddHandler pGridView.ValidateRow, AddressOf View_ValidateRow
AddHandler pControl.LostFocus, AddressOf Control_LostFocus AddHandler pControl.LostFocus, AddressOf Control_LostFocus
AddHandler pGridView.ShowingEditor,
Sub(sender As Object, e As CancelEventArgs)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing Then Return
_Logger.Debug("Showing editor.")
' Formel-Spalten dürfen keinen Editor öffnen (gilt für EXPRESSION UND SQL)
If oView.FocusedColumn IsNot Nothing Then
Dim oFieldName As String = oView.FocusedColumn.FieldName
If _FormulaColumnNames.Contains(oFieldName) Then
_Logger.Debug("Cancelling editor column [{0}] is a formula column (Expression or SQL).", oFieldName)
e.Cancel = True
Return
End If
End If
If oView.IsNewItemRow(oView.FocusedRowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Adding new row.")
oView.AddNewRow()
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
AddHandler pGridView.FocusedColumnChanged,
Sub(sender As Object, e As FocusedColumnChangedEventArgs)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing Then Return
Dim oRowHandle As Integer = oView.FocusedRowHandle
If oView.IsNewItemRow(oRowHandle) Then Return
If Not oView.IsValidRowHandle(oRowHandle) Then Return
If oView.FocusedColumn IsNot Nothing AndAlso
_FormulaColumnNames.Contains(oView.FocusedColumn.FieldName) Then
_Logger.Debug("[FormulaRefresh] FocusedColumnChanged closing editor on formula column [{0}].", oView.FocusedColumn.FieldName)
oView.CloseEditor()
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
AddHandler pGridView.CellValueChanged, AddHandler pGridView.CellValueChanged,
Sub(sender As Object, e As CellValueChangedEventArgs) Sub(sender As Object, e As CellValueChangedEventArgs)
' *** HandleInheritedColumnValue MUSS zuerst aufgerufen werden ***
Try Try
HandleInheritedColumnValue(TryCast(sender, GridView), pColumnTable, e) HandleInheritedColumnValue(TryCast(sender, GridView), pColumnTable, e)
Catch ex As Exception Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
End Try End Try
' *** FORMULA_EXPRESSION-Refresh via CellValueChanged (FALLBACK) ***
' (EditValueChanged macht das normalerweise schon LIVE)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing OrElse e.Column Is Nothing Then Return
Dim oFormulaColumnsToRefresh As New List(Of String)
For Each oColumnData As DataRow In pColumnTable.Rows
Dim oExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
If oExpr = String.Empty Then Continue For
' Nur FORMULA_EXPRESSION kein SQL
Dim oSqlExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_SQL"), String.Empty).ToString()
If oSqlExpr <> String.Empty Then Continue For
Dim referencedColumns = GetReferencedColumnNames(oExpr)
If referencedColumns.Any(Function(col) String.Equals(col, e.Column.FieldName, StringComparison.OrdinalIgnoreCase)) Then
oFormulaColumnsToRefresh.Add(oColumnData.Item("SPALTENNAME").ToString())
End If
Next
If oFormulaColumnsToRefresh.Count = 0 Then
' Kein FORMULA_EXPRESSION-Refresh nötig weiter zu FORMULA_SQL
Else
Dim oRowHandle As Integer = e.RowHandle
_Logger.Debug("[FormulaRefresh] CellValueChanged FALLBACK refreshing EXPRESSION columns for row [{0}] after column [{1}] changed.", oRowHandle, e.Column.FieldName)
oView.GridControl.BeginInvoke(New Action(
Sub()
Try
If Not oView.IsValidRowHandle(oRowHandle) Then Return
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = oView.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn Is Nothing Then Continue For
oView.RefreshRowCell(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] FALLBACK DisplayText for [{0}]: [{1}]",
oFormulaColumnName, oView.GetRowCellDisplayText(oRowHandle, oGridColumn))
Next
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub))
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
' *** FORMULA_SQL-Refresh via CellValueChanged ***
' SQL wird NUR hier ausgeführt (nicht in EditValueChanged) um DB-Roundtrips zu minimieren
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing OrElse e.Column Is Nothing Then Return
' Finde alle SQL-Formelspalten, die die geänderte Spalte referenzieren
Dim oSqlColumnsToRefresh As New List(Of String)
For Each kvp In _FormulaSqlColumns
If kvp.Value.ReferencedColumns.Any(
Function(col) String.Equals(col, e.Column.FieldName, StringComparison.OrdinalIgnoreCase)) Then
oSqlColumnsToRefresh.Add(kvp.Key)
End If
Next
If oSqlColumnsToRefresh.Count = 0 Then Return
Dim oRowHandle As Integer = e.RowHandle
_Logger.Debug("[FormulaSql] CellValueChanged column [{0}] triggers SQL refresh for: [{1}]",
e.Column.FieldName, String.Join(", ", oSqlColumnsToRefresh))
' BeginInvoke: UI nicht blockieren, GridView in stabilem Zustand
oView.GridControl.BeginInvoke(New Action(
Sub()
Try
If Not oView.IsValidRowHandle(oRowHandle) Then Return
For Each oSqlColumnName As String In oSqlColumnsToRefresh
Dim oDefinition = _FormulaSqlColumns(oSqlColumnName)
' Prüfen ob ALLE referenzierten Spalten einen Wert haben
Dim allValuesPresent As Boolean = True
For Each refCol In oDefinition.ReferencedColumns
Dim cellVal = oView.GetRowCellValue(oRowHandle, refCol)
If cellVal Is Nothing OrElse IsDBNull(cellVal) Then
_Logger.Debug("[FormulaSql] Column [{0}] has NULL value skipping SQL for [{1}]", refCol, oSqlColumnName)
allValuesPresent = False
Exit For
End If
Next
If Not allValuesPresent Then Continue For
' Pattern ersetzen und SQL ausführen
Dim resolvedSql = ResolveSqlTemplate(oDefinition.SqlTemplate, oView, oRowHandle)
_Logger.Debug("[FormulaSql] Executing SQL for [{0}]: [{1}]", oSqlColumnName, resolvedSql)
Try
Dim oResultTable As DataTable = DatabaseFallback.GetDatatable(
New GetDatatableOptions(resolvedSql, DatabaseType.ECM))
If oResultTable IsNot Nothing AndAlso oResultTable.Rows.Count > 0 Then
Dim oResult = oResultTable.Rows(0).Item(0)
_Logger.Debug("[FormulaSql] Result for [{0}]: [{1}]", oSqlColumnName, oResult)
_isRefreshingFormula = True
Try
oView.SetRowCellValue(oRowHandle, oSqlColumnName,
If(oResult Is Nothing OrElse IsDBNull(oResult), DBNull.Value, oResult))
oView.RefreshRowCell(oRowHandle, oView.Columns.ColumnByFieldName(oSqlColumnName))
Finally
_isRefreshingFormula = False
End Try
Else
_Logger.Warn("[FormulaSql] No result returned for [{0}]", oSqlColumnName)
End If
Catch sqlEx As Exception
_Logger.Warn("⚠️ [FormulaSql] SQL execution failed for [{0}]: {1}", oSqlColumnName, sqlEx.Message)
_Logger.Error(sqlEx)
End Try
Next
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub))
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub End Sub
End Sub End Sub
Private Sub HandleInheritedColumnValue(pView As GridView, pColumnDefinition As DataTable, pArgs As CellValueChangedEventArgs) Private Sub HandleInheritedColumnValue(pView As GridView, pColumnDefinition As DataTable, pArgs As CellValueChangedEventArgs)
If pView Is Nothing OrElse pArgs Is Nothing OrElse pArgs.Column Is Nothing Then If pView Is Nothing OrElse pArgs Is Nothing OrElse pArgs.Column Is Nothing Then
Return Return
End If End If
' *** NEU: Bei Formel-Refresh überspringen ***
If _isRefreshingFormula Then
_Logger.Debug("Skipping HandleInheritedColumnValue during formula refresh.")
Return
End If
If isApplyingInheritedValue OrElse pArgs.RowHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle Then If isApplyingInheritedValue OrElse pArgs.RowHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
Return Return
@@ -579,16 +1316,7 @@ Namespace ControlCreator
Return entry Return entry
End Function End Function
Private Sub View_CustomColumnDisplayText(ByVal eSender As Object, ByVal e As CustomColumnDisplayTextEventArgs)
If IsNothing(e.Value) Then
Exit Sub
End If
Dim view As GridView = eSender
'Dim view As GridView = TryCast(GridView1, GridView)
If e.Column.FieldName = "SpalteCurrency" Then
' e.DisplayText = e.Value.ToString().Replace("€", "CHF")
End If
End Sub
Private Sub View_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs) Private Sub View_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs)
Dim view As GridView = TryCast(sender, GridView) Dim view As GridView = TryCast(sender, GridView)
Dim oFocusedColumn As GridColumn = view.FocusedColumn Dim oFocusedColumn As GridColumn = view.FocusedColumn
@@ -642,28 +1370,12 @@ Namespace ControlCreator
End If End If
End Sub End Sub
Private Sub View_ShowingEditor(sender As Object, e As CancelEventArgs)
Dim view As GridView = TryCast(sender, GridView)
_Logger.Debug("Showing editor.")
If view.IsNewItemRow(view.FocusedRowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Adding new row.")
view.AddNewRow()
End If
End Sub
Private Sub View_ShownEditor(sender As Object, e As EventArgs)
Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(view.FocusedRowHandle) Then
_Logger.Debug("Attaching Modified Handler.")
AddHandler view.ActiveEditor.Modified, Sub()
_Logger.Debug("Row was modified.")
newRowModified = True
End Sub
End If
End Sub
Private Sub View_ValidateRow(sender As Object, e As ValidateRowEventArgs) Private Sub View_ValidateRow(sender As Object, e As ValidateRowEventArgs)
Dim view As GridView = TryCast(sender, GridView) Dim view As GridView = TryCast(sender, GridView)
' RowHandle für RowUpdated merken, bevor er sich nach dem Commit ändert
If view.IsNewItemRow(e.RowHandle) AndAlso Not newRowModified Then If view.IsNewItemRow(e.RowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Deleting unused row") _Logger.Debug("Deleting unused row")
view.DeleteRow(e.RowHandle) view.DeleteRow(e.RowHandle)

File diff suppressed because it is too large Load Diff

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

@@ -56,32 +56,24 @@
<TableUISetting Name="TBPM_CONTROL_TABLE"> <TableUISetting Name="TBPM_CONTROL_TABLE">
<ColumnUISettings> <ColumnUISettings>
<ColumnUISetting Name="ADDED_WHO"> <ColumnUISetting Name="ADDED_WHO">
<ControlSettings> <ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting> </ControlSetting></ControlSettings>
</ControlSettings>
</ColumnUISetting> </ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN"> <ColumnUISetting Name="ADDED_WHEN">
<ControlSettings> <ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting> </ControlSetting></ControlSettings>
</ControlSettings>
</ColumnUISetting> </ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN"> <ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings> <ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting> </ControlSetting></ControlSettings>
</ControlSettings>
</ColumnUISetting> </ColumnUISetting>
<ColumnUISetting Name="TYPE_COLUMN"> <ColumnUISetting Name="TYPE_COLUMN">
<ControlSettings> <ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting> </ControlSetting></ControlSettings>
</ControlSettings>
</ColumnUISetting> </ColumnUISetting>
</ColumnUISettings> </ColumnUISettings>
</TableUISetting> </TableUISetting>

View File

@@ -1319,7 +1319,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
<DbCommand CommandType="Text" ModifiedByUser="false"> <DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, <CommandText>SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO,
CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
FORMULA_EXPRESSION FORMULA_EXPRESSION, FORMULA_SQL
FROM TBPM_CONTROL_TABLE FROM TBPM_CONTROL_TABLE
WHERE (CONTROL_ID = @CONTROL_ID)</CommandText> WHERE (CONTROL_ID = @CONTROL_ID)</CommandText>
<Parameters> <Parameters>
@@ -1334,7 +1334,7 @@ SET CONTROL_ID = @CONTROL_ID, SPALTENNAME = @SPALTENNAME, SPALTEN
CONNECTION_ID = @CONNECTION_ID, SQL_COMMAND = @SQL_COMMAND, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE, ADDED_WHO = @ADDED_WHO, ADDED_WHEN = @ADDED_WHEN, CONNECTION_ID = @CONNECTION_ID, SQL_COMMAND = @SQL_COMMAND, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE, ADDED_WHO = @ADDED_WHO, ADDED_WHEN = @ADDED_WHEN,
CHANGED_WHO = @CHANGED_WHO, CHANGED_WHEN = @CHANGED_WHEN, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE, CHANGED_WHO = @CHANGED_WHO, CHANGED_WHEN = @CHANGED_WHEN, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE,
SEQUENCE = @SEQUENCE, DEFAULT_VALUE = @DEFAULT_VALUE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SAVE_CHANGE_ON_ENABLED = @SAVE_CHANGE_ON_ENABLED, INHERIT_VALUE = @INHERIT_VALUE, SEQUENCE = @SEQUENCE, DEFAULT_VALUE = @DEFAULT_VALUE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SAVE_CHANGE_ON_ENABLED = @SAVE_CHANGE_ON_ENABLED, INHERIT_VALUE = @INHERIT_VALUE,
LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION = @FORMULA_EXPRESSION LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION = @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA_SQL
WHERE (GUID = @Original_GUID); WHERE (GUID = @Original_GUID);
SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TBPM_CONTROL_TABLE WHERE (GUID = @GUID)</CommandText> SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TBPM_CONTROL_TABLE WHERE (GUID = @GUID)</CommandText>
<Parameters> <Parameters>
@@ -1362,6 +1362,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_SQL" ColumnName="FORMULA_SQL" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(3000)" DbType="String" Direction="Input" ParameterName="@FORMULA_SQL" Precision="0" ProviderType="NVarChar" Scale="0" Size="3000" SourceColumn="FORMULA_SQL" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" /> <Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" /> <Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters> </Parameters>
@@ -1396,6 +1397,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
<Mapping SourceColumn="LU_CAPTION" DataSetColumn="LU_CAPTION" /> <Mapping SourceColumn="LU_CAPTION" DataSetColumn="LU_CAPTION" />
<Mapping SourceColumn="INHERIT_VALUE" DataSetColumn="INHERIT_VALUE" /> <Mapping SourceColumn="INHERIT_VALUE" DataSetColumn="INHERIT_VALUE" />
<Mapping SourceColumn="FORMULA_EXPRESSION" DataSetColumn="FORMULA_EXPRESSION" /> <Mapping SourceColumn="FORMULA_EXPRESSION" DataSetColumn="FORMULA_EXPRESSION" />
<Mapping SourceColumn="FORMULA_SQL" DataSetColumn="FORMULA_SQL" />
</Mappings> </Mappings>
<Sources> <Sources>
<DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM_TEST.dbo.TBPM_CONTROL_TABLE" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="cmdUpdate" Modifier="Public" Name="cmdUpdate" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="cmdUpdate"> <DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM_TEST.dbo.TBPM_CONTROL_TABLE" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="cmdUpdate" Modifier="Public" Name="cmdUpdate" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="cmdUpdate">
@@ -1405,7 +1407,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
SET SPALTENNAME = @SPALTENNAME, SPALTEN_HEADER = @SPALTEN_HEADER, SPALTENBREITE = @SPALTENBREITE, VALIDATION = @VALIDATION, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE, SET SPALTENNAME = @SPALTENNAME, SPALTEN_HEADER = @SPALTEN_HEADER, SPALTENBREITE = @SPALTENBREITE, VALIDATION = @VALIDATION, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE,
CHANGED_WHO = @CHANGED_WHO, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE, DEFAULT_VALUE = @DEFAULT_VALUE, CHANGED_WHO = @CHANGED_WHO, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE, DEFAULT_VALUE = @DEFAULT_VALUE,
SEQUENCE = @SEQUENCE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SUMMARY_FUNCTION = @SUMMARY_FUNCTION, TYPE_COLUMN = @TYPE_COLUMN, LU_CAPTION = @LU_CAPTION, SEQUENCE = @SEQUENCE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SUMMARY_FUNCTION = @SUMMARY_FUNCTION, TYPE_COLUMN = @TYPE_COLUMN, LU_CAPTION = @LU_CAPTION,
INHERIT_VALUE = @INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION INHERIT_VALUE = @INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA_SQL
WHERE (GUID = @Original_GUID)</CommandText> WHERE (GUID = @Original_GUID)</CommandText>
<Parameters> <Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENNAME" ColumnName="SPALTENNAME" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTENNAME" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTENNAME" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="SPALTENNAME" ColumnName="SPALTENNAME" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTENNAME" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTENNAME" SourceColumnNullMapping="false" SourceVersion="Current" />
@@ -1426,6 +1428,7 @@ WHERE (GUID = @Original_GUID)</CommandText>
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" /> <Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_SQL" ColumnName="FORMULA_SQL" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(3000)" DbType="String" Direction="Input" ParameterName="@FORMULA_SQL" Precision="0" ProviderType="NVarChar" Scale="0" Size="3000" SourceColumn="FORMULA_SQL" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" /> <Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters> </Parameters>
</DbCommand> </DbCommand>
@@ -1458,7 +1461,7 @@ FROM TBPM_CONTROL_TABLE</CommandText>
<DbCommand CommandType="Text" ModifiedByUser="true"> <DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT ADDED_WHEN, ADDED_WHO, ADVANCED_LOOKUP, CHANGED_WHEN, CHANGED_WHO, CHOICE_LIST, CONNECTION_ID, CONTROL_ID, DEFAULT_VALUE, GUID, LOAD_IDX_VALUE, READ_ONLY, REGEX_MATCH, <CommandText>SELECT ADDED_WHEN, ADDED_WHO, ADVANCED_LOOKUP, CHANGED_WHEN, CHANGED_WHO, CHOICE_LIST, CONNECTION_ID, CONTROL_ID, DEFAULT_VALUE, GUID, LOAD_IDX_VALUE, READ_ONLY, REGEX_MATCH,
REGEX_MESSAGE_DE, REGEX_MESSAGE_EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATION, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, REGEX_MESSAGE_DE, REGEX_MESSAGE_EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATION, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
FORMULA_EXPRESSION FORMULA_EXPRESSION, FORMULA_SQL
FROM TBPM_CONTROL_TABLE FROM TBPM_CONTROL_TABLE
WHERE (GUID = @GUID)</CommandText> WHERE (GUID = @GUID)</CommandText>
<Parameters> <Parameters>
@@ -1798,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>
@@ -1817,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">
@@ -2812,13 +2797,20 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<xs:element name="INHERIT_VALUE" msprop:Generator_ColumnPropNameInTable="INHERIT_VALUEColumn" msprop:Generator_ColumnPropNameInRow="INHERIT_VALUE" msprop:Generator_UserColumnName="INHERIT_VALUE" msprop:Generator_ColumnVarNameInTable="columnINHERIT_VALUE" type="xs:boolean" default="false" /> <xs:element name="INHERIT_VALUE" msprop:Generator_ColumnPropNameInTable="INHERIT_VALUEColumn" msprop:Generator_ColumnPropNameInRow="INHERIT_VALUE" msprop:Generator_UserColumnName="INHERIT_VALUE" msprop:Generator_ColumnVarNameInTable="columnINHERIT_VALUE" type="xs:boolean" default="false" />
<xs:element name="FORMULA_EXPRESSION" msprop:Generator_ColumnPropNameInTable="FORMULA_EXPRESSIONColumn" msprop:Generator_ColumnPropNameInRow="FORMULA_EXPRESSION" msprop:Generator_UserColumnName="FORMULA_EXPRESSION" msprop:Generator_ColumnVarNameInTable="columnFORMULA_EXPRESSION"> <xs:element name="FORMULA_EXPRESSION" msprop:Generator_ColumnPropNameInTable="FORMULA_EXPRESSIONColumn" msprop:Generator_ColumnPropNameInRow="FORMULA_EXPRESSION" msprop:Generator_UserColumnName="FORMULA_EXPRESSION" msprop:Generator_ColumnVarNameInTable="columnFORMULA_EXPRESSION" default="">
<xs:simpleType> <xs:simpleType>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:maxLength value="1000" /> <xs:maxLength value="1000" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:element> </xs:element>
<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:restriction base="xs:string">
<xs:maxLength value="3000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -3186,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>
@@ -3405,9 +3381,9 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
</xs:element> </xs:element>
<xs:annotation> <xs:annotation>
<xs:appinfo> <xs:appinfo>
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL1" msdata:parent="TBPM_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ParentPropName="TBPM_PROFILE_CONTROLSRow" /> <msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL1" msdata:parent="TBPM_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_ParentPropName="TBPM_PROFILE_CONTROLSRow" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL1" />
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL" msdata:parent="TBWH_CHECK_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBWH_CHECK_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_ParentPropName="TBWH_CHECK_PROFILE_CONTROLSRow" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL" /> <msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL" msdata:parent="TBWH_CHECK_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBWH_CHECK_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ParentPropName="TBWH_CHECK_PROFILE_CONTROLSRow" />
<msdata:Relationship name="FK_TBPM_PROFILE_CONTROLS_PROFILE" msdata:parent="TBPM_PROFILE" msdata:child="TBPM_PROFILE_CONTROLS" msdata:parentkey="GUID" msdata:childkey="PROFIL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE" msprop:Generator_UserChildTable="TBPM_PROFILE_CONTROLS" msprop:Generator_RelationVarName="relationFK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ChildPropName="GetTBPM_PROFILE_CONTROLSRows" msprop:Generator_ParentPropName="TBPM_PROFILERow" msprop:Generator_UserRelationName="FK_TBPM_PROFILE_CONTROLS_PROFILE" /> <msdata:Relationship name="FK_TBPM_PROFILE_CONTROLS_PROFILE" msdata:parent="TBPM_PROFILE" msdata:child="TBPM_PROFILE_CONTROLS" msdata:parentkey="GUID" msdata:childkey="PROFIL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE" msprop:Generator_UserChildTable="TBPM_PROFILE_CONTROLS" msprop:Generator_RelationVarName="relationFK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ChildPropName="GetTBPM_PROFILE_CONTROLSRows" msprop:Generator_UserRelationName="FK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ParentPropName="TBPM_PROFILERow" />
</xs:appinfo> </xs:appinfo>
</xs:annotation> </xs:annotation>
</xs:schema> </xs:schema>

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="129" 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

@@ -1,7 +1,7 @@
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Drawing.Design Imports System.Drawing.Design
Imports System.Globalization Imports System.Globalization
Imports FormsUtils Imports FormsUtils 'FormsUtils.dll als Fremdbibliothek für die Properties
Module ModuleFinalIndexProperties Module ModuleFinalIndexProperties
<TypeConverter(GetType(PropertiesDeluxeTypeConverter))> <TypeConverter(GetType(PropertiesDeluxeTypeConverter))>

View File

@@ -4,6 +4,9 @@
Public Property CONNECTION_STRING_ECM As String = "" Public Property CONNECTION_STRING_ECM As String = ""
Public Property CONNECTION_STRING_IDB As String = "" Public Property CONNECTION_STRING_IDB As String = ""
Public Property IDB_ACTIVE As Boolean = False Public Property IDB_ACTIVE As Boolean = False
Public Property COPY_WMFILE_2TEMP As Boolean = False
Public Property MAP_SHARE_DRIVE As String = String.Empty
Public Property MAP_BLACKLIST As String = String.Empty
Public Property EDMIAppServerActive As Boolean = False Public Property EDMIAppServerActive As Boolean = False
Public Property OPERATION_MODE_FS As String = "PURE_WM" Public Property OPERATION_MODE_FS As String = "PURE_WM"

View File

@@ -19,6 +19,7 @@ Module ModuleRuntimeVariables
' Diese Werte müssen später zur Laufzeit geladen werden ' Diese Werte müssen später zur Laufzeit geladen werden
Public Property ActiveWorkflowType As Integer Public Property ActiveWorkflowType As Integer
Public Property BASEDATA_DT_TBDD_CONNECTION As DataTable Public Property BASEDATA_DT_TBDD_CONNECTION As DataTable
Public Property BASEDATA_DT_TBDD_CATALOG As DataTable
Public Property BASEDATA_DT_TBDD_SQL_COMMANDS As DataTable Public Property BASEDATA_DT_TBDD_SQL_COMMANDS As DataTable
Public Property BASEDATA_DT_CONFIG As DataTable Public Property BASEDATA_DT_CONFIG As DataTable
Public Property BASEDATA_DTGRID_GROUPS As DataTable Public Property BASEDATA_DTGRID_GROUPS As DataTable
@@ -29,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
@@ -82,6 +83,10 @@ Module ModuleRuntimeVariables
Public Property USER_USERNAME_ORG As String = "" Public Property USER_USERNAME_ORG As String = ""
Public Property USER_GHOST_MODE_ACTIVE As Boolean = False Public Property USER_GHOST_MODE_ACTIVE As Boolean = False
Public Property USER_GHOST_MODE_USRNAME As String = "" Public Property USER_GHOST_MODE_USRNAME As String = ""
''' <summary>
''' Temporärer Ordner für Dokumentkopien (wenn COPY_WMFILE_2TEMP = True)
''' </summary>
Public TEMP_DOCUMENT_FOLDER As String = String.Empty
Public Class UserInheritanceConfirmation Public Class UserInheritanceConfirmation
Public Property ColumnName As String = "" Public Property ColumnName As String = ""
Public Property Count As Integer Public Property Count As Integer
@@ -145,23 +150,20 @@ 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
Public Property DTCONTROLS_WITH_SQL As DataTable Public Property DTCONTROLS_WITH_SQL As DataTable
Public Property DTTBPM_PROFILE_FINAL_INDEXING As DataTable Public Property DTTBPM_PROFILE_FINAL_INDEXING As DataTable
Public Property CURRENT_CONTROL_ID As Integer Public Property CURRENT_CONTROL_ID As Integer
Public Property errormessage As String Public Property errormessage As String
Public Property WINDREAM As ClassPMWindream Public Property WINDREAM As ClassPMWindream
Public Property WINDREAM_MOD As Windream Public Property WINDREAM_MOD As Windream
Public Property WINDREAM_ALLG As ClassWindream_allgemein Public Property WINDREAM_ALLG As ClassWindream_allgemein

View File

@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")> <Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")> <Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("taskFLOW")> <Assembly: AssemblyProduct("taskFLOW")>
<Assembly: AssemblyCopyright("Copyright © Digital Data 2025")> <Assembly: AssemblyCopyright("Digital Data 2026")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)> <Assembly: ComVisible(False)>
@@ -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.2.0")> <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

@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:simpleType name="parameterDirection">
<xs:restriction base="xs:string">
<xs:enumeration value="Output"/>
<xs:enumeration value="InputOutput"/>
<xs:enumeration value="ReturnValue"/>
<xs:enumeration value="Implicit"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="customBoolean">
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ONSParameters">
<xs:restriction base="xs:string">
<xs:enumeration value="nodeList"/>
<!--<xs:enumeration value="walletFile"/>
<xs:enumeration value="walletPassword"/>-->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ONSModeValues">
<xs:restriction base="xs:string">
<xs:enumeration value="local"/>
<xs:enumeration value="remote"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="datatype">
<xs:restriction base="xs:string">
<xs:enumeration value="System.Binary"/>
<xs:enumeration value="System.Boolean"/>
<xs:enumeration value="System.Byte"/>
<xs:enumeration value="System.Byte[]"/>
<xs:enumeration value="System.Char"/>
<xs:enumeration value="System.DateTime"/>
<xs:enumeration value="System.DateTimeOffset"/>
<xs:enumeration value="System.Decimal"/>
<xs:enumeration value="System.Double"/>
<xs:enumeration value="System.Guid"/>
<xs:enumeration value="System.Int16"/>
<xs:enumeration value="System.Int32"/>
<xs:enumeration value="System.Int64"/>
<xs:enumeration value="System.SByte"/>
<xs:enumeration value="System.Single"/>
<xs:enumeration value="System.String"/>
<xs:enumeration value="System.TimeSpan"/>
<xs:enumeration value="System.UInt16"/>
<xs:enumeration value="System.UInt32"/>
<xs:enumeration value="System.UInt64"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="providerType">
<xs:restriction base="xs:string">
<xs:enumeration value="BFile"/>
<xs:enumeration value="BinaryFloat"/>
<xs:enumeration value="BinaryDouble"/>
<xs:enumeration value="Blob"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="Char"/>
<xs:enumeration value="Clob"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="IntervalDS"/>
<xs:enumeration value="IntervalYM"/>
<xs:enumeration value="Long"/>
<xs:enumeration value="LongRaw"/>
<xs:enumeration value="NChar"/>
<xs:enumeration value="NClob"/>
<xs:enumeration value="NVarchar2"/>
<xs:enumeration value="Object"/>
<xs:enumeration value="Raw"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="TimeStamp"/>
<xs:enumeration value="TimeStampLTZ"/>
<xs:enumeration value="TimeStampTZ"/>
<xs:enumeration value="Varchar2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nativeDataType">
<xs:restriction base="xs:string">
<xs:enumeration value="BFile"/>
<xs:enumeration value="Binary_Float"/>
<xs:enumeration value="Binary_Double"/>
<xs:enumeration value="Blob"/>
<xs:enumeration value="Char"/>
<xs:enumeration value="Clob"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="Number"/>
<xs:enumeration value="Interval Day To Second"/>
<xs:enumeration value="Interval Year To Month"/>
<xs:enumeration value="Long"/>
<xs:enumeration value="Long Raw"/>
<xs:enumeration value="NChar"/>
<xs:enumeration value="NClob"/>
<xs:enumeration value="NVarchar2"/>
<xs:enumeration value="Raw"/>
<xs:enumeration value="Rowid"/>
<xs:enumeration value="Timestamp"/>
<xs:enumeration value="Timestamp With Local Time Zone"/>
<xs:enumeration value="Timestamp With Time Zone"/>
<xs:enumeration value="URowid"/>
<xs:enumeration value="UserDefinedType"/>
<xs:enumeration value="Varchar2"/>
<xs:enumeration value="XmlType"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="providerDBType">
<xs:restriction base="xs:string">
<xs:enumeration value="AnsiString"/>
<xs:enumeration value="AnsiStringFixedLength"/>
<xs:enumeration value="Binary"/>
<xs:enumeration value="Byte"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="DateTimeOffset"/>
<xs:enumeration value="Decimal"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="Int16"/>
<xs:enumeration value="Int32"/>
<xs:enumeration value="Int64"/>
<xs:enumeration value="Object"/>
<xs:enumeration value="Single"/>
<xs:enumeration value="String"/>
<xs:enumeration value="StringFixedLength"/>
<xs:enumeration value="Time"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@@ -0,0 +1,221 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="Oracle.DataAccess.Common.Configuration.Section.xsd"/>
<xs:element name="oracle.manageddataaccess.client" >
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="version" type="odpmversiontype" minOccurs="0" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="odpmversiontype">
<xs:complexContent>
<xs:extension base="odpmparameters">
<xs:attribute name="number" type="xs:string" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="odpmparameters">
<xs:all>
<xs:element minOccurs="0" name="settings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="setting">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="udtMappings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="udtMapping">
<xs:complexType>
<xs:attribute name="typeName" type="xs:string" use="required" />
<xs:attribute name="factoryName" type="xs:string" use="required" />
<xs:attribute name="dataSource" type="xs:string" use="required" />
<xs:attribute name="schemaName" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="LDAPsettings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="LDAPsetting">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="distributedTransaction">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="setting">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="dataSources">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="dataSource">
<xs:complexType>
<xs:attribute name="alias" type="xs:string" use="required" />
<xs:attribute name="descriptor" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="connectionPools">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="connectionPool">
<xs:complexType>
<xs:attribute name="connectionString" type="xs:string" use="required" />
<xs:attribute name="poolName" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="edmMappings">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="edmMapping">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="add">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="precision" type="xs:int" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="dataType" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="edmNumberMapping">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="add">
<xs:complexType>
<xs:attribute name="NETType" type="xs:string" use="required" />
<xs:attribute name="MinPrecision" type="xs:int" use="required" />
<xs:attribute name="MaxPrecision" type="xs:int" use="required" />
<xs:attribute name="DBType" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="implicitRefCursor">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="storedProcedure">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="refCursor">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="bindInfo">
<xs:complexType>
<xs:attribute name="mode" type="parameterDirection" use="required" />
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="metadata">
<xs:complexType>
<xs:attribute name="columnOrdinal" type="xs:int" use="required" />
<xs:attribute name="columnName" type="xs:string" use="required" />
<xs:attribute name="baseColumnName" type="xs:string" use="optional" />
<xs:attribute name="baseSchemaName" type="xs:string" use="optional" />
<xs:attribute name="baseTableName" type="xs:string" use="optional" />
<xs:attribute name="providerType" type="providerType" use="optional" />
<xs:attribute name="columnSize" type="xs:int" use="optional" />
<xs:attribute name="numericPrecision" type="xs:int" use="optional" />
<xs:attribute name="numericScale" type="xs:int" use="optional" />
<xs:attribute name="isUnique" type="customBoolean" use="optional" />
<xs:attribute name="isKey" type="customBoolean" use="optional" />
<xs:attribute name="isRowID" type="customBoolean" use="optional" />
<xs:attribute name="dataType" type="datatype" use="optional" />
<xs:attribute name="allowDBNull" type="customBoolean" use="optional" />
<xs:attribute name="isAliased" type="customBoolean" use="optional" />
<xs:attribute name="isByteSemantic" type="customBoolean" use="optional" />
<xs:attribute name="isExpression" type="customBoolean" use="optional" />
<xs:attribute name="isHidden" type="customBoolean" use="optional" />
<xs:attribute name="isReadOnly" type="customBoolean" use="optional" />
<xs:attribute name="isLong" type="customBoolean" use="optional" />
<xs:attribute name="udtTypeName" type="xs:string" use="optional" />
<xs:attribute name="nativeDataType" type="nativeDataType" use="optional" />
<xs:attribute name="providerDBType" type="providerDBType" use="optional" />
<xs:attribute name="objectName" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional" />
<xs:attribute name="position" type="xs:int" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="schema" type="xs:string" use="optional" />
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="onsConfig">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="settings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="2" minOccurs="0" name="setting">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ons">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="3" minOccurs="1" name="add">
<xs:complexType>
<xs:attribute name="name" type="ONSParameters" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="database" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="configFile" type="xs:string" use="optional" />
<xs:attribute name="mode" type="ONSModeValues" use="required" />
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>

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>
@@ -173,23 +173,18 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Database, Version=2.3.6.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Database">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.EDMI.API"> <Reference Include="DigitalData.Modules.EDMI.API">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.EDMI.API.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Interfaces, Version=2.3.7.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Interfaces">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.Interfaces.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.License">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\11_2025\DigitalData.Modules.License.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@@ -202,15 +197,14 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Windream, Version=1.9.6.2, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Windream">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.ZooFlow"> <Reference Include="DigitalData.Modules.ZooFlow">
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll</HintPath>
</Reference> </Reference>
<Reference Include="DLLLicenseManager"> <Reference Include="DLLLicenseManager">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\DLLLicenseManager.dll</HintPath> <HintPath>M:\Bibliotheken\Digital Data\DD_Modules\DLLLicenseManager.dll</HintPath>
</Reference> </Reference>
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL"> <Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath> <HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
@@ -231,117 +225,109 @@
<HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath> <HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="FormsUtils"> <Reference Include="FormsUtils">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\FormsUtils.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\FormsUtils.dll</HintPath>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Common.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Document.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Email.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.HTML.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="GdPicture.NET.14.Markdown, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Markdown.dll</HintPath>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.PDF.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.RTF.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.SVG.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> <Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.33.2\lib\net45\Google.Protobuf.dll</HintPath> <HintPath>..\packages\Google.Protobuf.3.33.2\lib\net45\Google.Protobuf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Interop.WINDREAMLib"> <Reference Include="Interop.WINDREAMLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WINDREAMLib.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes> <EmbedInteropTypes>False</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOBRWSLib"> <Reference Include="Interop.WMOBRWSLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOBRWSLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOBRWSLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOSRCHLib"> <Reference Include="Interop.WMOSRCHLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOSRCHLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOSRCHLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOTOOLLib"> <Reference Include="Interop.WMOTOOLLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOTOOLLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Mail"> <Reference Include="Mail">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Limilabs\Mail.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\Limilabs\Mail.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
@@ -356,15 +342,6 @@
<Reference Include="Microsoft.IdentityModel.Abstractions, Version=6.22.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.Abstractions, Version=6.22.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll</HintPath>
</Reference> </Reference>
<Reference Include="NativeSDK.Exceptions, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Exceptions.dll</HintPath>
</Reference>
<Reference Include="NativeSDK.Settings, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.dll</HintPath>
</Reference>
<Reference Include="NativeSDK.Settings.Edition, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.Edition.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
@@ -377,11 +354,8 @@
<Reference Include="OpenMcdf, Version=2.4.1.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL"> <Reference Include="OpenMcdf, Version=2.4.1.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL">
<HintPath>..\packages\OpenMcdf.2.4.1\lib\net40\OpenMcdf.dll</HintPath> <HintPath>..\packages\OpenMcdf.2.4.1\lib\net40\OpenMcdf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Oracle.ManagedDataAccess"> <Reference Include="Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Oracle.ManagedDataAccess.dll</HintPath> <HintPath>..\packages\Oracle.ManagedDataAccess.21.15.0\lib\net462\Oracle.ManagedDataAccess.dll</HintPath>
</Reference>
<Reference Include="PdfSharp-gdi">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\PdfSharp-gdi.dll</HintPath>
</Reference> </Reference>
<Reference Include="protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL"> <Reference Include="protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<HintPath>..\packages\protobuf-net.3.2.46\lib\net462\protobuf-net.dll</HintPath> <HintPath>..\packages\protobuf-net.3.2.46\lib\net462\protobuf-net.dll</HintPath>
@@ -392,9 +366,6 @@
<Reference Include="RtfPipe, Version=2.0.7677.4303, Culture=neutral, PublicKeyToken=5f6ab4ce530296d2, processorArchitecture=MSIL"> <Reference Include="RtfPipe, Version=2.0.7677.4303, Culture=neutral, PublicKeyToken=5f6ab4ce530296d2, processorArchitecture=MSIL">
<HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath> <HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath>
</Reference> </Reference>
<Reference Include="S22.Imap, Version=3.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\S22.Imap.3.6.0.0\lib\net40\S22.Imap.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Buffers, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll</HintPath> <HintPath>..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll</HintPath>
@@ -488,7 +459,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="ApplicationEvents.vb" /> <Compile Include="ApplicationEvents.vb" />
<Compile Include="ClassAnnotation.vb" />
<Compile Include="ClassConfig.vb" /> <Compile Include="ClassConfig.vb" />
<Compile Include="ClassConstants.vb" /> <Compile Include="ClassConstants.vb" />
<Compile Include="ClassControlCreator.vb" /> <Compile Include="ClassControlCreator.vb" />
@@ -1099,6 +1069,12 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Oracle.DataAccess.Common.Configuration.Section.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Oracle.ManagedDataAccess.Client.Configuration.Section.xsd">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Resources\syncreon.png" /> <None Include="Resources\syncreon.png" />
</ItemGroup> </ItemGroup>
@@ -1280,6 +1256,7 @@
<None Include="Resources\PM_mit_slogan.JPG" /> <None Include="Resources\PM_mit_slogan.JPG" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<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" />
@@ -1389,10 +1366,10 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" /> <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" /> <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets'))" /> <Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets'))" />
</Target> </Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" /> <Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Import Project="..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets')" /> <Import Project="..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">

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>

View File

@@ -1,10 +1,11 @@
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports WINDREAMLib Imports DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper
Imports DigitalData.Controls.LookupGrid
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid
Imports DigitalData.Controls.LookupGrid
Imports WINDREAMLib
''' <summary> ''' <summary>
''' Defines common Functions for Checking for and replacing placeholders. ''' Defines common Functions for Checking for and replacing placeholders.
''' This Class also includes a child class `Pattern` for passing around Patterns. ''' This Class also includes a child class `Pattern` for passing around Patterns.
@@ -75,7 +76,8 @@ Public Class clsPatterns
''' Aktualisiert den Wert eines Controls im Cache ''' Aktualisiert den Wert eines Controls im Cache
''' </summary> ''' </summary>
Public Shared Sub UpdateControlInCache(controlName As String, newValue As Object) Public Shared Sub UpdateControlInCache(controlName As String, newValue As Object)
SyncLock _ControlLookupCache ' Thread-Safety ' FIX: SyncLock auf Nothing ist illegal → GetType(clsPatterns) als stabilen Lock-Anker nutzen
SyncLock GetType(clsPatterns)
If _ControlLookupCache Is Nothing OrElse Not _ControlLookupCache.ContainsKey(controlName) Then If _ControlLookupCache Is Nothing OrElse Not _ControlLookupCache.ContainsKey(controlName) Then
LOGGER.Warn($"Control [{controlName}] not found in cache for update") LOGGER.Warn($"Control [{controlName}] not found in cache for update")
Return Return
@@ -98,8 +100,13 @@ Public Class clsPatterns
lookup.Properties.SelectedValues = New List(Of String) From {newValue.ToString()} lookup.Properties.SelectedValues = New List(Of String) From {newValue.ToString()}
End If End If
Case GetType(Windows.Forms.ComboBox) ' ========== FIX START: Beide ComboBox-Typen unterstützen ==========
DirectCast(ctrl, ComboBox).Text = newValue?.ToString() Case GetType(System.Windows.Forms.ComboBox)
DirectCast(ctrl, System.Windows.Forms.ComboBox).Text = newValue?.ToString()
Case GetType(DevExpress.XtraEditors.ComboBoxEdit)
DirectCast(ctrl, DevExpress.XtraEditors.ComboBoxEdit).Text = newValue?.ToString()
' ========== FIX END ==========
Case GetType(CheckBox) Case GetType(CheckBox)
If TypeOf newValue Is Boolean Then If TypeOf newValue Is Boolean Then
@@ -130,12 +137,14 @@ Public Class clsPatterns
Public Shared Sub UpdateMultipleControlsInCache(updates As Dictionary(Of String, Object)) Public Shared Sub UpdateMultipleControlsInCache(updates As Dictionary(Of String, Object))
If updates Is Nothing OrElse updates.Count = 0 Then Return If updates Is Nothing OrElse updates.Count = 0 Then Return
SyncLock _ControlLookupCache ' FIX: Gleicher Lock-Anker wie UpdateControlInCache → kein Deadlock
' Die eigentliche Aktualisierung läuft sequenziell über UpdateControlInCache,
' da SyncLock in VB.NET re-entrant auf demselben Thread ist.
For Each kvp In updates For Each kvp In updates
UpdateControlInCache(kvp.Key, kvp.Value) UpdateControlInCache(kvp.Key, kvp.Value)
Next Next
LOGGER.Debug($"Batch cache update completed for {updates.Count} controls") LOGGER.Debug($"Batch cache update completed for {updates.Count} controls")
End SyncLock
End Sub End Sub
''' <summary> ''' <summary>
''' Wraps a pattern-type and -value in the common format: {#type#value} ''' Wraps a pattern-type and -value in the common format: {#type#value}
@@ -145,34 +154,39 @@ Public Class clsPatterns
End Function End Function
Public Shared Function ReplaceAllValues(input As String, panel As DevExpress.XtraEditors.XtraScrollableControl, is_SQL As Boolean) As String Public Shared Function ReplaceAllValues(input As String, panel As DevExpress.XtraEditors.XtraScrollableControl, is_SQL As Boolean) As String
Dim oResult = input
Try Try
Dim result = input
If Not HasAnyPatterns(result) Then If Not HasAnyPatterns(oResult) Then
Return result Return oResult
End If End If
LOGGER.Debug($"input BEFORE replacing: [{result}]") LOGGER.Debug($"input BEFORE replacing: [{oResult}]")
result = ReplaceInternalValues(result) oResult = ReplaceInternalValues(oResult)
If Not IsNothing(CURRENT_WMFILE) Then If Not IsNothing(CURRENT_WMFILE) Then
result = ReplaceWindreamIndicies(result, CURRENT_WMFILE, is_SQL) oResult = ReplaceWindreamIndicies(oResult, CURRENT_WMFILE, is_SQL)
End If End If
If IDB_ACTIVE = True Then If IDB_ACTIVE = True Then
result = ReplaceIDBAttributes(result, is_SQL) oResult = ReplaceIDBAttributes(oResult, is_SQL)
End If End If
'vorher hinter result = ReplaceInternalValues(result) 'vorher hinter result = ReplaceInternalValues(result)
result = ReplaceControlValues(result, panel, is_SQL) oResult = ReplaceControlValues(oResult, panel, is_SQL)
If Not IsNothing(result) Then If Not IsNothing(oResult) Then
result = ReplaceUserValues(result) oResult = ReplaceUserValues(oResult)
LOGGER.Debug($"input AFTER replacing: [{result}]") LOGGER.Debug($"input AFTER replacing: [{oResult}]")
End If End If
Return result Return oResult
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Info("Error in ReplaceAllValues:" & ex.Message) LOGGER.Error($"❌ CRITICAL ERROR in ReplaceAllValues!")
LOGGER.Error($" Input: [{input}]")
LOGGER.Error($" Last successful result: [{oResult}]")
LOGGER.Error($" Exception Type: [{ex.GetType().Name}]")
LOGGER.Error($" Message: [{ex.Message}]")
LOGGER.Error($" StackTrace: [{ex.StackTrace}]")
Return input Return input
End Try End Try
End Function End Function
@@ -259,14 +273,23 @@ Public Class clsPatterns
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Info("Error in ReplaceUserValues:" & ex.Message) LOGGER.Info("Error in ReplaceUserValues:" & ex.Message)
Return input ' FIX: Originalwert zurückgeben statt implizit Nothing
End Try End Try
End Function End Function
Private Shared Sub RecursiveAddToCache(ctrl As Control, cache As Dictionary(Of String, Control)) Private Shared Sub RecursiveAddToCache(rootCtrl As Control, cache As Dictionary(Of String, Control))
Dim stack As New Stack(Of Control)()
stack.Push(rootCtrl)
While stack.Count > 0
Dim ctrl As Control = stack.Pop()
If Not String.IsNullOrEmpty(ctrl.Name) Then
cache(ctrl.Name) = ctrl cache(ctrl.Name) = ctrl
End If
For Each child As Control In ctrl.Controls For Each child As Control In ctrl.Controls
RecursiveAddToCache(child, cache) stack.Push(child)
Next Next
End While
End Sub End Sub
Public Shared Function ReplaceControlValues(pInput As String, oPanel As DevExpress.XtraEditors.XtraScrollableControl, oIsSQL As Boolean) As String Public Shared Function ReplaceControlValues(pInput As String, oPanel As DevExpress.XtraEditors.XtraScrollableControl, oIsSQL As Boolean) As String
Dim oResult = pInput Dim oResult = pInput
@@ -280,8 +303,9 @@ Public Class clsPatterns
LOGGER.Debug($"Control cache initialized with {_ControlLookupCache.Count} controls") LOGGER.Debug($"Control cache initialized with {_ControlLookupCache.Count} controls")
End If End If
End SyncLock End SyncLock
Try
Try
LOGGER.Debug($"Starting ReplaceControlValues with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
Dim oTryCounter = 0 Dim oTryCounter = 0
While ContainsPattern(oResult, PATTERN_CTRL) While ContainsPattern(oResult, PATTERN_CTRL)
@@ -349,12 +373,28 @@ Public Class clsPatterns
Case GetType(LookupControl3) Case GetType(LookupControl3)
Dim oLookupControl3 As LookupControl3 = oControl Dim oLookupControl3 As LookupControl3 = oControl
If oLookupControl3.Properties.SelectedValues.Count > 1 Then
LOGGER.Debug($"LookupControl3 mit mehr als 1 Value")
Dim oIndex As Integer = 0
For Each oString As String In oLookupControl3.Properties.SelectedValues
If oIndex = 0 Then
' ========== FIX START: NULL-Check ==========
Dim selectedValues As List(Of String) = Nothing
Try
selectedValues = oLookupControl3.Properties.SelectedValues
Catch ex As Exception
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues not accessible: {ex.Message}")
selectedValues = Nothing
End Try
If selectedValues Is Nothing Then
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues is Nothing! Using ERROR_REPLACE_VALUE")
oReplaceValue = ERROR_REPLACE_VALUE
ElseIf selectedValues.Count = 0 Then
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues is empty! Using ERROR_REPLACE_VALUE")
oReplaceValue = ERROR_REPLACE_VALUE
' ========== FIX END ==========
ElseIf selectedValues.Count > 1 Then
LOGGER.Debug($"LookupControl3 [{oControlName}] mit mehr als 1 Value")
Dim oIndex As Integer = 0
For Each oString As String In selectedValues
If oIndex = 0 Then
oReplaceValue = oString oReplaceValue = oString
Else Else
oReplaceValue += "', '" + oString oReplaceValue += "', '" + oString
@@ -362,13 +402,12 @@ Public Class clsPatterns
oIndex += 1 oIndex += 1
Next Next
oIsSQL = False oIsSQL = False
ElseIf oLookupControl3.Properties.SelectedValues.Count = 1 Then Else ' Count = 1
LOGGER.Debug($"LookupControl3 mit genau einem Value") LOGGER.Debug($"LookupControl3 [{oControlName}] mit genau einem Value")
oReplaceValue = oLookupControl3.Properties.SelectedValues(0) oReplaceValue = selectedValues(0)
Else
' LOGGER.Warn($"SelectedValues of LookUpControl scheint empty oder leer zu sein! Ersetzen mit ErrorReplaceValue!")
oReplaceValue = ERROR_REPLACE_VALUE
End If End If
LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}")
LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}") LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}")
Case GetType(Windows.Forms.ComboBox) Case GetType(Windows.Forms.ComboBox)
@@ -376,7 +415,7 @@ Public Class clsPatterns
Case GetType(CheckBox) Case GetType(CheckBox)
Dim oCheckBox As CheckBox = oControl Dim oCheckBox As CheckBox = oControl
oReplaceValue = oCheckBox.Checked oReplaceValue = If(oCheckBox.Checked, "1", "0") ' Explizite String-Konvertierung
Case GetType(GridControl) Case GetType(GridControl)
Dim oGrid As GridControl = oControl Dim oGrid As GridControl = oControl
@@ -401,10 +440,18 @@ Public Class clsPatterns
Case Else Case Else
oReplaceValue = ERROR_REPLACE_VALUE oReplaceValue = ERROR_REPLACE_VALUE
End Select End Select
LOGGER.Debug($"[SQL-ESCAPE CHECK] Control: [{oControlName}], oReplaceValue Type: [{If(oReplaceValue?.GetType()?.Name, "NULL")}], Value: [{oReplaceValue}], IsSQL: [{oIsSQL}]")
If oReplaceValue Is Nothing Then
LOGGER.Warn($"⚠️ oReplaceValue is Nothing for control [{oControlName}]! Setting to ERROR_REPLACE_VALUE")
oReplaceValue = ERROR_REPLACE_VALUE
End If
If Not TypeOf oReplaceValue Is String Then
LOGGER.Warn($"⚠️ oReplaceValue is not a String for control [{oControlName}]! Type: [{oReplaceValue.GetType().Name}]. Converting to String.")
oReplaceValue = oReplaceValue.ToString()
End If
If oIsSQL = True Then If oIsSQL = True Then
'LOGGER.Debug($"IS_SQL = True - oReplaceValue = {oReplaceValue}") oReplaceValue = SafeSqlEscape(oReplaceValue)
'LOGGER.Debug($"oReplaceValue = {oReplaceValue}")
oReplaceValue = oReplaceValue.Replace("'", "''")
End If End If
oResult = ReplacePattern(oResult, PATTERN_CTRL, oReplaceValue) oResult = ReplacePattern(oResult, PATTERN_CTRL, oReplaceValue)
Else Else
@@ -420,19 +467,52 @@ Public Class clsPatterns
Return oResult Return oResult
End Try End Try
End Function End Function
Private Shared Function SafeSqlEscape(value As Object) As String
LOGGER.Debug($"[SafeSqlEscape] Input Type: [{If(value?.GetType()?.Name, "NULL")}], Value: [{value}]")
If value Is Nothing Then
LOGGER.Warn("[SafeSqlEscape] Value is Nothing → returning ERROR_REPLACE_VALUE")
Return ERROR_REPLACE_VALUE
End If
Dim strValue As String
Try
strValue = value.ToString()
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn($"[SafeSqlEscape] ToString() failed: {ex.Message} → returning ERROR_REPLACE_VALUE")
Return ERROR_REPLACE_VALUE
End Try
If String.IsNullOrEmpty(strValue) Then
LOGGER.Warn("[SafeSqlEscape] String is empty → returning ERROR_REPLACE_VALUE")
Return ERROR_REPLACE_VALUE
End If
Dim escaped = strValue.Replace("'", "''")
LOGGER.Debug($"[SafeSqlEscape] Output: [{escaped}]")
Return escaped
End Function
Public Shared Function ReplaceWindreamIndicies(pInput As String, pDocument As WMObject, pIsSQL As Boolean) As String Public Shared Function ReplaceWindreamIndicies(pInput As String, pDocument As WMObject, pIsSQL As Boolean) As String
Try Try
Dim oResult = pInput Dim oResult = pInput
Dim oTryCounter As Integer = 0 Dim oTryCounter As Integer = 0
LOGGER.Debug($"Starting ReplaceWindreamIndicies with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
While ContainsPattern(oResult, PATTERN_WMI) While ContainsPattern(oResult, PATTERN_WMI)
Dim oWMValue As String
Dim oIndexName As String = GetNextPattern(oResult, PATTERN_WMI).Value Dim oIndexName As String = GetNextPattern(oResult, PATTERN_WMI).Value
Dim oWMValue As String = pDocument.GetVariableValue(oIndexName)
If IsNothing(oWMValue) And oTryCounter = MAX_TRY_COUNT Then If oIndexName = "@@DISPLAY_ONLY" Then
Throw New Exception("Max tries in ReplaceWindreamIndicies exceeded.") oWMValue = String.Empty
Else
oWMValue = pDocument.GetVariableValue(oIndexName)
End If
' FIX 1: >= statt = → Counter springt in 10er-Schritten, trifft niemals genau 5
If IsNothing(oWMValue) AndAlso oTryCounter >= MAX_TRY_COUNT Then
LOGGER.Warn($"[ReplaceWindreamIndicies] Max tries for [{oIndexName}] exceeded → replacing with empty string")
oResult = ReplacePattern(oResult, PATTERN_WMI, String.Empty)
Continue While
End If End If
If oWMValue IsNot Nothing Then If oWMValue IsNot Nothing Then
@@ -442,6 +522,11 @@ Public Class clsPatterns
LOGGER.Debug($"oReplaceValue = {oWMValue}") LOGGER.Debug($"oReplaceValue = {oWMValue}")
End If End If
oResult = ReplacePattern(oResult, PATTERN_WMI, oWMValue) oResult = ReplacePattern(oResult, PATTERN_WMI, oWMValue)
Else
' FIX 2: Else-Branch — Nothing-Wert ersetzt den Placeholder mit leerem String
' verhindert Endless Loop wenn Windream-Index keinen Wert hat
LOGGER.Warn($"[ReplaceWindreamIndicies] WMI value for [{oIndexName}] is Nothing → replacing with empty string (counter: {oTryCounter})")
oResult = ReplacePattern(oResult, PATTERN_WMI, String.Empty)
End If End If
' Increase counter by 10 to avoid DDOSing the Windream Service ' Increase counter by 10 to avoid DDOSing the Windream Service
@@ -458,6 +543,7 @@ Public Class clsPatterns
Try Try
Dim result = input Dim result = input
Dim oTryCounter As Integer = 0 Dim oTryCounter As Integer = 0
LOGGER.Debug($"Starting ReplaceIDBAttributes with input: [{result}] for document ID: {CURRENT_DOC_ID}")
While ContainsPattern(result, PATTERN_IDBA) While ContainsPattern(result, PATTERN_IDBA)
Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value
@@ -509,6 +595,7 @@ Public Class clsPatterns
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
LOGGER.Info("Error in ReplaceIDBAttributes:" & ex.Message) LOGGER.Info("Error in ReplaceIDBAttributes:" & ex.Message)
Return input ' FIX: Originalwert zurückgeben statt implizit Nothing
End Try End Try
End Function End Function

View File

@@ -845,11 +845,9 @@ Public Class frmAdministration
Private Sub PM_VEKTOR_INDEXComboBox_MouseHover(sender As Object, e As EventArgs) Handles PM_VEKTOR_INDEXComboBox.MouseHover Private Sub PM_VEKTOR_INDEXComboBox_MouseHover(sender As Object, e As EventArgs) Handles PM_VEKTOR_INDEXComboBox.MouseHover
ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für die Kennzeichnung der PM-Indizes verwenden wollen:", PM_VEKTOR_INDEXComboBox) ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für die Kennzeichnung der PM-Indizes verwenden wollen:", PM_VEKTOR_INDEXComboBox)
End Sub End Sub
Private Sub cmbLOGIndex_MouseHover(sender As Object, e As EventArgs) Handles cmbLOGIndex.MouseHover Private Sub cmbLOGIndex_MouseHover(sender As Object, e As EventArgs) Handles cmbLOGIndex.MouseHover
ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für das Loggen der Wertänderungen nutzen wollen:", cmbLOGIndex) ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für das Loggen der Wertänderungen nutzen wollen:", cmbLOGIndex)
End Sub End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
If CInt(PROFILGUIDTextBox.Text) > 0 Then If CInt(PROFILGUIDTextBox.Text) > 0 Then
profile_guid = PROFILGUIDTextBox.Text profile_guid = PROFILGUIDTextBox.Text
@@ -867,7 +865,6 @@ Public Class frmAdministration
MsgBox("No profile could be passed to designer:", MsgBoxStyle.Exclamation) MsgBox("No profile could be passed to designer:", MsgBoxStyle.Exclamation)
End If End If
End Sub End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemRefreshProfileData.ItemClick Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemRefreshProfileData.ItemClick
If BarButtonItem26.Tag = "Lock" Then If BarButtonItem26.Tag = "Lock" Then
EditMode_Profile("") EditMode_Profile("")

View File

@@ -7,7 +7,7 @@ Public Class frmAnnotations
Try Try
Me.Cursor = Cursors.WaitCursor Me.Cursor = Cursors.WaitCursor
ClassAnnotation.Annotate_PDF(txttitle.Text, txtcontent.Text, txtSeitenzahl.Text, True) ' ClassAnnotation.Annotate_PDF(txttitle.Text, txtcontent.Text, txtSeitenzahl.Text, True)
Me.Cursor = Cursors.Default Me.Cursor = Cursors.Default
Me.Close() Me.Close()
Catch ex As Exception Catch ex As Exception

View File

@@ -37,6 +37,8 @@ Partial Class frmColumn_Detail
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
Me.SimpleButton4 = New DevExpress.XtraEditors.SimpleButton()
Me.FORMULA_SQLTextBox = New System.Windows.Forms.TextBox()
Me.SimpleButton3 = New DevExpress.XtraEditors.SimpleButton() Me.SimpleButton3 = New DevExpress.XtraEditors.SimpleButton()
Me.FORMULA_EXPRESSIONTextBox = New System.Windows.Forms.TextBox() Me.FORMULA_EXPRESSIONTextBox = New System.Windows.Forms.TextBox()
Me.LU_CAPTIONTextBox = New System.Windows.Forms.TextBox() Me.LU_CAPTIONTextBox = New System.Windows.Forms.TextBox()
@@ -89,6 +91,8 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem21 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem21 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem24 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem24 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem26 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem26 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem27 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem15 = New DevExpress.XtraLayout.LayoutControlItem()
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -141,6 +145,8 @@ Partial Class frmColumn_Detail
CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem27, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'TBPM_CONTROL_TABLEBindingSource 'TBPM_CONTROL_TABLEBindingSource
@@ -237,6 +243,8 @@ Partial Class frmColumn_Detail
' '
'LayoutControl1 'LayoutControl1
' '
Me.LayoutControl1.Controls.Add(Me.SimpleButton4)
Me.LayoutControl1.Controls.Add(Me.FORMULA_SQLTextBox)
Me.LayoutControl1.Controls.Add(Me.SimpleButton3) Me.LayoutControl1.Controls.Add(Me.SimpleButton3)
Me.LayoutControl1.Controls.Add(Me.FORMULA_EXPRESSIONTextBox) Me.LayoutControl1.Controls.Add(Me.FORMULA_EXPRESSIONTextBox)
Me.LayoutControl1.Controls.Add(Me.LU_CAPTIONTextBox) Me.LayoutControl1.Controls.Add(Me.LU_CAPTIONTextBox)
@@ -266,6 +274,19 @@ Partial Class frmColumn_Detail
Me.LayoutControl1.Name = "LayoutControl1" Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.Root = Me.Root Me.LayoutControl1.Root = Me.Root
' '
'SimpleButton4
'
resources.ApplyResources(Me.SimpleButton4, "SimpleButton4")
Me.SimpleButton4.Name = "SimpleButton4"
Me.SimpleButton4.StyleController = Me.LayoutControl1
'
'FORMULA_SQLTextBox
'
Me.FORMULA_SQLTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "FORMULA_SQL", True))
resources.ApplyResources(Me.FORMULA_SQLTextBox, "FORMULA_SQLTextBox")
Me.FORMULA_SQLTextBox.Name = "FORMULA_SQLTextBox"
Me.FORMULA_SQLTextBox.ReadOnly = True
'
'SimpleButton3 'SimpleButton3
' '
resources.ApplyResources(Me.SimpleButton3, "SimpleButton3") resources.ApplyResources(Me.SimpleButton3, "SimpleButton3")
@@ -277,6 +298,7 @@ Partial Class frmColumn_Detail
Me.FORMULA_EXPRESSIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "FORMULA_EXPRESSION", True)) Me.FORMULA_EXPRESSIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "FORMULA_EXPRESSION", True))
resources.ApplyResources(Me.FORMULA_EXPRESSIONTextBox, "FORMULA_EXPRESSIONTextBox") resources.ApplyResources(Me.FORMULA_EXPRESSIONTextBox, "FORMULA_EXPRESSIONTextBox")
Me.FORMULA_EXPRESSIONTextBox.Name = "FORMULA_EXPRESSIONTextBox" Me.FORMULA_EXPRESSIONTextBox.Name = "FORMULA_EXPRESSIONTextBox"
Me.FORMULA_EXPRESSIONTextBox.ReadOnly = True
' '
'LU_CAPTIONTextBox 'LU_CAPTIONTextBox
' '
@@ -478,9 +500,9 @@ Partial Class frmColumn_Detail
' '
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False Me.Root.GroupBordersVisible = False
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem12, Me.LayoutControlItem11, Me.LayoutControlItem13, Me.LayoutControlGroup1, Me.LayoutControlItem18, Me.LayoutControlItem19, Me.LayoutControlItem23, Me.LayoutControlItem21, Me.LayoutControlItem24, Me.LayoutControlItem26}) Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem12, Me.LayoutControlItem11, Me.LayoutControlItem13, Me.LayoutControlGroup1, Me.LayoutControlItem18, Me.LayoutControlItem19, Me.LayoutControlItem23, Me.LayoutControlItem21, Me.LayoutControlItem24, Me.LayoutControlItem26, Me.LayoutControlItem27, Me.LayoutControlItem15})
Me.Root.Name = "Root" Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(593, 816) Me.Root.Size = New System.Drawing.Size(630, 853)
Me.Root.TextVisible = False Me.Root.TextVisible = False
' '
'LayoutControlItem1 'LayoutControlItem1
@@ -489,7 +511,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem1.Name = "LayoutControlItem1" Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem1.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem1.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1") resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem1.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -499,7 +521,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 40) Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 40)
Me.LayoutControlItem2.Name = "LayoutControlItem2" Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem2.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem2.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2") resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem2.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -509,7 +531,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 80) Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 80)
Me.LayoutControlItem3.Name = "LayoutControlItem3" Me.LayoutControlItem3.Name = "LayoutControlItem3"
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem3.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem3.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3") resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem3.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -519,7 +541,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 120) Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 120)
Me.LayoutControlItem4.Name = "LayoutControlItem4" Me.LayoutControlItem4.Name = "LayoutControlItem4"
Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem4.Size = New System.Drawing.Size(286, 40) Me.LayoutControlItem4.Size = New System.Drawing.Size(304, 40)
resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4") resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4")
Me.LayoutControlItem4.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem4.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -529,16 +551,16 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 200) Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 200)
Me.LayoutControlItem5.Name = "LayoutControlItem5" Me.LayoutControlItem5.Name = "LayoutControlItem5"
Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem5.Size = New System.Drawing.Size(488, 46) Me.LayoutControlItem5.Size = New System.Drawing.Size(520, 46)
resources.ApplyResources(Me.LayoutControlItem5, "LayoutControlItem5") resources.ApplyResources(Me.LayoutControlItem5, "LayoutControlItem5")
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem5.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem6 'LayoutControlItem6
' '
Me.LayoutControlItem6.Control = Me.SimpleButton1 Me.LayoutControlItem6.Control = Me.SimpleButton1
Me.LayoutControlItem6.Location = New System.Drawing.Point(488, 200) Me.LayoutControlItem6.Location = New System.Drawing.Point(520, 200)
Me.LayoutControlItem6.Name = "LayoutControlItem6" Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Size = New System.Drawing.Size(85, 46) Me.LayoutControlItem6.Size = New System.Drawing.Size(90, 46)
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem6.TextVisible = False Me.LayoutControlItem6.TextVisible = False
' '
@@ -548,7 +570,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 326) Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 326)
Me.LayoutControlItem8.Name = "LayoutControlItem8" Me.LayoutControlItem8.Name = "LayoutControlItem8"
Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem8.Size = New System.Drawing.Size(488, 46) Me.LayoutControlItem8.Size = New System.Drawing.Size(520, 46)
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8") resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem8.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -558,65 +580,65 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 246) Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 246)
Me.LayoutControlItem7.Name = "LayoutControlItem7" Me.LayoutControlItem7.Name = "LayoutControlItem7"
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem7.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem7.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7") resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7")
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem7.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem9 'LayoutControlItem9
' '
Me.LayoutControlItem9.Control = Me.SimpleButton2 Me.LayoutControlItem9.Control = Me.SimpleButton2
Me.LayoutControlItem9.Location = New System.Drawing.Point(488, 326) Me.LayoutControlItem9.Location = New System.Drawing.Point(520, 326)
Me.LayoutControlItem9.Name = "LayoutControlItem9" Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Size = New System.Drawing.Size(85, 46) Me.LayoutControlItem9.Size = New System.Drawing.Size(90, 46)
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem9.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem9.TextVisible = False Me.LayoutControlItem9.TextVisible = False
' '
'LayoutControlItem10 'LayoutControlItem10
' '
Me.LayoutControlItem10.Control = Me.TextEdit7 Me.LayoutControlItem10.Control = Me.TextEdit7
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 458) Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 504)
Me.LayoutControlItem10.Name = "LayoutControlItem10" Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem10.Size = New System.Drawing.Size(286, 40) Me.LayoutControlItem10.Size = New System.Drawing.Size(304, 40)
resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10") resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10")
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem10.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem12 'LayoutControlItem12
' '
Me.LayoutControlItem12.Control = Me.CHANGED_WHOTextBox Me.LayoutControlItem12.Control = Me.CHANGED_WHOTextBox
Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 498) Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 544)
Me.LayoutControlItem12.Name = "LayoutControlItem12" Me.LayoutControlItem12.Name = "LayoutControlItem12"
Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem12.Size = New System.Drawing.Size(286, 40) Me.LayoutControlItem12.Size = New System.Drawing.Size(304, 40)
resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12") resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12")
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem12.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem11 'LayoutControlItem11
' '
Me.LayoutControlItem11.Control = Me.TextEdit8 Me.LayoutControlItem11.Control = Me.TextEdit8
Me.LayoutControlItem11.Location = New System.Drawing.Point(286, 458) Me.LayoutControlItem11.Location = New System.Drawing.Point(304, 504)
Me.LayoutControlItem11.Name = "LayoutControlItem11" Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem11.Size = New System.Drawing.Size(287, 40) Me.LayoutControlItem11.Size = New System.Drawing.Size(306, 40)
resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11") resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11")
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem11.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem13 'LayoutControlItem13
' '
Me.LayoutControlItem13.Control = Me.TextEdit10 Me.LayoutControlItem13.Control = Me.TextEdit10
Me.LayoutControlItem13.Location = New System.Drawing.Point(286, 498) Me.LayoutControlItem13.Location = New System.Drawing.Point(304, 544)
Me.LayoutControlItem13.Name = "LayoutControlItem13" Me.LayoutControlItem13.Name = "LayoutControlItem13"
Me.LayoutControlItem13.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem13.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem13.Size = New System.Drawing.Size(287, 40) Me.LayoutControlItem13.Size = New System.Drawing.Size(306, 40)
resources.ApplyResources(Me.LayoutControlItem13, "LayoutControlItem13") resources.ApplyResources(Me.LayoutControlItem13, "LayoutControlItem13")
Me.LayoutControlItem13.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem13.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlGroup1 'LayoutControlGroup1
' '
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem16, Me.LayoutControlItem14, Me.LayoutControlItem17, Me.LayoutControlItem25, Me.LayoutControlItem20, Me.LayoutControlItem22}) Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem16, Me.LayoutControlItem14, Me.LayoutControlItem17, Me.LayoutControlItem25, Me.LayoutControlItem20, Me.LayoutControlItem22})
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 538) Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 584)
Me.LayoutControlGroup1.Name = "LayoutControlGroup1" Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(573, 258) Me.LayoutControlGroup1.Size = New System.Drawing.Size(610, 249)
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1") resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
' '
'LayoutControlItem16 'LayoutControlItem16
@@ -624,7 +646,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem16.Control = Me.VALIDATIONCheckbox Me.LayoutControlItem16.Control = Me.VALIDATIONCheckbox
Me.LayoutControlItem16.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem16.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem16.Name = "LayoutControlItem16" Me.LayoutControlItem16.Name = "LayoutControlItem16"
Me.LayoutControlItem16.Size = New System.Drawing.Size(274, 24) Me.LayoutControlItem16.Size = New System.Drawing.Size(292, 24)
Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem16.TextVisible = False Me.LayoutControlItem16.TextVisible = False
' '
@@ -633,7 +655,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem14.Control = Me.READ_ONLYCheckBox Me.LayoutControlItem14.Control = Me.READ_ONLYCheckBox
Me.LayoutControlItem14.Location = New System.Drawing.Point(0, 24) Me.LayoutControlItem14.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem14.Name = "LayoutControlItem14" Me.LayoutControlItem14.Name = "LayoutControlItem14"
Me.LayoutControlItem14.Size = New System.Drawing.Size(549, 22) Me.LayoutControlItem14.Size = New System.Drawing.Size(586, 22)
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem14.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem14.TextVisible = False Me.LayoutControlItem14.TextVisible = False
' '
@@ -642,7 +664,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem17.Control = Me.ADVANCED_LOOKUPCheckbox Me.LayoutControlItem17.Control = Me.ADVANCED_LOOKUPCheckbox
Me.LayoutControlItem17.Location = New System.Drawing.Point(0, 46) Me.LayoutControlItem17.Location = New System.Drawing.Point(0, 46)
Me.LayoutControlItem17.Name = "LayoutControlItem17" Me.LayoutControlItem17.Name = "LayoutControlItem17"
Me.LayoutControlItem17.Size = New System.Drawing.Size(549, 22) Me.LayoutControlItem17.Size = New System.Drawing.Size(586, 22)
Me.LayoutControlItem17.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem17.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem17.TextVisible = False Me.LayoutControlItem17.TextVisible = False
' '
@@ -651,16 +673,16 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem25.Control = Me.LOAD_IDX_VALUECheckBox Me.LayoutControlItem25.Control = Me.LOAD_IDX_VALUECheckBox
Me.LayoutControlItem25.Location = New System.Drawing.Point(0, 68) Me.LayoutControlItem25.Location = New System.Drawing.Point(0, 68)
Me.LayoutControlItem25.Name = "LayoutControlItem25" Me.LayoutControlItem25.Name = "LayoutControlItem25"
Me.LayoutControlItem25.Size = New System.Drawing.Size(549, 22) Me.LayoutControlItem25.Size = New System.Drawing.Size(586, 22)
Me.LayoutControlItem25.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem25.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem25.TextVisible = False Me.LayoutControlItem25.TextVisible = False
' '
'LayoutControlItem20 'LayoutControlItem20
' '
Me.LayoutControlItem20.Control = Me.SUMMARY_FUNCTIONCombobox Me.LayoutControlItem20.Control = Me.SUMMARY_FUNCTIONCombobox
Me.LayoutControlItem20.Location = New System.Drawing.Point(274, 0) Me.LayoutControlItem20.Location = New System.Drawing.Point(292, 0)
Me.LayoutControlItem20.Name = "LayoutControlItem20" Me.LayoutControlItem20.Name = "LayoutControlItem20"
Me.LayoutControlItem20.Size = New System.Drawing.Size(275, 24) Me.LayoutControlItem20.Size = New System.Drawing.Size(294, 24)
resources.ApplyResources(Me.LayoutControlItem20, "LayoutControlItem20") resources.ApplyResources(Me.LayoutControlItem20, "LayoutControlItem20")
Me.LayoutControlItem20.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem20.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -670,7 +692,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem22.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "INHERIT_VALUE", True)) Me.LayoutControlItem22.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "INHERIT_VALUE", True))
Me.LayoutControlItem22.Location = New System.Drawing.Point(0, 90) Me.LayoutControlItem22.Location = New System.Drawing.Point(0, 90)
Me.LayoutControlItem22.Name = "LayoutControlItem22" Me.LayoutControlItem22.Name = "LayoutControlItem22"
Me.LayoutControlItem22.Size = New System.Drawing.Size(549, 123) Me.LayoutControlItem22.Size = New System.Drawing.Size(586, 114)
Me.LayoutControlItem22.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem22.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem22.TextVisible = False Me.LayoutControlItem22.TextVisible = False
' '
@@ -680,17 +702,17 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem18.Location = New System.Drawing.Point(0, 372) Me.LayoutControlItem18.Location = New System.Drawing.Point(0, 372)
Me.LayoutControlItem18.Name = "LayoutControlItem18" Me.LayoutControlItem18.Name = "LayoutControlItem18"
Me.LayoutControlItem18.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem18.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem18.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem18.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem18, "LayoutControlItem18") resources.ApplyResources(Me.LayoutControlItem18, "LayoutControlItem18")
Me.LayoutControlItem18.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem18.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem19 'LayoutControlItem19
' '
Me.LayoutControlItem19.Control = Me.SEQUENCETextBox Me.LayoutControlItem19.Control = Me.SEQUENCETextBox
Me.LayoutControlItem19.Location = New System.Drawing.Point(286, 120) Me.LayoutControlItem19.Location = New System.Drawing.Point(304, 120)
Me.LayoutControlItem19.Name = "LayoutControlItem19" Me.LayoutControlItem19.Name = "LayoutControlItem19"
Me.LayoutControlItem19.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem19.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem19.Size = New System.Drawing.Size(287, 40) Me.LayoutControlItem19.Size = New System.Drawing.Size(306, 40)
resources.ApplyResources(Me.LayoutControlItem19, "LayoutControlItem19") resources.ApplyResources(Me.LayoutControlItem19, "LayoutControlItem19")
Me.LayoutControlItem19.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem19.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -701,7 +723,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem23.Location = New System.Drawing.Point(0, 286) Me.LayoutControlItem23.Location = New System.Drawing.Point(0, 286)
Me.LayoutControlItem23.Name = "LayoutControlItem23" Me.LayoutControlItem23.Name = "LayoutControlItem23"
Me.LayoutControlItem23.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem23.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem23.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem23.Size = New System.Drawing.Size(610, 40)
Me.LayoutControlItem23.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem23.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem21 'LayoutControlItem21
@@ -710,7 +732,7 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem21.Location = New System.Drawing.Point(0, 160) Me.LayoutControlItem21.Location = New System.Drawing.Point(0, 160)
Me.LayoutControlItem21.Name = "LayoutControlItem21" Me.LayoutControlItem21.Name = "LayoutControlItem21"
Me.LayoutControlItem21.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem21.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem21.Size = New System.Drawing.Size(573, 40) Me.LayoutControlItem21.Size = New System.Drawing.Size(610, 40)
resources.ApplyResources(Me.LayoutControlItem21, "LayoutControlItem21") resources.ApplyResources(Me.LayoutControlItem21, "LayoutControlItem21")
Me.LayoutControlItem21.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem21.TextSize = New System.Drawing.Size(110, 13)
' '
@@ -720,19 +742,38 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem24.Location = New System.Drawing.Point(0, 412) Me.LayoutControlItem24.Location = New System.Drawing.Point(0, 412)
Me.LayoutControlItem24.Name = "LayoutControlItem24" Me.LayoutControlItem24.Name = "LayoutControlItem24"
Me.LayoutControlItem24.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) Me.LayoutControlItem24.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem24.Size = New System.Drawing.Size(488, 46) Me.LayoutControlItem24.Size = New System.Drawing.Size(520, 46)
resources.ApplyResources(Me.LayoutControlItem24, "LayoutControlItem24") resources.ApplyResources(Me.LayoutControlItem24, "LayoutControlItem24")
Me.LayoutControlItem24.TextSize = New System.Drawing.Size(110, 13) Me.LayoutControlItem24.TextSize = New System.Drawing.Size(110, 13)
' '
'LayoutControlItem26 'LayoutControlItem26
' '
Me.LayoutControlItem26.Control = Me.SimpleButton3 Me.LayoutControlItem26.Control = Me.SimpleButton3
Me.LayoutControlItem26.Location = New System.Drawing.Point(488, 412) Me.LayoutControlItem26.Location = New System.Drawing.Point(520, 412)
Me.LayoutControlItem26.Name = "LayoutControlItem26" Me.LayoutControlItem26.Name = "LayoutControlItem26"
Me.LayoutControlItem26.Size = New System.Drawing.Size(85, 46) Me.LayoutControlItem26.Size = New System.Drawing.Size(90, 46)
Me.LayoutControlItem26.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem26.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem26.TextVisible = False Me.LayoutControlItem26.TextVisible = False
' '
'LayoutControlItem27
'
Me.LayoutControlItem27.Control = Me.FORMULA_SQLTextBox
Me.LayoutControlItem27.Location = New System.Drawing.Point(0, 458)
Me.LayoutControlItem27.Name = "LayoutControlItem27"
Me.LayoutControlItem27.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem27.Size = New System.Drawing.Size(520, 46)
resources.ApplyResources(Me.LayoutControlItem27, "LayoutControlItem27")
Me.LayoutControlItem27.TextSize = New System.Drawing.Size(110, 13)
'
'LayoutControlItem15
'
Me.LayoutControlItem15.Control = Me.SimpleButton4
Me.LayoutControlItem15.Location = New System.Drawing.Point(520, 458)
Me.LayoutControlItem15.Name = "LayoutControlItem15"
Me.LayoutControlItem15.Size = New System.Drawing.Size(90, 46)
Me.LayoutControlItem15.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem15.TextVisible = False
'
'frmColumn_Detail 'frmColumn_Detail
' '
Me.Appearance.Options.UseFont = True Me.Appearance.Options.UseFont = True
@@ -799,6 +840,8 @@ Partial Class frmColumn_Detail
CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem27, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout Me.PerformLayout
@@ -868,4 +911,8 @@ End Sub
Friend WithEvents LayoutControlItem25 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem25 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents SimpleButton3 As DevExpress.XtraEditors.SimpleButton Friend WithEvents SimpleButton3 As DevExpress.XtraEditors.SimpleButton
Friend WithEvents LayoutControlItem26 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem26 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents SimpleButton4 As DevExpress.XtraEditors.SimpleButton
Friend WithEvents FORMULA_SQLTextBox As TextBox
Friend WithEvents LayoutControlItem27 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem15 As DevExpress.XtraLayout.LayoutControlItem
End Class End Class

View File

@@ -123,6 +123,9 @@
<metadata name="DD_DMSLiteDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="DD_DMSLiteDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="DD_DMSLiteDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="TBPM_CONTROL_TABLETableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="TBPM_CONTROL_TABLETableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>440, 17</value> <value>440, 17</value>
</metadata> </metadata>
@@ -142,20 +145,17 @@
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing"> <data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="RibbonPageGroup1.Text" xml:space="preserve">
<value>RibbonPageGroup1</value>
</data>
<data name="RibbonPage1.Text" xml:space="preserve"> <data name="RibbonPage1.Text" xml:space="preserve">
<value>RibbonPage1</value> <value>RibbonPage1</value>
</data> </data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>593, 67</value> <value>630, 67</value>
</data> </data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing"> <data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 883</value> <value>0, 920</value>
</data> </data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>593, 22</value> <value>630, 22</value>
</data> </data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value> <value>RibbonStatusBar1</value>
@@ -181,20 +181,71 @@
<data name="&gt;&gt;RibbonControl1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;RibbonControl1.ZOrder" xml:space="preserve">
<value>2</value> <value>2</value>
</data> </data>
<data name="RibbonPageGroup1.Text" xml:space="preserve">
<value>RibbonPageGroup1</value>
</data>
<data name="RibbonPage2.Text" xml:space="preserve"> <data name="RibbonPage2.Text" xml:space="preserve">
<value>RibbonPage2</value> <value>RibbonPage2</value>
</data> </data>
<data name="SimpleButton3.Location" type="System.Drawing.Point, System.Drawing"> <data name="SimpleButton4.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 424</value> <value>532, 470</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SimpleButton4.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>10, 10, 10, 10</value>
</data>
<data name="SimpleButton4.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 42</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SimpleButton4.TabIndex" type="System.Int32, mscorlib">
<value>33</value>
</data>
<data name="SimpleButton4.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="&gt;&gt;SimpleButton4.Name" xml:space="preserve">
<value>SimpleButton4</value>
</data>
<data name="&gt;&gt;SimpleButton4.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;SimpleButton4.Parent" xml:space="preserve">
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SimpleButton4.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="FORMULA_SQLTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 478</value>
</data>
<data name="FORMULA_SQLTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>378, 20</value>
</data>
<data name="FORMULA_SQLTextBox.TabIndex" type="System.Int32, mscorlib">
<value>32</value>
</data>
<data name="&gt;&gt;FORMULA_SQLTextBox.Name" xml:space="preserve">
<value>FORMULA_SQLTextBox</value>
</data>
<data name="&gt;&gt;FORMULA_SQLTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;FORMULA_SQLTextBox.Parent" xml:space="preserve">
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;FORMULA_SQLTextBox.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="SimpleButton3.Location" type="System.Drawing.Point, System.Drawing">
<value>532, 424</value>
</data>
<data name="SimpleButton3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="SimpleButton3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>10, 10, 10, 10</value> <value>10, 10, 10, 10</value>
</data> </data>
<data name="SimpleButton3.Size" type="System.Drawing.Size, System.Drawing"> <data name="SimpleButton3.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 42</value> <value>86, 42</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SimpleButton3.TabIndex" type="System.Int32, mscorlib"> <data name="SimpleButton3.TabIndex" type="System.Int32, mscorlib">
<value>31</value> <value>31</value>
</data> </data>
@@ -211,13 +262,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SimpleButton3.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SimpleButton3.ZOrder" xml:space="preserve">
<value>4</value> <value>6</value>
</data> </data>
<data name="FORMULA_EXPRESSIONTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="FORMULA_EXPRESSIONTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 432</value> <value>142, 432</value>
</data> </data>
<data name="FORMULA_EXPRESSIONTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="FORMULA_EXPRESSIONTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 20</value> <value>378, 20</value>
</data> </data>
<data name="FORMULA_EXPRESSIONTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="FORMULA_EXPRESSIONTextBox.TabIndex" type="System.Int32, mscorlib">
<value>29</value> <value>29</value>
@@ -232,13 +283,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.ZOrder" xml:space="preserve">
<value>5</value> <value>7</value>
</data> </data>
<data name="LU_CAPTIONTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="LU_CAPTIONTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 306</value> <value>142, 306</value>
</data> </data>
<data name="LU_CAPTIONTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="LU_CAPTIONTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="LU_CAPTIONTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="LU_CAPTIONTextBox.TabIndex" type="System.Int32, mscorlib">
<value>26</value> <value>26</value>
@@ -253,13 +304,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;LU_CAPTIONTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;LU_CAPTIONTextBox.ZOrder" xml:space="preserve">
<value>6</value> <value>8</value>
</data> </data>
<data name="GUIDTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="GUIDTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 20</value> <value>142, 20</value>
</data> </data>
<data name="GUIDTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="GUIDTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="GUIDTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="GUIDTextBox.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@@ -274,13 +325,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;GUIDTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;GUIDTextBox.ZOrder" xml:space="preserve">
<value>7</value> <value>9</value>
</data> </data>
<data name="SPALTENNAMETextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="SPALTENNAMETextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 60</value> <value>142, 60</value>
</data> </data>
<data name="SPALTENNAMETextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SPALTENNAMETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="SPALTENNAMETextBox.TabIndex" type="System.Int32, mscorlib"> <data name="SPALTENNAMETextBox.TabIndex" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
@@ -295,13 +346,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SPALTENNAMETextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SPALTENNAMETextBox.ZOrder" xml:space="preserve">
<value>8</value> <value>10</value>
</data> </data>
<data name="SPALTEN_HEADERTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="SPALTEN_HEADERTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 100</value> <value>142, 100</value>
</data> </data>
<data name="SPALTEN_HEADERTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SPALTEN_HEADERTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="SPALTEN_HEADERTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="SPALTEN_HEADERTextBox.TabIndex" type="System.Int32, mscorlib">
<value>6</value> <value>6</value>
@@ -316,7 +367,7 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SPALTEN_HEADERTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SPALTEN_HEADERTextBox.ZOrder" xml:space="preserve">
<value>9</value> <value>11</value>
</data> </data>
<data name="SPALTENBREITETextBox.EditValue" type="System.Decimal, mscorlib"> <data name="SPALTENBREITETextBox.EditValue" type="System.Decimal, mscorlib">
<value>0</value> <value>0</value>
@@ -329,7 +380,7 @@
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="SPALTENBREITETextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SPALTENBREITETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 20</value> <value>162, 20</value>
</data> </data>
<data name="SPALTENBREITETextBox.TabIndex" type="System.Int32, mscorlib"> <data name="SPALTENBREITETextBox.TabIndex" type="System.Int32, mscorlib">
<value>7</value> <value>7</value>
@@ -344,13 +395,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SPALTENBREITETextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SPALTENBREITETextBox.ZOrder" xml:space="preserve">
<value>10</value> <value>12</value>
</data> </data>
<data name="REGEX_MATCHTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="REGEX_MATCHTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 220</value> <value>142, 220</value>
</data> </data>
<data name="REGEX_MATCHTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="REGEX_MATCHTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 20</value> <value>378, 20</value>
</data> </data>
<data name="REGEX_MATCHTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="REGEX_MATCHTextBox.TabIndex" type="System.Int32, mscorlib">
<value>8</value> <value>8</value>
@@ -365,10 +416,10 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;REGEX_MATCHTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;REGEX_MATCHTextBox.ZOrder" xml:space="preserve">
<value>11</value> <value>13</value>
</data> </data>
<data name="SimpleButton1.Location" type="System.Drawing.Point, System.Drawing"> <data name="SimpleButton1.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 212</value> <value>532, 212</value>
</data> </data>
<data name="SimpleButton1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="SimpleButton1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>10, 10, 10, 10</value> <value>10, 10, 10, 10</value>
@@ -377,7 +428,7 @@
<value>10, 10, 10, 10</value> <value>10, 10, 10, 10</value>
</data> </data>
<data name="SimpleButton1.Size" type="System.Drawing.Size, System.Drawing"> <data name="SimpleButton1.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 42</value> <value>86, 42</value>
</data> </data>
<data name="SimpleButton1.TabIndex" type="System.Int32, mscorlib"> <data name="SimpleButton1.TabIndex" type="System.Int32, mscorlib">
<value>9</value> <value>9</value>
@@ -395,13 +446,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SimpleButton1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SimpleButton1.ZOrder" xml:space="preserve">
<value>12</value> <value>14</value>
</data> </data>
<data name="REGEX_MESSAGE_DETextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="REGEX_MESSAGE_DETextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 266</value> <value>142, 266</value>
</data> </data>
<data name="REGEX_MESSAGE_DETextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="REGEX_MESSAGE_DETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="REGEX_MESSAGE_DETextBox.TabIndex" type="System.Int32, mscorlib"> <data name="REGEX_MESSAGE_DETextBox.TabIndex" type="System.Int32, mscorlib">
<value>10</value> <value>10</value>
@@ -416,13 +467,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;REGEX_MESSAGE_DETextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;REGEX_MESSAGE_DETextBox.ZOrder" xml:space="preserve">
<value>13</value> <value>15</value>
</data> </data>
<data name="SQL_COMMANDTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="SQL_COMMANDTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 346</value> <value>142, 346</value>
</data> </data>
<data name="SQL_COMMANDTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SQL_COMMANDTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 20</value> <value>378, 20</value>
</data> </data>
<data name="SQL_COMMANDTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="SQL_COMMANDTextBox.TabIndex" type="System.Int32, mscorlib">
<value>11</value> <value>11</value>
@@ -437,16 +488,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SQL_COMMANDTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SQL_COMMANDTextBox.ZOrder" xml:space="preserve">
<value>14</value> <value>16</value>
</data> </data>
<data name="SimpleButton2.Location" type="System.Drawing.Point, System.Drawing"> <data name="SimpleButton2.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 338</value> <value>532, 338</value>
</data> </data>
<data name="SimpleButton2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="SimpleButton2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>10, 10, 10, 10</value> <value>10, 10, 10, 10</value>
</data> </data>
<data name="SimpleButton2.Size" type="System.Drawing.Size, System.Drawing"> <data name="SimpleButton2.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 42</value> <value>86, 42</value>
</data> </data>
<data name="SimpleButton2.TabIndex" type="System.Int32, mscorlib"> <data name="SimpleButton2.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
@@ -464,13 +515,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SimpleButton2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SimpleButton2.ZOrder" xml:space="preserve">
<value>15</value> <value>17</value>
</data> </data>
<data name="TextEdit7.Location" type="System.Drawing.Point, System.Drawing"> <data name="TextEdit7.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 478</value> <value>142, 524</value>
</data> </data>
<data name="TextEdit7.Size" type="System.Drawing.Size, System.Drawing"> <data name="TextEdit7.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 20</value> <value>162, 20</value>
</data> </data>
<data name="TextEdit7.TabIndex" type="System.Int32, mscorlib"> <data name="TextEdit7.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>13</value>
@@ -485,13 +536,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;TextEdit7.ZOrder" xml:space="preserve"> <data name="&gt;&gt;TextEdit7.ZOrder" xml:space="preserve">
<value>16</value> <value>18</value>
</data> </data>
<data name="TextEdit8.Location" type="System.Drawing.Point, System.Drawing"> <data name="TextEdit8.Location" type="System.Drawing.Point, System.Drawing">
<value>428, 478</value> <value>446, 524</value>
</data> </data>
<data name="TextEdit8.Size" type="System.Drawing.Size, System.Drawing"> <data name="TextEdit8.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 20</value> <value>164, 20</value>
</data> </data>
<data name="TextEdit8.TabIndex" type="System.Int32, mscorlib"> <data name="TextEdit8.TabIndex" type="System.Int32, mscorlib">
<value>14</value> <value>14</value>
@@ -506,13 +557,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;TextEdit8.ZOrder" xml:space="preserve"> <data name="&gt;&gt;TextEdit8.ZOrder" xml:space="preserve">
<value>17</value> <value>19</value>
</data> </data>
<data name="CHANGED_WHOTextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="CHANGED_WHOTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 518</value> <value>142, 564</value>
</data> </data>
<data name="CHANGED_WHOTextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="CHANGED_WHOTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 20</value> <value>162, 20</value>
</data> </data>
<data name="CHANGED_WHOTextBox.TabIndex" type="System.Int32, mscorlib"> <data name="CHANGED_WHOTextBox.TabIndex" type="System.Int32, mscorlib">
<value>15</value> <value>15</value>
@@ -527,13 +578,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;CHANGED_WHOTextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;CHANGED_WHOTextBox.ZOrder" xml:space="preserve">
<value>18</value> <value>20</value>
</data> </data>
<data name="TextEdit10.Location" type="System.Drawing.Point, System.Drawing"> <data name="TextEdit10.Location" type="System.Drawing.Point, System.Drawing">
<value>428, 518</value> <value>446, 564</value>
</data> </data>
<data name="TextEdit10.Size" type="System.Drawing.Size, System.Drawing"> <data name="TextEdit10.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 20</value> <value>164, 20</value>
</data> </data>
<data name="TextEdit10.TabIndex" type="System.Int32, mscorlib"> <data name="TextEdit10.TabIndex" type="System.Int32, mscorlib">
<value>16</value> <value>16</value>
@@ -548,16 +599,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;TextEdit10.ZOrder" xml:space="preserve"> <data name="&gt;&gt;TextEdit10.ZOrder" xml:space="preserve">
<value>19</value> <value>21</value>
</data> </data>
<data name="READ_ONLYCheckBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="READ_ONLYCheckBox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 607</value> <value>24, 653</value>
</data> </data>
<data name="READ_ONLYCheckBox.Properties.Caption" xml:space="preserve"> <data name="READ_ONLYCheckBox.Properties.Caption" xml:space="preserve">
<value>Read Only</value> <value>Read Only</value>
</data> </data>
<data name="READ_ONLYCheckBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="READ_ONLYCheckBox.Size" type="System.Drawing.Size, System.Drawing">
<value>545, 18</value> <value>582, 18</value>
</data> </data>
<data name="READ_ONLYCheckBox.TabIndex" type="System.Int32, mscorlib"> <data name="READ_ONLYCheckBox.TabIndex" type="System.Int32, mscorlib">
<value>17</value> <value>17</value>
@@ -572,16 +623,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;READ_ONLYCheckBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;READ_ONLYCheckBox.ZOrder" xml:space="preserve">
<value>20</value> <value>22</value>
</data> </data>
<data name="LOAD_IDX_VALUECheckBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="LOAD_IDX_VALUECheckBox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 651</value> <value>24, 697</value>
</data> </data>
<data name="LOAD_IDX_VALUECheckBox.Properties.Caption" xml:space="preserve"> <data name="LOAD_IDX_VALUECheckBox.Properties.Caption" xml:space="preserve">
<value>Lade Indexdaten</value> <value>Lade Indexdaten</value>
</data> </data>
<data name="LOAD_IDX_VALUECheckBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="LOAD_IDX_VALUECheckBox.Size" type="System.Drawing.Size, System.Drawing">
<value>545, 18</value> <value>582, 18</value>
</data> </data>
<data name="LOAD_IDX_VALUECheckBox.TabIndex" type="System.Int32, mscorlib"> <data name="LOAD_IDX_VALUECheckBox.TabIndex" type="System.Int32, mscorlib">
<value>18</value> <value>18</value>
@@ -596,16 +647,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;LOAD_IDX_VALUECheckBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;LOAD_IDX_VALUECheckBox.ZOrder" xml:space="preserve">
<value>21</value> <value>23</value>
</data> </data>
<data name="VALIDATIONCheckbox.Location" type="System.Drawing.Point, System.Drawing"> <data name="VALIDATIONCheckbox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 583</value> <value>24, 629</value>
</data> </data>
<data name="VALIDATIONCheckbox.Properties.Caption" xml:space="preserve"> <data name="VALIDATIONCheckbox.Properties.Caption" xml:space="preserve">
<value>Muss ausgefüllt werden</value> <value>Muss ausgefüllt werden</value>
</data> </data>
<data name="VALIDATIONCheckbox.Size" type="System.Drawing.Size, System.Drawing"> <data name="VALIDATIONCheckbox.Size" type="System.Drawing.Size, System.Drawing">
<value>270, 18</value> <value>288, 18</value>
</data> </data>
<data name="VALIDATIONCheckbox.TabIndex" type="System.Int32, mscorlib"> <data name="VALIDATIONCheckbox.TabIndex" type="System.Int32, mscorlib">
<value>19</value> <value>19</value>
@@ -620,16 +671,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;VALIDATIONCheckbox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;VALIDATIONCheckbox.ZOrder" xml:space="preserve">
<value>22</value> <value>24</value>
</data> </data>
<data name="ADVANCED_LOOKUPCheckbox.Location" type="System.Drawing.Point, System.Drawing"> <data name="ADVANCED_LOOKUPCheckbox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 629</value> <value>24, 675</value>
</data> </data>
<data name="ADVANCED_LOOKUPCheckbox.Properties.Caption" xml:space="preserve"> <data name="ADVANCED_LOOKUPCheckbox.Properties.Caption" xml:space="preserve">
<value>Erweitertes Auswahl Control (für lange Listen)</value> <value>Erweitertes Auswahl Control (für lange Listen)</value>
</data> </data>
<data name="ADVANCED_LOOKUPCheckbox.Size" type="System.Drawing.Size, System.Drawing"> <data name="ADVANCED_LOOKUPCheckbox.Size" type="System.Drawing.Size, System.Drawing">
<value>545, 18</value> <value>582, 18</value>
</data> </data>
<data name="ADVANCED_LOOKUPCheckbox.TabIndex" type="System.Int32, mscorlib"> <data name="ADVANCED_LOOKUPCheckbox.TabIndex" type="System.Int32, mscorlib">
<value>20</value> <value>20</value>
@@ -644,13 +695,13 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;ADVANCED_LOOKUPCheckbox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;ADVANCED_LOOKUPCheckbox.ZOrder" xml:space="preserve">
<value>23</value> <value>25</value>
</data> </data>
<data name="DEFAULTVALUETextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="DEFAULTVALUETextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 392</value> <value>142, 392</value>
</data> </data>
<data name="DEFAULTVALUETextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="DEFAULTVALUETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="DEFAULTVALUETextBox.TabIndex" type="System.Int32, mscorlib"> <data name="DEFAULTVALUETextBox.TabIndex" type="System.Int32, mscorlib">
<value>21</value> <value>21</value>
@@ -665,19 +716,19 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;DEFAULTVALUETextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;DEFAULTVALUETextBox.ZOrder" xml:space="preserve">
<value>24</value> <value>26</value>
</data> </data>
<data name="SEQUENCETextBox.EditValue" type="System.Decimal, mscorlib"> <data name="SEQUENCETextBox.EditValue" type="System.Decimal, mscorlib">
<value>0</value> <value>0</value>
</data> </data>
<data name="SEQUENCETextBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="SEQUENCETextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>428, 140</value> <value>446, 140</value>
</data> </data>
<data name="SEQUENCETextBox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="SEQUENCETextBox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
</data> </data>
<data name="SEQUENCETextBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SEQUENCETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 20</value> <value>164, 20</value>
</data> </data>
<data name="SEQUENCETextBox.TabIndex" type="System.Int32, mscorlib"> <data name="SEQUENCETextBox.TabIndex" type="System.Int32, mscorlib">
<value>22</value> <value>22</value>
@@ -692,10 +743,10 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SEQUENCETextBox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SEQUENCETextBox.ZOrder" xml:space="preserve">
<value>25</value> <value>27</value>
</data> </data>
<data name="SUMMARY_FUNCTIONCombobox.Location" type="System.Drawing.Point, System.Drawing"> <data name="SUMMARY_FUNCTIONCombobox.Location" type="System.Drawing.Point, System.Drawing">
<value>420, 583</value> <value>438, 629</value>
</data> </data>
<data name="SUMMARY_FUNCTIONCombobox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2"> <data name="SUMMARY_FUNCTIONCombobox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value> <value>Combo</value>
@@ -704,7 +755,7 @@
<value /> <value />
</data> </data>
<data name="SUMMARY_FUNCTIONCombobox.Size" type="System.Drawing.Size, System.Drawing"> <data name="SUMMARY_FUNCTIONCombobox.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 20</value> <value>168, 20</value>
</data> </data>
<data name="SUMMARY_FUNCTIONCombobox.TabIndex" type="System.Int32, mscorlib"> <data name="SUMMARY_FUNCTIONCombobox.TabIndex" type="System.Int32, mscorlib">
<value>23</value> <value>23</value>
@@ -719,7 +770,7 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;SUMMARY_FUNCTIONCombobox.ZOrder" xml:space="preserve"> <data name="&gt;&gt;SUMMARY_FUNCTIONCombobox.ZOrder" xml:space="preserve">
<value>26</value> <value>28</value>
</data> </data>
<data name="TYPE_COLUMNComboBox2.Location" type="System.Drawing.Point, System.Drawing"> <data name="TYPE_COLUMNComboBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 180</value> <value>142, 180</value>
@@ -731,7 +782,7 @@
<value /> <value />
</data> </data>
<data name="TYPE_COLUMNComboBox2.Size" type="System.Drawing.Size, System.Drawing"> <data name="TYPE_COLUMNComboBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>431, 20</value> <value>468, 20</value>
</data> </data>
<data name="TYPE_COLUMNComboBox2.TabIndex" type="System.Int32, mscorlib"> <data name="TYPE_COLUMNComboBox2.TabIndex" type="System.Int32, mscorlib">
<value>27</value> <value>27</value>
@@ -746,16 +797,16 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;TYPE_COLUMNComboBox2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;TYPE_COLUMNComboBox2.ZOrder" xml:space="preserve">
<value>27</value> <value>29</value>
</data> </data>
<data name="CheckEditInheritValue.Location" type="System.Drawing.Point, System.Drawing"> <data name="CheckEditInheritValue.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 673</value> <value>24, 719</value>
</data> </data>
<data name="CheckEditInheritValue.Properties.Caption" xml:space="preserve"> <data name="CheckEditInheritValue.Properties.Caption" xml:space="preserve">
<value>Inherit Value (Vererbt den Wert der aktuellen Zelle auf alle nachfolgenden)</value> <value>Inherit Value (Vererbt den Wert der aktuellen Zelle auf alle nachfolgenden)</value>
</data> </data>
<data name="CheckEditInheritValue.Size" type="System.Drawing.Size, System.Drawing"> <data name="CheckEditInheritValue.Size" type="System.Drawing.Size, System.Drawing">
<value>545, 18</value> <value>582, 18</value>
</data> </data>
<data name="CheckEditInheritValue.TabIndex" type="System.Int32, mscorlib"> <data name="CheckEditInheritValue.TabIndex" type="System.Int32, mscorlib">
<value>28</value> <value>28</value>
@@ -770,7 +821,7 @@
<value>LayoutControl1</value> <value>LayoutControl1</value>
</data> </data>
<data name="&gt;&gt;CheckEditInheritValue.ZOrder" xml:space="preserve"> <data name="&gt;&gt;CheckEditInheritValue.ZOrder" xml:space="preserve">
<value>28</value> <value>30</value>
</data> </data>
<data name="LayoutControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="LayoutControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
@@ -835,8 +886,11 @@
<data name="LayoutControlItem24.Text" xml:space="preserve"> <data name="LayoutControlItem24.Text" xml:space="preserve">
<value>Formel:</value> <value>Formel:</value>
</data> </data>
<data name="LayoutControlItem27.Text" xml:space="preserve">
<value>Formel SQL:</value>
</data>
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>593, 816</value> <value>630, 853</value>
</data> </data>
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib"> <data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
<value>33</value> <value>33</value>
@@ -863,7 +917,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>593, 905</value> <value>630, 942</value>
</data> </data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing"> <data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value> <value>Segoe UI, 8.25pt</value>
@@ -1093,6 +1147,18 @@
<data name="&gt;&gt;LayoutControlItem26.Type" xml:space="preserve"> <data name="&gt;&gt;LayoutControlItem26.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value> <value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data> </data>
<data name="&gt;&gt;LayoutControlItem27.Name" xml:space="preserve">
<value>LayoutControlItem27</value>
</data>
<data name="&gt;&gt;LayoutControlItem27.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;LayoutControlItem15.Name" xml:space="preserve">
<value>LayoutControlItem15</value>
</data>
<data name="&gt;&gt;LayoutControlItem15.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmColumn_Detail</value> <value>frmColumn_Detail</value>
</data> </data>

View File

@@ -100,6 +100,7 @@ Public Class frmColumn_Detail
LU_CAPTIONTextBox.Text, LU_CAPTIONTextBox.Text,
CheckEditInheritValue.Checked, CheckEditInheritValue.Checked,
FORMULA_EXPRESSIONTextBox.Text, FORMULA_EXPRESSIONTextBox.Text,
FORMULA_SQLTextBox.Text,
GUIDTextBox.Text GUIDTextBox.Text
) )
tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
@@ -224,4 +225,52 @@ Public Class frmColumn_Detail
Dim dt As DataTable = DatabaseFallback.GetDatatableECM(oSQL) Dim dt As DataTable = DatabaseFallback.GetDatatableECM(oSQL)
Return dt Return dt
End Function End Function
Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles SimpleButton4.Click
Dim oldSQL = FORMULA_SQLTextBox.Text
CURRENT_DESIGN_TYPE = "SQL_SOURCE_TABLE_COLUMN"
CURRENT_INDEX_ID = GUIDTextBox.Text
Dim oForm2 As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
.SQLCommand = FORMULA_SQLTextBox.Text,
.SQLConnection = 0
}
oForm2.ShowDialog()
If oForm2.DialogResult = DialogResult.OK Then
If oldSQL <> oForm2.SQLCommand Then
Dim oUpdate As String = $"Update TBPM_CONTROL_TABLE SET CHANGED_WHO = '{USER_USERNAME}', FORMULA_SQL = '{oForm2.SQLCommand.Replace("'", "''")}'
, CONNECTION_ID = {oForm2.SQLConnection} WHERE GUID = {GUIDTextBox.Text}"
If DatabaseFallback.ExecuteNonQueryECM(oUpdate) = True Then
tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
tslblAenderungen.Caption = "Changes saved - " & Now
FORMULA_SQLTextBox.Text = oForm2.SQLCommand
Else
MsgBox("Fehler beim Speichern des SQL Befehls. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut.", MsgBoxStyle.Critical, "Fehler")
End If
End If
End If
End Sub
Private Sub FORMULA_EXPRESSIONTextBox_TextChanged(sender As Object, e As EventArgs) Handles FORMULA_EXPRESSIONTextBox.TextChanged, FORMULA_SQLTextBox.TextChanged
Dim oHasFormulaExpression As Boolean = FORMULA_EXPRESSIONTextBox.Text.Trim() <> String.Empty
Dim oHasFormulaSql As Boolean = FORMULA_SQLTextBox.Text.Trim() <> String.Empty
' Entweder/Oder-Validierung: Beide gleichzeitig ist nicht erlaubt
If oHasFormulaExpression AndAlso oHasFormulaSql Then
MsgBox("Es darf nur FORMULA_EXPRESSION oder FORMULA_SQL gesetzt sein, nicht beides." & vbCrLf &
"Bitte leeren Sie eines der beiden Felder.",
MsgBoxStyle.Exclamation, "Ungültige Konfiguration")
End If
' Wenn eine Formel gesetzt ist → ReadOnly aktivieren und sperren
If oHasFormulaExpression OrElse oHasFormulaSql Then
READ_ONLYCheckBox.Checked = True
'READ_ONLYCheckBox.Enabled = False
Else
READ_ONLYCheckBox.Checked = False
'READ_ONLYCheckBox.Enabled = True
End If
End Sub
End Class End Class

View File

@@ -2,8 +2,21 @@
Public Class frmError Public Class frmError
Public ValidatorError As String = "" Public ValidatorError As String = ""
Private _isClosing As Boolean = False
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.Close() ' ========== FIX 1: Event-Handler SOFORT deregistrieren ==========
RemoveHandler OK_Button.Click, AddressOf OK_Button_Click
' ========== DIAGNOSE: StackTrace ausgeben ==========
Dim st As New StackTrace(True)
LOGGER.Debug($"[frmError] OK_Button_Click aufgerufen von:")
For Each frame As StackFrame In st.GetFrames()
LOGGER.Debug($" {frame.GetMethod()?.DeclaringType?.Name}.{frame.GetMethod()?.Name} (Zeile {frame.GetFileLineNumber()})")
Next
' ========== ENDE DIAGNOSE ==========
CloseDialog()
End Sub End Sub
Private Sub frmError_Load(sender As Object, e As System.EventArgs) Handles Me.Load Private Sub frmError_Load(sender As Object, e As System.EventArgs) Handles Me.Load
@@ -27,7 +40,45 @@ Public Class frmError
End If End If
End Sub End Sub
Private Sub frmError_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown Private Sub CloseDialog()
Me.Label1.Focus() ' ========== FIX 2: Guard mit Dispose-Check ==========
If _isClosing OrElse Me.IsDisposed Then
LOGGER.Debug($"[frmError] CloseDialog blockiert (isClosing={_isClosing}, IsDisposed={Me.IsDisposed})")
Exit Sub
End If
_isClosing = True
LOGGER.Debug($"[frmError] CloseDialog: Flag gesetzt, starte verzögerten Close")
' ========== FIX 3: VERZÖGERTER Close via BeginInvoke ==========
' KRITISCH: Close wird NACH Abschluss des aktuellen Event-Handlers ausgeführt
Me.BeginInvoke(New Action(Sub()
If Not Me.IsDisposed Then
Me.DialogResult = DialogResult.OK
Me.Close()
LOGGER.Debug($"[frmError] Dialog geschlossen via BeginInvoke")
End If
End Sub))
' ========== ENDE FIX 3 ==========
End Sub End Sub
Private Sub frmError_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.Label1.Focus()
LOGGER.Debug($"[frmError] Dialog angezeigt - Enabled: {Me.Enabled}")
End Sub
Private Sub frmError_Activated(sender As Object, e As EventArgs) Handles Me.Activated
LOGGER.Debug($"[frmError] Dialog aktiviert")
End Sub
' ========== FIX 4: FormClosing-Handler hinzufügen ==========
Private Sub frmError_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If _isClosing Then
LOGGER.Debug($"[frmError] FormClosing: Close bereits aktiv, erlauben")
Return
End If
' Falls Close von außen (z.B. [X]-Button) ausgelöst wurde
_isClosing = True
LOGGER.Debug($"[frmError] FormClosing: Flag gesetzt via FormClosing")
End Sub
' ========== ENDE FIX 4 ==========
End Class End Class

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>
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
</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

@@ -2,7 +2,7 @@
Imports Oracle.ManagedDataAccess.Client Imports Oracle.ManagedDataAccess.Client
Imports System.ComponentModel Imports System.ComponentModel
Imports DigitalData.Controls.LookupGrid Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.Language.Utils 'Imports DigitalData.Modules.Language.Utils
Imports System.IO Imports System.IO
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
Imports DigitalData.Modules.EDMI.API.Constants Imports DigitalData.Modules.EDMI.API.Constants
@@ -33,7 +33,6 @@ Public Class frmMassValidator
Dim viewer_string As String Dim viewer_string As String
Dim pdfxchange As Boolean = False Dim pdfxchange As Boolean = False
Dim sumatra As Boolean = False Dim sumatra As Boolean = False
Dim WMObject As WMObject
Private Sub frmMassValidator_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub frmMassValidator_Load(sender As Object, e As EventArgs) Handles Me.Load
FORM_Shown = False FORM_Shown = False
Try Try
@@ -1261,35 +1260,35 @@ Public Class frmMassValidator
Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, USER_USERNAME, Environment.MachineName, WORK_HISTORY_ENTRY) Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, USER_USERNAME, Environment.MachineName, WORK_HISTORY_ENTRY)
DatabaseFallback.ExecuteNonQueryECM(ins) DatabaseFallback.ExecuteNonQueryECM(ins)
'####### ANNOTIEREN WENN KONFIGURIERT ####### ''####### ANNOTIEREN WENN KONFIGURIERT #######
If docrow.Item("FULL_PATH").ToString.ToLower.EndsWith(".pdf") Then 'If docrow.Item("FULL_PATH").ToString.ToLower.EndsWith(".pdf") Then
If Not IsNothing(WORK_HISTORY_ENTRY) Then ' If Not IsNothing(WORK_HISTORY_ENTRY) Then
If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then ' If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then
Dim Sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID) ' Dim Sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID)
Dim DT_ENTRY As DataTable = DatabaseFallback.GetDatatableECM(Sql) ', "MV_Finish1") ' Dim DT_ENTRY As DataTable = DatabaseFallback.GetDatatableECM(Sql) ', "MV_Finish1")
If Not IsNothing(DT_ENTRY) Then ' If Not IsNothing(DT_ENTRY) Then
If DT_ENTRY.Rows.Count = 1 Then ' If DT_ENTRY.Rows.Count = 1 Then
Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT") ' Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT")
ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False) ' ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False)
End If ' End If
End If ' End If
End If ' End If
Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES") ' Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES")
If CBool(value) = True Then ' If CBool(value) = True Then
Dim Sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID) ' Dim Sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID)
Dim DT_ENTRIES As DataTable = DatabaseFallback.GetDatatableECM(Sql) ', "MV_Finish2") ' Dim DT_ENTRIES As DataTable = DatabaseFallback.GetDatatableECM(Sql) ', "MV_Finish2")
If Not IsNothing(DT_ENTRIES) Then ' If Not IsNothing(DT_ENTRIES) Then
If DT_ENTRIES.Rows.Count > 0 Then ' If DT_ENTRIES.Rows.Count > 0 Then
Dim AnnotationString As String = "" ' Dim AnnotationString As String = ""
For Each rw As DataRow In DT_ENTRIES.Rows ' For Each rw As DataRow In DT_ENTRIES.Rows
AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine ' AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine
Next ' Next
ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, 10, 40) ' ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, 10, 40)
End If ' End If
End If ' End If
End If ' End If
End If ' End If
End If 'End If
'####### WENN MOVE2FOLDER KONFIGURIERT IST####### '####### WENN MOVE2FOLDER KONFIGURIERT IST#######
If MOVE2Folder <> "" Then If MOVE2Folder <> "" Then

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,10 +243,13 @@ 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")
Me.Close()
End If
oSQL = DT_MONITOR_KONFIG.Rows(0).Item("GRID_SQL") oSQL = DT_MONITOR_KONFIG.Rows(0).Item("GRID_SQL")
GridView1.Columns.Clear() GridView1.Columns.Clear()
Dim oDTGRID1 As DataTable = Await DatabaseFallback.GetDatatableECMAsync(oSQL) ', "Monitor-Load_Grid_Data2") Dim oDTGRID1 As DataTable = Await DatabaseFallback.GetDatatableECMAsync(oSQL) ', "Monitor-Load_Grid_Data2")
@@ -287,9 +290,9 @@ Public Class frmMonitor
GridView4.ViewCaption = GRID4_TITLE GridView4.ViewCaption = GRID4_TITLE
End Select End Select
End If End If
End If
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:")
@@ -297,158 +300,83 @@ Public Class frmMonitor
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>

File diff suppressed because it is too large Load Diff

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,6 +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 DocumentPathHandler
Private _suppressTabEvents As Boolean = False
Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment) Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment)
@@ -79,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)}")
' 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
' Thread-Synchronisation
If Me.InvokeRequired() Then If Me.InvokeRequired() Then
LOGGER.Debug("InvokeRequired=True, rufe auf UI-Thread auf")
Me.Invoke(Sub() TabPreload(TabCountSQL, TabCountDoc, DTSQL, DTDOC)) 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 Else
'#### SQL Tabs Design Laden If DocumentViewer1.Visible Then
DocumentViewer1.Visible = False
LOGGER.Debug("✓ DocumentViewer1 ausgeblendet (keine Doc-Searches)")
End If
End If
If DTSQL.Rows.Count > 0 Then ' #### SQL Tabs konfigurieren
LOGGER.Debug(String.Format("[{0} SQL-Definitions]", DTSQL.Rows.Count)) 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 For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
XtraTabControlSQL.TabPages(p).PageVisible = False XtraTabControlSQL.TabPages(p).PageVisible = False
End If
Next Next
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1 LOGGER.Debug($"Alle {XtraTabControlSQL.TabPages.Count} SQL-Tabs auf PageVisible=False gesetzt")
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
Exit For
End If
XtraTabControlSQL.TabPages(p).Text = DTSQL.Rows(p).Item("TAB_TITLE")
Next ' Nur benötigte Tabs sichtbar machen
End If Dim processedTabs As Integer = 0
For p As Integer = 0 To Math.Min(actualSQLTabCount - 1, XtraTabControlSQL.TabPages.Count - 1)
If DTDOC.Rows.Count > 0 Then If p < DTSQL.Rows.Count Then
LOGGER.Debug(String.Format("[{0} Doc-Definitions]", DTDOC.Rows.Count)) Try
'#### Doc Tabs Design Laden Dim tabTitle As String = If(DTSQL.Rows(p).Item("TAB_TITLE")?.ToString(), $"Tab {p + 1}")
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1 XtraTabControlSQL.TabPages(p).Text = tabTitle
If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then XtraTabControlSQL.TabPages(p).PageVisible = True
XtraTabControlDocs.TabPages(p).PageVisible = False processedTabs += 1
End If LOGGER.Debug($"SQL-Tab {p}: Text='{tabTitle}', PageVisible=True")
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
End If
Catch ex As Exception Catch ex As Exception
LOGGER.Error(ex) 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 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
@@ -237,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)
@@ -463,33 +772,65 @@ Public Class frmValidatorSearch
If My.Settings.frmValSearchSplitterDistance > 20 Then If My.Settings.frmValSearchSplitterDistance > 20 Then
SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance
End If End If
' DocumentPathHandler initialisieren
_documentPathHandler = New DocumentPathHandler(LOGCONFIG)
ToolStripDropDownButtonFile.Visible = False ToolStripDropDownButtonFile.Visible = False
End Sub End Sub
Private Sub EnsureFormIsVisible()
Try
' Aktuellen Bildschirm basierend auf der Formularposition ermitteln
Dim currentScreen As Screen = Screen.FromPoint(Me.Location)
Dim workingArea As Rectangle = currentScreen.WorkingArea
' Prüfen ob das Formular vollständig außerhalb des sichtbaren Bereichs liegt
Dim formBounds As New Rectangle(Me.Location, Me.Size)
' Wenn das Formular nicht mit dem Arbeitsbereich überschneidet
If Not workingArea.IntersectsWith(formBounds) Then
CenterFormOnScreen()
Exit Sub
End If
' Optional: Prüfen ob das Formular zu weit außerhalb liegt (z.B. nur 20% sichtbar)
Dim visibleArea As Rectangle = Rectangle.Intersect(workingArea, formBounds)
Dim visiblePercentage As Double = (visibleArea.Width * visibleArea.Height) / (formBounds.Width * formBounds.Height)
If visiblePercentage < 0.2 Then ' Weniger als 20% sichtbar
CenterFormOnScreen()
End If
Catch ex As Exception
LOGGER.Error(ex)
' Bei Fehler sicherheitshalber zentrieren
CenterFormOnScreen()
End Try
End Sub
Private Sub CenterFormOnScreen()
Try
' Formular auf dem primären Bildschirm zentrieren
Me.StartPosition = FormStartPosition.CenterScreen
' Alternative: Auf aktuellem Bildschirm zentrieren
Dim currentScreen As Screen = Screen.PrimaryScreen
Dim x As Integer = currentScreen.WorkingArea.Left + (currentScreen.WorkingArea.Width - Me.Width) \ 2
Dim y As Integer = currentScreen.WorkingArea.Top + (currentScreen.WorkingArea.Height - Me.Height) \ 2
Me.Location = New Point(x, y)
LOGGER.Info("Formular wurde zentriert, da es außerhalb des sichtbaren Bereichs lag")
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Private Sub frmValidatorSearch_Shown(sender As Object, e As EventArgs) Handles Me.Shown Private Sub frmValidatorSearch_Shown(sender As Object, e As EventArgs) Handles Me.Shown
' Prüfen ob das Formular im sichtbaren Bereich liegt
EnsureFormIsVisible()
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()
@@ -518,86 +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(oDocument.Contents) Then
DocumentViewer1.LoadFile_FromPath(clsWMDocGrid.SELECTED_DOC_PATH) ',oFileName, New MemoryStream(oDocument.Contents))
LastDocID = clsWMDocGrid.SELECTED_DOC_ID
DocumentViewer1.RightViewOnly(USER_RIGHT_VIEW_ONLY)
If USER_RIGHT_VIEW_ONLY = True Then
ToolStripDropDownButtonFile.Visible = False
Else
ToolStripDropDownButtonFile.Visible = True
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)
End Try Finally
Try
myGrid.HideLoadingPanel() myGrid.HideLoadingPanel()
Catch
End Try
End Try
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
@@ -693,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!")
@@ -710,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
@@ -754,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

View File

@@ -0,0 +1,150 @@
13:45:45.0872|frmValidator|INFO >> Load_Additional_Searches -> ✓ SQL-Search 'Inhalte ZUGFeRD-XML': 67 Ergebnisse gefunden
13:45:45.0872|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}]
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> Starting ReplaceIDBAttributes with input: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}] for document ID: 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}]
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = {#IDBA#ObjectID}
13:45:45.0872|taskFLOW|DEBUG >> ReplaceControlValues -> Starting ReplaceControlValues with input: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694] for document ID: 4511694
13:45:45.0872|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694]
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access.
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
13:45:45.0872|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1]
13:45:45.0872|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1]
13:45:45.0872|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.0872|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters []
13:45:45.0872|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX
13:45:45.0872|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.0872|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [Select T.DocID,T.FULL_FILENAME,T.Doctype from TBPM_CUST_ATTACHMENTS T WITH (NOLOCK) INNER JOIN idb.dbo.VWIDB_DOC_DATA T1 ON T.EmailMessageID = T1.EmailMessageID WHERE T1.IDB_OBJ_ID = 4511694] and Parameters []
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Doc-Search 'Attachments': Keine Ergebnisse gefunden
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> Ergebnisprüfung abgeschlossen: AdditionalDataResultsExist=True, AdditionalDocResultsExist=False
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> rbnPgGroupAttmt.Visible gesetzt auf: True | Stack:
at taskFLOW.frmValidator.FillIndexValues(Boolean first, String SingleAttribute)
13:45:45.5262|frmValidator|DEBUG >> Load_Additional_Searches -> --- NORMAL-MODUS aktiviert (nur vorbereiten, NICHT Show) ---
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> === TabPreload START ===
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Parameters: TabCountSQL=1, TabCountDoc=0, DTSQL.Rows=1, DTDOC.Rows=0
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> Ausführung auf UI-Thread
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> 🚫 Tab-Events deaktiviert
13:45:45.5262|taskFLOW|DEBUG >> TabPreload -> ✓ _DTDATASearches und _DTDocSearches zugewiesen: SQL=1, Doc=0
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Panel1Collapsed (SQL)=False, Panel2Collapsed (Doc)=True
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Konfiguriere SQL-Tabs: 1 Definitionen
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Alle 5 SQL-Tabs auf PageVisible=False gesetzt
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlSQL_SelectedPageChanged -> 🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex=0)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: Text='Inhalte ZUGFeRD-XML', PageVisible=True
13:45:45.5322|taskFLOW|INFO >> TabPreload -> ✓ 1 SQL-Tabs konfiguriert
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Keine Doc-Daten, alle Tabs ausblenden
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=1)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=2)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=3)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=4)
13:45:45.5322|taskFLOW|DEBUG >> XtraTabControlDocs_SelectedPageChanged_1 -> 🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex=-1)
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> ✓ Tab-Events reaktiviert
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> Setze SQL SelectedTabPageIndex manuell auf 0
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input BEFORE replacing: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> Starting ReplaceIDBAttributes with input: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> IS_SQL = True - oReplaceValue = [{#IDBA#ObjectID}]
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> oIDBValue = 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceIDBAttributes -> sql after ReplaceIDBAttributes: SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {#IDBA#ObjectID})
ORDER BY GROUP_COUNTER, SPEC_NAME
13:45:45.5322|taskFLOW|DEBUG >> ReplaceControlValues -> Starting ReplaceControlValues with input: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME] for document ID: 4511694
13:45:45.5322|taskFLOW|DEBUG >> ReplaceAllValues -> input AFTER replacing: [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME]
13:45:45.5322|taskFLOW|DEBUG >> TabPreload -> SQL-Tab 0: erzwungener Initial-Refresh
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatable -> ForceFallback is True, falling back to direct database access.
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Fetching data from database [ECM] with Connection Id [ECM]
13:45:45.5322|DatabaseWithFallback|DEBUG >> GetDatatableFromDatabase -> Retrieving Connection String from Connection Id [1]
13:45:45.5322|MSSQLServer|DEBUG >> Get_ConnectionStringforID -> Getting ConnectionString for ConnectionId [1]
13:45:45.5322|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=W2K19SRV398;Database=DD_ECM;User Id=EDMAdmin;Password=XXXXX;Application Name=DD_EDMIAppService;Workstation ID=W2K19SRV391;
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBDD_CONNECTION WHERE GUID = 1] and Parameters []
13:45:45.5322|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Data Source=w2k19srv398;Initial Catalog=DD_ECM;User ID=EDMAdmin;Password=XXXXX
13:45:45.5322|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
13:45:45.5322|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT
SPEC_NAME [Definitions-Name],
ITEM_DESCRIPTION [Beschreibung],
CASE
WHEN SPEC_NAME = 'INVOICE_POSITION_NOTE' THEN
REPLACE(REPLACE(ITEM_VALUE, CHAR(13),' '),CHAR(10),' ')
ELSE
ITEM_VALUE
END [Inhalt xml],
GROUP_COUNTER [Gruppenzähler],
IS_REQUIRED [Pflichtangabe],
CREATEDWHEN [Erstellt]
FROM dbo.TBEDMI_ITEM_VALUE WITH (NOLOCK)
WHERE REFERENCE_GUID = (SELECT EmailMessageID FROM IDB.dbo.VWIDB_DOC_DATA WHERE IDB_OBJ_ID = 4511694)
ORDER BY GROUP_COUNTER, SPEC_NAME] and Parameters []
13:45:45.5832|taskFLOW|DEBUG >> TabPreload -> === TabPreload END ===

View File

@@ -5,8 +5,8 @@
<package id="DocumentFormat.OpenXml.Framework" version="3.2.0" targetFramework="net462" /> <package id="DocumentFormat.OpenXml.Framework" version="3.2.0" targetFramework="net462" />
<package id="EntityFramework" version="6.4.4" targetFramework="net462" /> <package id="EntityFramework" version="6.4.4" targetFramework="net462" />
<package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net462" /> <package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net462" />
<package id="GdPicture" version="14.3.23" targetFramework="net462" /> <package id="GdPicture" version="14.3.3" targetFramework="net462" />
<package id="GdPicture.runtimes.windows" version="14.3.23" targetFramework="net462" /> <package id="GdPicture.runtimes.windows" version="14.3.3" targetFramework="net462" />
<package id="Google.Protobuf" version="3.33.2" targetFramework="net462" /> <package id="Google.Protobuf" version="3.33.2" targetFramework="net462" />
<package id="Microsoft.AspNet.WebApi.Client" version="6.0.0" targetFramework="net462" /> <package id="Microsoft.AspNet.WebApi.Client" version="6.0.0" targetFramework="net462" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="9.0.0" targetFramework="net462" /> <package id="Microsoft.Bcl.AsyncInterfaces" version="9.0.0" targetFramework="net462" />
@@ -19,6 +19,7 @@
<package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net462" /> <package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net462" />
<package id="NLog" version="5.0.5" targetFramework="net461" /> <package id="NLog" version="5.0.5" targetFramework="net461" />
<package id="OpenMcdf" version="2.4.1" targetFramework="net462" /> <package id="OpenMcdf" version="2.4.1" targetFramework="net462" />
<package id="Oracle.ManagedDataAccess" version="21.15.0" targetFramework="net462" />
<package id="protobuf-net" version="3.2.46" targetFramework="net462" /> <package id="protobuf-net" version="3.2.46" targetFramework="net462" />
<package id="protobuf-net.Core" version="3.2.46" targetFramework="net462" /> <package id="protobuf-net.Core" version="3.2.46" targetFramework="net462" />
<package id="RtfPipe" version="2.0.7677.4303" targetFramework="net462" /> <package id="RtfPipe" version="2.0.7677.4303" targetFramework="net462" />

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>
@@ -173,23 +173,18 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Database, Version=2.3.6.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Database">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.EDMI.API"> <Reference Include="DigitalData.Modules.EDMI.API">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.EDMI.API.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Interfaces, Version=2.3.7.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Interfaces">
<SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.Interfaces.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.License">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\11_2025\DigitalData.Modules.License.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@@ -202,15 +197,14 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Windream, Version=1.9.6.2, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Windream">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.ZooFlow"> <Reference Include="DigitalData.Modules.ZooFlow">
<HintPath>..\..\..\..\2_DLL Projekte\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll</HintPath> <HintPath>..\..\..\..\2_DLL Projekte\DDModules\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll</HintPath>
</Reference> </Reference>
<Reference Include="DLLLicenseManager"> <Reference Include="DLLLicenseManager">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\DLLLicenseManager.dll</HintPath> <HintPath>M:\Bibliotheken\Digital Data\DD_Modules\DLLLicenseManager.dll</HintPath>
</Reference> </Reference>
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL"> <Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath> <HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
@@ -231,117 +225,109 @@
<HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath> <HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="FormsUtils"> <Reference Include="FormsUtils">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\FormsUtils.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\FormsUtils.dll</HintPath>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Common.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Document.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Email.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.HTML.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="GdPicture.NET.14.Markdown, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.Markdown.dll</HintPath>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.PDF.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.RTF.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.SVG.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL"> <Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath> <HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> <Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Protobuf.3.33.2\lib\net45\Google.Protobuf.dll</HintPath> <HintPath>..\packages\Google.Protobuf.3.33.2\lib\net45\Google.Protobuf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Interop.WINDREAMLib"> <Reference Include="Interop.WINDREAMLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WINDREAMLib.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes> <EmbedInteropTypes>False</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOBRWSLib"> <Reference Include="Interop.WMOBRWSLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOBRWSLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOBRWSLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOSRCHLib"> <Reference Include="Interop.WMOSRCHLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOSRCHLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOSRCHLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Interop.WMOTOOLLib"> <Reference Include="Interop.WMOTOOLLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\windream\Interop.WMOTOOLLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference> </Reference>
<Reference Include="Mail"> <Reference Include="Mail">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Limilabs\Mail.dll</HintPath> <HintPath>M:\Bibliotheken\3rdParty\Limilabs\Mail.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
@@ -356,15 +342,6 @@
<Reference Include="Microsoft.IdentityModel.Abstractions, Version=6.22.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.Abstractions, Version=6.22.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll</HintPath>
</Reference> </Reference>
<Reference Include="NativeSDK.Exceptions, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Exceptions.dll</HintPath>
</Reference>
<Reference Include="NativeSDK.Settings, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.dll</HintPath>
</Reference>
<Reference Include="NativeSDK.Settings.Edition, Version=14.3.23.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.23\lib\net462\NativeSDK.Settings.Edition.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
@@ -377,11 +354,8 @@
<Reference Include="OpenMcdf, Version=2.4.1.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL"> <Reference Include="OpenMcdf, Version=2.4.1.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL">
<HintPath>..\packages\OpenMcdf.2.4.1\lib\net40\OpenMcdf.dll</HintPath> <HintPath>..\packages\OpenMcdf.2.4.1\lib\net40\OpenMcdf.dll</HintPath>
</Reference> </Reference>
<Reference Include="Oracle.ManagedDataAccess"> <Reference Include="Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Oracle.ManagedDataAccess.dll</HintPath> <HintPath>..\packages\Oracle.ManagedDataAccess.21.15.0\lib\net462\Oracle.ManagedDataAccess.dll</HintPath>
</Reference>
<Reference Include="PdfSharp-gdi">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\PdfSharp-gdi.dll</HintPath>
</Reference> </Reference>
<Reference Include="protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL"> <Reference Include="protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<HintPath>..\packages\protobuf-net.3.2.46\lib\net462\protobuf-net.dll</HintPath> <HintPath>..\packages\protobuf-net.3.2.46\lib\net462\protobuf-net.dll</HintPath>
@@ -392,9 +366,6 @@
<Reference Include="RtfPipe, Version=2.0.7677.4303, Culture=neutral, PublicKeyToken=5f6ab4ce530296d2, processorArchitecture=MSIL"> <Reference Include="RtfPipe, Version=2.0.7677.4303, Culture=neutral, PublicKeyToken=5f6ab4ce530296d2, processorArchitecture=MSIL">
<HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath> <HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath>
</Reference> </Reference>
<Reference Include="S22.Imap, Version=3.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\S22.Imap.3.6.0.0\lib\net40\S22.Imap.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Buffers, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll</HintPath> <HintPath>..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll</HintPath>
@@ -488,7 +459,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="ApplicationEvents.vb" /> <Compile Include="ApplicationEvents.vb" />
<Compile Include="ClassAnnotation.vb" />
<Compile Include="ClassConfig.vb" /> <Compile Include="ClassConfig.vb" />
<Compile Include="ClassConstants.vb" /> <Compile Include="ClassConstants.vb" />
<Compile Include="ClassControlCreator.vb" /> <Compile Include="ClassControlCreator.vb" />
@@ -624,6 +594,12 @@
<Compile Include="frmError.vb"> <Compile Include="frmError.vb">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="frmExpression_Designer.Designer.vb">
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
</Compile>
<Compile Include="frmExpression_Designer.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmFileInfo.Designer.vb"> <Compile Include="frmFileInfo.Designer.vb">
<DependentUpon>frmFileInfo.vb</DependentUpon> <DependentUpon>frmFileInfo.vb</DependentUpon>
</Compile> </Compile>
@@ -868,6 +844,9 @@
<DependentUpon>frmError.vb</DependentUpon> <DependentUpon>frmError.vb</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="frmExpression_Designer.resx">
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmFileInfo.resx"> <EmbeddedResource Include="frmFileInfo.resx">
<DependentUpon>frmFileInfo.vb</DependentUpon> <DependentUpon>frmFileInfo.vb</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -1090,6 +1069,12 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Oracle.DataAccess.Common.Configuration.Section.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Oracle.ManagedDataAccess.Client.Configuration.Section.xsd">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Resources\syncreon.png" /> <None Include="Resources\syncreon.png" />
</ItemGroup> </ItemGroup>
@@ -1271,6 +1256,7 @@
<None Include="Resources\PM_mit_slogan.JPG" /> <None Include="Resources\PM_mit_slogan.JPG" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<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" />
@@ -1380,10 +1366,10 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" /> <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" /> <Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets'))" /> <Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets'))" />
</Target> </Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" /> <Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Import Project="..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.23\build\net462\GdPicture.runtimes.windows.targets')" /> <Import Project="..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">