Compare commits
17 Commits
Release-Sp
...
9be2a50625
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9be2a50625 | ||
|
|
70c9bbe11a | ||
|
|
d8b1cca14d | ||
|
|
0cc7fe45d3 | ||
|
|
3e7d700536 | ||
|
|
d7546e23cc | ||
|
|
c0a17f5cd4 | ||
|
|
6260c215f2 | ||
|
|
e49713246b | ||
|
|
501adeda52 | ||
|
|
bd72e9cecc | ||
|
|
46a9742d5d | ||
|
|
a3fb1cbafc | ||
|
|
960acb0ce1 | ||
|
|
b95e580f06 | ||
|
|
df3f8167fe | ||
|
|
376dc3390f |
@@ -99,98 +99,93 @@
|
||||
</Component>-->
|
||||
|
||||
<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="WMOTOOLLib" Name="Interop.WMOTOOLLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll"/>
|
||||
<File Id="WMOSRCHLib" Name="Interop.WMOSRCHLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOSRCHLib.dll"/>
|
||||
<File Id="WMOBRWSLib" Name="Interop.WMOBRWSLib.dll" Source="P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOBRWSLib.dll"/>
|
||||
<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="M:\Bibliotheken\3rdParty\windream\Interop.WMOTOOLLib.dll"/>
|
||||
<File Id="WMOSRCHLib" Name="Interop.WMOSRCHLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WMOSRCHLib.dll"/>
|
||||
<File Id="WMOBRWSLib" Name="Interop.WMOBRWSLib.dll" Source="M:\Bibliotheken\3rdParty\windream\Interop.WMOBRWSLib.dll"/>
|
||||
</Component>
|
||||
|
||||
<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" />
|
||||
</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"/>
|
||||
<File Id="FormsUtilsLib" Name="FormsUtils.dll" Source="M:\Bibliotheken\3rdParty\FormsUtils.dll" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
<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="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="DDConfig" Name="DigitalData.Modules.Config.dll" Source="DigitalData.Modules.Config.dll"/>
|
||||
<File Id="DDLogging" Name="DigitalData.Modules.Logging.dll" Source="DigitalData.Modules.Logging.dll"/>
|
||||
<File Id="DDInterfaces" Name="DigitalData.Modules.Interfaces.dll" Source="DigitalData.Modules.Interfaces.dll"/>
|
||||
<File Id="DDBase" Name="DigitalData.Modules.Base.dll" Source="DigitalData.Modules.Base.dll"/>
|
||||
<File Id="DDFilesystem" Name="DigitalData.Modules.Filesystem.dll" Source="DigitalData.Modules.Filesystem.dll"/>
|
||||
<File Id="DDEncryption" Name="DigitalData.Modules.Encryption.dll" Source="DigitalData.Modules.Encryption.dll"/>
|
||||
<File Id="DDWindream" Name="DigitalData.Modules.Windream.dll" Source="DigitalData.Modules.Windream.dll"/>
|
||||
<File Id="DDWindows" Name="DigitalData.Modules.Windows.dll" Source="DigitalData.Modules.Windows.dll"/>
|
||||
<File Id="DDZooflow" Name="DigitalData.Modules.Zooflow.dll" Source="DigitalData.Modules.Zooflow.dll"/>
|
||||
<File Id="DDDatabase" Name="DigitalData.Modules.Database.dll" Source="DigitalData.Modules.Database.dll"/>
|
||||
<File Id="DDPatterns" Name="DigitalData.Modules.Patterns.dll" Source="DigitalData.Modules.Patterns.dll"/>
|
||||
<File Id="DDEDMIAPI" Name="DigitalData.Modules.EDMI.API.dll" Source="DigitalData.Modules.EDMI.API.dll"/>
|
||||
<File Id="DDDocumentViewer" Name="DigitalData.Controls.DocumentViewer.dll" Source="DigitalData.Controls.DocumentViewer.dll"/>
|
||||
<File Id="Messaging" Name="DigitalData.Modules.Messaging.dll" Source="DigitalData.Modules.Messaging.dll" KeyPath="no" />
|
||||
<File Id="Messaging.License" Name="MailLicense.xml" Source="MailLicense.xml" 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="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="DDCommonGUIs" Name="DigitalData.GUIs.Common.dll" Source="DigitalData.GUIs.Common.dll"/>
|
||||
<File Id="DDConfig" Name="DigitalData.Modules.Config.dll" Source="DigitalData.Modules.Config.dll"/>
|
||||
<File Id="DDLogging" Name="DigitalData.Modules.Logging.dll" Source="DigitalData.Modules.Logging.dll"/>
|
||||
<File Id="DDInterfaces" Name="DigitalData.Modules.Interfaces.dll" Source="DigitalData.Modules.Interfaces.dll"/>
|
||||
<File Id="DDBase" Name="DigitalData.Modules.Base.dll" Source="DigitalData.Modules.Base.dll"/>
|
||||
<File Id="DDFilesystem" Name="DigitalData.Modules.Filesystem.dll" Source="DigitalData.Modules.Filesystem.dll"/>
|
||||
<File Id="DDEncryption" Name="DigitalData.Modules.Encryption.dll" Source="DigitalData.Modules.Encryption.dll"/>
|
||||
<File Id="DDWindream" Name="DigitalData.Modules.Windream.dll" Source="DigitalData.Modules.Windream.dll"/>
|
||||
<File Id="DDWindows" Name="DigitalData.Modules.Windows.dll" Source="DigitalData.Modules.Windows.dll"/>
|
||||
<File Id="DDZooflow" Name="DigitalData.Modules.Zooflow.dll" Source="DigitalData.Modules.Zooflow.dll"/>
|
||||
<File Id="DDDatabase" Name="DigitalData.Modules.Database.dll" Source="DigitalData.Modules.Database.dll"/>
|
||||
<File Id="DDPatterns" Name="DigitalData.Modules.Patterns.dll" Source="DigitalData.Modules.Patterns.dll"/>
|
||||
<File Id="DDEDMIAPI" Name="DigitalData.Modules.EDMI.API.dll" Source="DigitalData.Modules.EDMI.API.dll"/>
|
||||
<File Id="DDDocumentViewer" Name="DigitalData.Controls.DocumentViewer.dll" Source="DigitalData.Controls.DocumentViewer.dll"/>
|
||||
<File Id="DDLicenseManager" Name="DLLLicenseManager.dll" Source="DLLLicenseManager.dll" KeyPath="no" />
|
||||
<File Id="Messaging" Name="DigitalData.Modules.Messaging.dll" Source="DigitalData.Modules.Messaging.dll" KeyPath="no" />
|
||||
<File Id="Messaging.License" Name="MailLicense.xml" Source="MailLicense.xml" KeyPath="no" />
|
||||
<File Id="Limilabs.Mail" Name="Mail.dll" Source="Mail.dll" KeyPath="no" />
|
||||
<File Id="NLog" Name="NLog.dll" Source="NLog.dll"/>
|
||||
</Component>
|
||||
<Component Id="RuntimeLibs" Guid="F7170744-3DB5-4275-ACCD-7F3B9BDE1D6E">
|
||||
<File Id="Newtonsoft.Json" Name="Newtonsoft.Json.dll" Source="Newtonsoft.Json.dll" KeyPath="yes" />
|
||||
<File Id="System.Memory" Name="System.Memory.dll" Source="System.Memory.dll" />
|
||||
<File Id="System.Runtime.CompilerServices.Unsafe" Name="System.Runtime.CompilerServices.Unsafe.dll" Source="System.Runtime.CompilerServices.Unsafe.dll" />
|
||||
<File Id="System.Buffers" Name="System.Buffers.dll" Source="System.Buffers.dll" />
|
||||
<File Id="System.Collections.Immutable" Name="System.Collections.Immutable.dll" Source="System.Collections.Immutable.dll" />
|
||||
<File Id="System.Numerics.Vectors" Name="System.Numerics.Vectors.dll" Source="System.Numerics.Vectors.dll" />
|
||||
<File Id="System.Security.Cryptography.Pkcs" Name="System.Security.Cryptography.Pkcs.dll" Source="System.Security.Cryptography.Pkcs.dll" />
|
||||
<File Id="System.Text.Json" Name="System.Text.Json.dll" Source="System.Text.Json.dll" />
|
||||
<File Id="System.Text.Encodings.Web" Name="System.Text.Encodings.Web.dll" Source="System.Text.Encodings.Web.dll" />
|
||||
<File Id="System.Threading.Tasks.Extensions" Name="System.Threading.Tasks.Extensions.dll" Source="System.Threading.Tasks.Extensions.dll" />
|
||||
<File Id="Microsoft.Bcl.AsyncInterfaces" Name="Microsoft.Bcl.AsyncInterfaces.dll" Source="Microsoft.Bcl.AsyncInterfaces.dll" />
|
||||
<File Id="protobuf_net" Name="protobuf-net.dll" Source="protobuf-net.dll" />
|
||||
<File Id="DocumentFormat.OpenXml" Name="DocumentFormat.OpenXml.dll" Source="DocumentFormat.OpenXml.dll" />
|
||||
<File Id="DocumentFormat.OpenXml.Framework" Name="DocumentFormat.OpenXml.Framework.dll" Source="DocumentFormat.OpenXml.Framework.dll" />
|
||||
<File Id="FirebirdSql.Data.FirebirdClient" Name="FirebirdSql.Data.FirebirdClient.dll" Source="FirebirdSql.Data.FirebirdClient.dll" />
|
||||
<File Id="EntityFramework" Name="EntityFramework.dll" Source="EntityFramework.dll" />
|
||||
<File Id="EntityFramework.SqlServer" Name="EntityFramework.SqlServer.dll" Source="EntityFramework.SqlServer.dll" />
|
||||
<File Id="EntityFramework.Firebird" Name="EntityFramework.Firebird.dll" Source="EntityFramework.Firebird.dll" />
|
||||
</Component>
|
||||
|
||||
<Component Id="Oracle" Guid="CF76DB5D-3263-450F-96C6-F02F5447A0A1">
|
||||
<File Id="Oracle.ManagedDataAccess" Name="Oracle.ManagedDataAccess.dll" Source="P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll" KeyPath="yes"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="PDFsharp" Guid="9cd1cfb7-3f84-4a8b-aa51-642b723fcd70">
|
||||
<File Id="PdfSharpgdi" Name="PdfSharp-gdi.dll" Source="P:\Visual Studio Projekte\Bibliotheken\PdfSharp-gdi.dll" KeyPath="yes"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="GDPictureLibs" Guid="9ea5ab43-58ff-4813-9a8b-f854784f0275">
|
||||
<File Id="GdPicture.NET.14" Name="GdPicture.NET.14.dll" KeyPath="yes" />
|
||||
<File Id="GdPicture.NET.14.filters" Name="GdPicture.NET.14.filters.dll" />
|
||||
<File Id="GdPicture.NET.14.filters.64" 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.image64" Name="GdPicture.NET.14.image.gdimgplug.64.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging.Rendering.Skia" Name="GdPicture.NET.14.Imaging.Rendering.Skia.dll" />
|
||||
<File Id="GdPicture.NET.14.Rendering.Skia.64" Name="GdPicture.NET.14.Imaging.Rendering.Skia.64.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging" Name="GdPicture.NET.14.Imaging.dll" />
|
||||
<File Id="GdPicture.NET.14.Common" Name="GdPicture.NET.14.Common.dll" />
|
||||
<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.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.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.Rendering.Skia.64" Name="GdPicture.NET.14.Imaging.Rendering.Skia.64.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging" Name="GdPicture.NET.14.Imaging.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging.ML.64" Name="GdPicture.NET.14.Imaging.ML.64.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging.ML" Name="GdPicture.NET.14.Imaging.ML.dll" />
|
||||
<File Id="GdPicture.NET.14.Imaging.Formats.Conversion" Name="GdPicture.NET.14.Imaging.Formats.Conversion.dll" />
|
||||
<File Id="GdPicture.NET.14.Common" Name="GdPicture.NET.14.Common.dll" />
|
||||
<File Id="GdPicture.NET.14.Document" Name="GdPicture.NET.14.Document.dll" />
|
||||
<File Id="GdPicture.NET.14.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.SVG" Name="GdPicture.NET.14.SVG.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.Email" Name="GdPicture.NET.14.Email.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.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="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.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 Id="DevExpressLibs" Guid="CB40DAAE-348E-4BD3-B275-9A526EB8F191">
|
||||
@@ -307,9 +302,6 @@
|
||||
<ComponentRef Id="FormsUtilsLibs"/>
|
||||
<ComponentRef Id="DDLibs" />
|
||||
<ComponentRef Id="RuntimeLibs" />
|
||||
<ComponentRef Id="Oracle" />
|
||||
<ComponentRef Id="PDFsharp" />
|
||||
<ComponentRef Id="IndependentsoftLibs" />
|
||||
<ComponentRef Id="DevExpressLibs" />
|
||||
<ComponentRef Id="GDPictureLibs" />
|
||||
<ComponentRef Id="Devexpress.Locales.de" />
|
||||
|
||||
@@ -7,8 +7,6 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupVS19", "SetupVS19\Setu
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "taskFLOW", "TaskFlow\taskFLOW.vbproj", "{6ACA1432-09A2-47EF-A704-C0AA73905756}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DocumentViewer", "..\..\..\2_DLL Projekte\Controls.DocumentViewer\DocumentViewer.vbproj", "{0958CDDF-4A16-41F6-8837-8335F71D599C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
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|x86.ActiveCfg = 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
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -124,19 +124,19 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.4.0" newVersion="4.0.4.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
@@ -152,15 +152,15 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Security.Cryptography.Pkcs" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Packaging" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Json" 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-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="FirebirdSql.Data.FirebirdClient" publicKeyToken="3750abcc3150b00c" culture="neutral" />
|
||||
@@ -176,7 +176,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.4.0" newVersion="4.2.4.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="DocumentFormat.OpenXml.Framework" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
|
||||
@@ -188,7 +188,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Text.Encodings.Web" 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-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
@@ -196,7 +196,11 @@
|
||||
</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" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-10.0.0.5" newVersion="10.0.0.5" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
@@ -3,6 +3,7 @@ Imports System.Data.OracleClient
|
||||
Imports System.IO
|
||||
Imports WINDREAMLib
|
||||
Imports DevExpress.Utils.CommonDialogs
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
Public Class ClassAllgemeineFunktionen
|
||||
Public Shared Function GUI_LANGUAGE_INFO(pTITLE As String)
|
||||
|
||||
@@ -544,8 +544,9 @@ Public Class ClassControlCreator
|
||||
Return oControl
|
||||
End Function
|
||||
|
||||
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, pcurrencySymbol)
|
||||
Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean,
|
||||
pcurrencySymbol As String, pParentControl As Control) As GridControl
|
||||
Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables, pcurrencySymbol, pParentControl)
|
||||
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
|
||||
Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid
|
||||
Dim oView As GridView
|
||||
@@ -900,7 +901,15 @@ Public Class ClassControlCreator
|
||||
Dim oColumnName = oRow.Item("SPALTENNAME")
|
||||
Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP")
|
||||
|
||||
' *** NEU: Prüfe ob Spalte #TBCOL# verwendet (dynamisch pro Zeile) ***
|
||||
If oSqlStatement <> String.Empty AndAlso oConnectionId > -1 Then
|
||||
' *** NEU: Skip Spalten mit #TBCOL# (werden in ShowingEditor behandelt) ***
|
||||
If oSqlStatement.Contains("{#TBCOL#") Then
|
||||
Logger.Debug($"GridTables_HandleControlValueChange -> Skipping column [{oColumnName}] (has #TBCOL# placeholders, will be resolved per row)")
|
||||
Continue For
|
||||
End If
|
||||
|
||||
' *** BESTEHENDER CODE: Nur für statische Spalten ({#CTRL#} only) ***
|
||||
oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, pControlPanel, True)
|
||||
GridTables_CacheDatatableForColumn(oControlId, oColumnName, oSqlStatement, oConnectionId, oAdvancedLookup)
|
||||
|
||||
|
||||
@@ -155,52 +155,64 @@
|
||||
End Function
|
||||
Public Function GetVariableValue(oAttributeName As String, Optional oIDBTyp As Integer = 0, Optional FromIDB As Boolean = False) As Object
|
||||
Try
|
||||
Dim oSingleAttribute As Boolean = True
|
||||
Select Case oIDBTyp
|
||||
Case 8
|
||||
oSingleAttribute = False
|
||||
Case 9
|
||||
oSingleAttribute = False
|
||||
End Select
|
||||
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
|
||||
' Bestimme, ob es sich um ein Single-Value-Attribut handelt (nicht Typ 8 oder 9)
|
||||
Dim oIsSingleAttribute As Boolean = (oIDBTyp <> 8 AndAlso oIDBTyp <> 9)
|
||||
|
||||
LOGGER.Debug($"IDBData - GetVariableValue - Attribute: [{oAttributeName}] - IsSingleAttribute: [{oIsSingleAttribute}] - FromIDB: [{FromIDB}]")
|
||||
|
||||
' Schnellpfad: Direkt aus gecachter DataTable holen
|
||||
If oIsSingleAttribute AndAlso IDB_DT_DOC_DATA.Rows.Count = 1 AndAlso Not FromIDB Then
|
||||
Try
|
||||
If oAttributeName = "IDBCreatedWhen" Then
|
||||
oAttributeName = "ADDED_WHEN"
|
||||
ElseIf oAttributeName = "IDBCreatedWho" Then
|
||||
oAttributeName = "ADDED_WHO"
|
||||
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)
|
||||
Dim oMappedName As String = MapSystemAttributeName(oAttributeName)
|
||||
Dim oValue As Object = IDB_DT_DOC_DATA.Rows(0).Item(oMappedName)
|
||||
LOGGER.Debug($"IDBData - GetVariableValue - Retrieved from cache: Attribute=[{oAttributeName}] MappedName=[{oMappedName}] Value=[{oValue}]")
|
||||
Return oValue
|
||||
Catch ex As Exception
|
||||
LOGGER.Debug($"Error getting Attribute from IDB_DT_DOC_DATA: {ex.Message}")
|
||||
' Fallthrough zum Datenbank-Fallback
|
||||
End Try
|
||||
End If
|
||||
|
||||
End If
|
||||
If Not IsNothing(oAttributeValue) Then
|
||||
LOGGER.Debug($"IDBData - GetVariableValue - Returning value: [{oAttributeValue}]")
|
||||
Return oAttributeValue
|
||||
' Fallback: Wert aus Datenbank über Funktion holen
|
||||
LOGGER.Debug($"Retrieving value for attribute [{oAttributeName}] via FNIDB_PM_GET_VARIABLE_VALUE")
|
||||
|
||||
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
|
||||
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
|
||||
Dim oFNSQL = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({CURRENT_DOC_ID},'{oAttributeName}','{USER_LANGUAGE}',CONVERT(BIT,'{IDB_USES_WMFILESTORE}'))"
|
||||
LOGGER.Debug($": {oFNSQL}")
|
||||
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
|
||||
|
||||
Return oResultTable
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Return Nothing
|
||||
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
|
||||
Public Function Delete_Term_Object_From_Metadata(oAttributeName As String, oTerm2Delete As String) As Object
|
||||
Try
|
||||
|
||||
@@ -483,6 +483,14 @@ Public Class ClassInit
|
||||
'BASEDATA_DT_TBDD_CONNECTION = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_CONNECTION", "")
|
||||
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"
|
||||
oSql = "Select * FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1"
|
||||
Dim oTBDD_3RD_PARTY_MODULES As DataTable
|
||||
|
||||
@@ -35,7 +35,7 @@ Public Class ClassPMWindream
|
||||
#End Region
|
||||
|
||||
#Region "+++++ Variablen +++++"
|
||||
Private oController As New WMOSearchController
|
||||
'Private oController As New WMOSearchController
|
||||
#End Region
|
||||
|
||||
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
|
||||
|
||||
@@ -60,227 +60,242 @@ Public Class ClassParamRefresh
|
||||
' Use For Each loop over words and display them.
|
||||
Dim oMode As String
|
||||
For Each oMode In oSplitWorkMode
|
||||
LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
|
||||
If oMode = "PM.FORCE_LAYOUT_OVERVIEW" Then
|
||||
FORCE_LAYOUT_OVERVIEW = True
|
||||
LOGGER.Debug($"FORCE_LAYOUT_OVERVIEW [{FORCE_LAYOUT_OVERVIEW}]")
|
||||
ElseIf oMode = "PM.NO_MASS_VALIDATOR" Then
|
||||
SHOW_MASS_VALIDATOR = False
|
||||
LOGGER.Info($"SHOW_MASS_VALIDATOR [{SHOW_MASS_VALIDATOR}]")
|
||||
ElseIf oMode = "PM.NO_CHARTS" Then
|
||||
SHOW_CHARTS = False
|
||||
LOGGER.Debug($"SHOW_CHARTS [{SHOW_CHARTS}]")
|
||||
ElseIf oMode = "PM.DEBUG_LOG" Then
|
||||
DEBUG = True
|
||||
LOGCONFIG.Debug = True
|
||||
ElseIf oMode = "PM.LOG_HOTSPOTS" Then
|
||||
LOG_HOTSPOTS = True
|
||||
ElseIf oMode.StartsWith("OPERATION_MODE_FS") Then
|
||||
OPERATION_MODE_FS = oMode.Replace("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)
|
||||
ElseIf oMode = "PM.IDBWITHWMFS" Then
|
||||
IDB_USES_WMFILESTORE = True
|
||||
ElseIf oMode = "PM.NO_BASICCONF" Then
|
||||
BASIC_CONF_VISIBLE = False
|
||||
LOGGER.Info($"BASIC_CONF_VISIBLE [{BASIC_CONF_VISIBLE}]")
|
||||
ElseIf oMode = "PM.SYS_LOCKED_MAINTENANCE" Then
|
||||
SYS_LOCKED_MAINTENANCE = True
|
||||
ElseIf oMode.StartsWith("PM.IDB_CONID!") Then
|
||||
If CONNECTION_STRING_IDB <> "" And dbIDBInitialized = True Then
|
||||
IDB_ACTIVE = True
|
||||
Continue For
|
||||
Else
|
||||
Dim Database_IDB As MSSQLServer = Nothing
|
||||
Dim CON_ID = oMode.Replace("PM.IDB_CONID!", "")
|
||||
ProcessWorkingModeParameter(oMode, pMode)
|
||||
'LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
|
||||
'If oMode = "PM.FORCE_LAYOUT_OVERVIEW" Then
|
||||
' FORCE_LAYOUT_OVERVIEW = True
|
||||
' LOGGER.Debug($"FORCE_LAYOUT_OVERVIEW [{FORCE_LAYOUT_OVERVIEW}]")
|
||||
'ElseIf oMode = "PM.NO_MASS_VALIDATOR" Then
|
||||
' SHOW_MASS_VALIDATOR = False
|
||||
' LOGGER.Info($"SHOW_MASS_VALIDATOR [{SHOW_MASS_VALIDATOR}]")
|
||||
'ElseIf oMode = "PM.NO_CHARTS" Then
|
||||
' SHOW_CHARTS = False
|
||||
' LOGGER.Debug($"SHOW_CHARTS [{SHOW_CHARTS}]")
|
||||
'ElseIf oMode = "PM.DEBUG_LOG" Then
|
||||
' DEBUG = True
|
||||
' LOGCONFIG.Debug = True
|
||||
'ElseIf oMode = "PM.LOG_HOTSPOTS" Then
|
||||
' LOG_HOTSPOTS = True
|
||||
'ElseIf oMode.StartsWith("OPERATION_MODE_FS") Then
|
||||
' OPERATION_MODE_FS = oMode.Replace("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)
|
||||
'ElseIf oMode = "PM.IDBWITHWMFS" Then
|
||||
' IDB_USES_WMFILESTORE = True
|
||||
'ElseIf oMode = "PM.NO_BASICCONF" Then
|
||||
' BASIC_CONF_VISIBLE = False
|
||||
' LOGGER.Info($"BASIC_CONF_VISIBLE [{BASIC_CONF_VISIBLE}]")
|
||||
'ElseIf oMode = "PM.SYS_LOCKED_MAINTENANCE" Then
|
||||
' SYS_LOCKED_MAINTENANCE = True
|
||||
'ElseIf oMode.StartsWith("PM.IDB_CONID!") Then
|
||||
' If CONNECTION_STRING_IDB <> "" And dbIDBInitialized = True Then
|
||||
' IDB_ACTIVE = True
|
||||
' Continue For
|
||||
' Else
|
||||
' 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
|
||||
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
|
||||
' End Try
|
||||
'ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then
|
||||
' Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "")
|
||||
' Try
|
||||
' LAST_ADDED_COLUMN = oLEDITEDCOL
|
||||
' LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}")
|
||||
' Catch ex As Exception
|
||||
' LAST_ADDED_COLUMN = ""
|
||||
|
||||
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 = ""
|
||||
' End Try
|
||||
'ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then
|
||||
' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "")
|
||||
' Try
|
||||
' MON_EDITED_COLUMN = oLEDITEDCOL
|
||||
' LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}")
|
||||
' Catch ex As Exception
|
||||
|
||||
End Try
|
||||
ElseIf oMode.StartsWith("PM.COL_LAST_ADDED") Then
|
||||
Dim oLEDITEDCOL = oMode.Replace("PM.COL_LAST_ADDED=", "")
|
||||
Try
|
||||
LAST_ADDED_COLUMN = oLEDITEDCOL
|
||||
LOGGER.Debug($"LAST_ADDED_COLUMN: {oLEDITEDCOL}")
|
||||
Catch ex As Exception
|
||||
LAST_ADDED_COLUMN = ""
|
||||
' End Try
|
||||
'ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then
|
||||
' Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "")
|
||||
' Try
|
||||
' MON_ADDED_COLUMN = oLEDITEDCOL
|
||||
' LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}")
|
||||
' Catch ex As Exception
|
||||
|
||||
End Try
|
||||
ElseIf oMode.StartsWith("PM.MON_COL_CHANGED_WHEN") Then
|
||||
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_CHANGED_WHEN=", "")
|
||||
Try
|
||||
MON_EDITED_COLUMN = oLEDITEDCOL
|
||||
LOGGER.Debug($"MON_EDITED_COLUMN: {oLEDITEDCOL}")
|
||||
Catch ex As Exception
|
||||
' End Try
|
||||
'ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then
|
||||
' Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "")
|
||||
' Try
|
||||
' USE_APPSERVER = CBool(oUSE_APPSERVER)
|
||||
' 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
|
||||
ElseIf oMode.StartsWith("PM.MON_COL_ADDED_WHEN") Then
|
||||
Dim oLEDITEDCOL = oMode.Replace("PM.MON_COL_ADDED_WHEN=", "")
|
||||
Try
|
||||
MON_ADDED_COLUMN = oLEDITEDCOL
|
||||
LOGGER.Debug($"MON_COL_ADDED_WHEN: {oLEDITEDCOL}")
|
||||
Catch ex As Exception
|
||||
' 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
|
||||
|
||||
End Try
|
||||
ElseIf oMode.StartsWith("PM.USE_APPSERVER") Then
|
||||
Dim oUSE_APPSERVER = oMode.Replace("PM.USE_APPSERVER=", "")
|
||||
Try
|
||||
USE_APPSERVER = CBool(oUSE_APPSERVER)
|
||||
Catch ex As Exception
|
||||
USE_APPSERVER = False
|
||||
|
||||
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)
|
||||
|
||||
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
|
||||
' 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
|
||||
'If IDB_ACTIVE Then
|
||||
' If CONNECTION_STRING_APP_SERVER <> String.Empty Then
|
||||
@@ -298,4 +313,267 @@ Public Class ClassParamRefresh
|
||||
End If
|
||||
oStopwatch.Done()
|
||||
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
|
||||
|
||||
@@ -124,7 +124,7 @@ Public Class ClassWindream_allgemein
|
||||
Public Function Start_WMCC_andCo()
|
||||
Try
|
||||
' 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")
|
||||
|
||||
If WMSESSION_STARTSTOP_STARTUP = True Then
|
||||
|
||||
@@ -22,11 +22,15 @@ Namespace ControlCreator
|
||||
Private ReadOnly _LogConfig As LogConfig
|
||||
Private ReadOnly _Logger As Logger
|
||||
Private ReadOnly _GridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
|
||||
Private ReadOnly _ParentControl As Control
|
||||
|
||||
Private newRowModified 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)
|
||||
Private _DynamicEditorColumns As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
|
||||
Private Shared _DynamicEditorCacheShared As New Dictionary(Of String, RepositoryItem)
|
||||
Private Shared _ResolvedSqlCache As New Dictionary(Of String, String)
|
||||
|
||||
Private _isRefreshingFormula As Boolean = False ' *** NEU: Flag für Formel-Refresh ***
|
||||
Private _currencySymbol As String = "€"
|
||||
@@ -39,13 +43,23 @@ Namespace ControlCreator
|
||||
''' </summary>
|
||||
Private Shared _CurrencySymbolByGridName As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
''' <summary>
|
||||
''' Leert den Cache für dynamische Editoren. Muss bei jedem Dokumentwechsel aufgerufen werden.
|
||||
''' </summary>
|
||||
Public Shared Sub ClearDynamicEditorCache()
|
||||
SyncLock _DynamicEditorCacheShared
|
||||
_DynamicEditorCacheShared.Clear()
|
||||
End SyncLock
|
||||
End Sub
|
||||
''' <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)
|
||||
Public Property ConnectionId As Integer
|
||||
End Class
|
||||
|
||||
''' <summary>
|
||||
''' Extrahiert alle {#TBCOL#ColumnName}-Platzhalter aus einem SQL-Template.
|
||||
''' </summary>
|
||||
@@ -69,37 +83,69 @@ Namespace ControlCreator
|
||||
''' </summary>
|
||||
Private Function ResolveSqlTemplate(sqlTemplate As String, pView As GridView, rowHandle As Integer) As String
|
||||
Dim resolvedSql As String = sqlTemplate
|
||||
|
||||
' *** SCHRITT 1: {#TBCOL#...} Platzhalter ersetzen ***
|
||||
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
|
||||
|
||||
Dim safeValue As String = ConvertToSqlValue(cellValue) ' Hilfsfunktion
|
||||
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)
|
||||
|
||||
' *** SCHRITT 2: {#CTRL#...} via clsPatterns - MIT CACHE ***
|
||||
If _ParentControl IsNot Nothing AndAlso resolvedSql.Contains("{#CTRL#") Then
|
||||
' Cache-Key: Hash aus SQL + Control-Werten
|
||||
Dim cacheKey = GenerateCacheKey(resolvedSql, _ParentControl)
|
||||
|
||||
SyncLock _ResolvedSqlCache
|
||||
If _ResolvedSqlCache.ContainsKey(cacheKey) Then
|
||||
resolvedSql = _ResolvedSqlCache(cacheKey)
|
||||
' Kein Log → spart 200+ Zeilen
|
||||
Else
|
||||
' Nur bei Cache-Miss ReplaceAllValues aufrufen
|
||||
resolvedSql = clsPatterns.ReplaceAllValues(resolvedSql, _ParentControl, True)
|
||||
_ResolvedSqlCache(cacheKey) = resolvedSql
|
||||
If LOG_HOTSPOTS Then _Logger.Debug("[ResolveSqlTemplate] ReplaceAllValues-Cache MISS")
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
|
||||
Return resolvedSql
|
||||
End Function
|
||||
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)), pCurrencySymbol As String)
|
||||
''' <summary>
|
||||
''' Konvertiert einen Zellwert in einen SQL-sicheren String (für {#TBCOL#...} Platzhalter).
|
||||
''' </summary>
|
||||
Private Function ConvertToSqlValue(cellValue As Object) As String
|
||||
If cellValue Is Nothing OrElse IsDBNull(cellValue) Then
|
||||
Return "NULL"
|
||||
ElseIf TypeOf cellValue Is String Then
|
||||
' SQL-Injection-Schutz: Einfache Anführungszeichen escapen
|
||||
Return cellValue.ToString().Replace("'", "''")
|
||||
ElseIf TypeOf cellValue Is Boolean Then
|
||||
Return If(CBool(cellValue), "1", "0")
|
||||
ElseIf TypeOf cellValue Is DateTime Then
|
||||
' ISO-Format für SQL
|
||||
Return CDate(cellValue).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
Else
|
||||
' Numerische Werte: Invariant-Format (Punkt als Dezimaltrenner)
|
||||
Return Convert.ToString(cellValue, CultureInfo.InvariantCulture)
|
||||
End If
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Placeholder für Control-Value-Hashing.
|
||||
''' </summary>
|
||||
Private Function GenerateCacheKey(sql As String, parent As Control) As String
|
||||
' Cache-Key basiert NUR auf aufgelöstem SQL (Control-Werte sind bereits drin)
|
||||
Return sql.GetHashCode().ToString()
|
||||
End Function
|
||||
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)), pCurrencySymbol As String, pParentControl As Control)
|
||||
_LogConfig = pLogConfig
|
||||
_Logger = pLogConfig.GetLogger()
|
||||
_GridTables = pGridTables
|
||||
_currencySymbol = pCurrencySymbol
|
||||
_ParentControl = pParentControl ' *** NEU ***
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' Setzt den Shared Currency-Cache zurück. Muss beim Laden eines neuen Dokuments
|
||||
@@ -210,7 +256,7 @@ Namespace ControlCreator
|
||||
Public Function FillGridTables(pColumnTable As DataTable, pControlId As Integer, pControlName As String) As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
|
||||
For Each oRow As DataRow In pColumnTable.Rows
|
||||
' Fetch and cache Combobox results
|
||||
Dim oConnectionId As Integer = oRow.ItemEx("CONNECTION_ID", 0)
|
||||
Dim oConnectionId As Integer = oRow.ItemEx("CONNECTION_ID", 1)
|
||||
Dim oSqlCommand As String = oRow.ItemEx("SQL_COMMAND", "")
|
||||
|
||||
If oSqlCommand <> "" Then
|
||||
@@ -218,6 +264,13 @@ Namespace ControlCreator
|
||||
Dim oComboboxDataTable As DataTable = Nothing
|
||||
Dim oColumnName As String = oRow.Item("SPALTENNAME")
|
||||
_Logger.Debug("Working on SQL for Column[{0}]...", oColumnName)
|
||||
|
||||
' *** NEU: Platzhalter-Check ***
|
||||
If ContainsTableColumnPlaceholder(oSqlCommand) Then
|
||||
_Logger.Debug("...SQL contains #TBCOL# placeholders – skipping static caching, will be resolved per row.")
|
||||
Continue For ' Überspringen – wird in CustomRowCellEdit behandelt
|
||||
End If
|
||||
|
||||
If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then
|
||||
_Logger.Debug("SQL has no complex patterns!")
|
||||
'oComboboxDataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId)
|
||||
@@ -239,7 +292,10 @@ Namespace ControlCreator
|
||||
_Logger.Warn("⚠️ Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), pControlName)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
Else
|
||||
_Logger.Debug("No SQL_COMMAND for Column[{0}] – skipping.", oRow.Item("SPALTENNAME"))
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Return _GridTables
|
||||
@@ -558,25 +614,20 @@ Namespace ControlCreator
|
||||
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
|
||||
ElseIf oFormulaSql <> String.Empty Then
|
||||
_Logger.Debug("[ConfigureViewColumnsCurrency] Column [{0}] is a SQL formula column: {1}", oCol.FieldName, oFormulaSql)
|
||||
End If
|
||||
|
||||
' Spalte ist eine Formel-Spalte (Expression ODER SQL) → nur DisplayFormat, kein ColumnEdit
|
||||
Dim oIsAnyFormula As Boolean = oFormulaExpression <> String.Empty OrElse oFormulaSql <> String.Empty
|
||||
|
||||
If oIsAnyFormula Then
|
||||
' Formel-Spalten (Expression oder SQL): nur DisplayFormat setzen
|
||||
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)
|
||||
_Logger.Debug("[ConfigureViewColumnsCurrency] Formel-Spalte [{0}]: DisplayFormat=[{1}]",
|
||||
oCol.FieldName, oCol.DisplayFormat.FormatString)
|
||||
|
||||
ElseIf oCol.OptionsColumn.AllowEdit Then
|
||||
_Logger.Debug("[ConfigureViewColumnsCurrency] [{0}] VOR ColumnEdit: RepositoryItems.Count=[{1}]",
|
||||
@@ -586,93 +637,23 @@ Namespace ControlCreator
|
||||
|
||||
_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
|
||||
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
|
||||
|
||||
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()
|
||||
_DynamicEditorColumns.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()
|
||||
Dim oSql_FORMULA = ObjectEx.NotNull(r.Item("FORMULA_SQL"), String.Empty).ToString()
|
||||
|
||||
' *** VALIDIERUNG: Beides gleichzeitig ist nicht erlaubt ***
|
||||
If oExpr <> String.Empty AndAlso oSql <> String.Empty Then
|
||||
If oExpr <> String.Empty AndAlso oSql_FORMULA <> 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 &
|
||||
@@ -680,22 +661,30 @@ Namespace ControlCreator
|
||||
"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
|
||||
oSql_FORMULA = 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)
|
||||
ElseIf oSql_FORMULA <> String.Empty Then
|
||||
Dim oConnectionId As Integer = r.ItemEx("CONNECTION_ID", 1)
|
||||
_FormulaSqlColumns(oColName) = New FormulaSqlDefinition() With {
|
||||
.SqlTemplate = oSql,
|
||||
.ReferencedColumns = GetReferencedSqlColumnNames(oSql)
|
||||
}
|
||||
.SqlTemplate = oSql_FORMULA,
|
||||
.ReferencedColumns = GetReferencedSqlColumnNames(oSql_FORMULA),
|
||||
.ConnectionId = oConnectionId ' *** Hier speichern ***
|
||||
}
|
||||
' 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)))
|
||||
oColName, String.Join(", ", GetReferencedSqlColumnNames(oSql_FORMULA)))
|
||||
End If
|
||||
|
||||
' *** NEU: Dynamische Editor-Spalten cachen ***
|
||||
Dim oSqlCommand As String = r.ItemEx("SQL_COMMAND", "")
|
||||
If oSqlCommand <> "" AndAlso (ContainsTableColumnPlaceholder(oSqlCommand) OrElse clsPatterns.HasComplexPatterns(oSqlCommand)) Then
|
||||
_DynamicEditorColumns.Add(oColName)
|
||||
_Logger.Debug("[ConfigureViewEvents] Column [{0}] registered as DYNAMIC_EDITOR column (has placeholders)", oColName)
|
||||
End If
|
||||
Next
|
||||
|
||||
@@ -792,39 +781,92 @@ Namespace ControlCreator
|
||||
End If
|
||||
End Sub
|
||||
|
||||
AddHandler pGridView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
|
||||
Try
|
||||
For Each oRow As DataRow In pColumnTable.Rows
|
||||
Dim oColumnName As String = oRow.Item("SPALTENNAME").ToString()
|
||||
If oColumnName <> e.Column.FieldName Then Continue For
|
||||
AddHandler pGridView.CustomRowCellEdit,
|
||||
Sub(sender As Object, e As CustomRowCellEditEventArgs)
|
||||
Try
|
||||
' *** NEU: Dynamische Editoren aus Cache oder neu erstellen ***
|
||||
If _DynamicEditorColumns.Contains(e.Column.FieldName) Then
|
||||
Dim oColumnData As DataRow = pColumnTable.
|
||||
Select($"SPALTENNAME = '{e.Column.FieldName}'").
|
||||
FirstOrDefault()
|
||||
|
||||
Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(pControlId, oColumnName)
|
||||
If oColumnData IsNot Nothing Then
|
||||
Dim oSqlCommand As String = oColumnData.ItemEx("SQL_COMMAND", "")
|
||||
Dim oConnectionId As Integer = oColumnData.ItemEx("CONNECTION_ID", 1)
|
||||
Dim oIsAdvancedLookup As Boolean = oColumnData.ItemEx("ADVANCED_LOOKUP", False)
|
||||
|
||||
If oEditorExists Then
|
||||
' Combobox/Lookup-Editor aus GridTables: immer zuweisen
|
||||
Dim oEditor = _GridTables.Item(pControlId).Item(oColumnName)
|
||||
_Logger.Debug("Assigning Editor to Column [{0}]", oColumnName)
|
||||
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
|
||||
_Logger.Debug("Editor for Column [{0}] does not exist", oColumnName)
|
||||
End If
|
||||
End If
|
||||
Exit For
|
||||
Next
|
||||
Catch ex As Exception
|
||||
_Logger.Warn("⚠️ Error in CustomRowCellEdit for [{0}]", e.CellValue)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
' *** SQL auflösen (für Cache-Key) ***
|
||||
Dim resolvedSql = ResolveSqlTemplate(oSqlCommand, TryCast(sender, GridView), e.RowHandle)
|
||||
|
||||
' *** CACHE-KEY: Spaltenname + aufgelöstes SQL (HashCode) ***
|
||||
Dim cacheKey As String = $"{e.Column.FieldName}|{resolvedSql.GetHashCode()}"
|
||||
|
||||
' *** CACHE-CHECK ***
|
||||
SyncLock _DynamicEditorCacheShared
|
||||
If _DynamicEditorCacheShared.ContainsKey(cacheKey) Then
|
||||
' ✅ CACHE HIT: Editor wiederverwenden
|
||||
e.RepositoryItem = _DynamicEditorCacheShared(cacheKey)
|
||||
Else
|
||||
' ❌ CACHE MISS: Neuen Editor erstellen
|
||||
_Logger.Info("[CustomRowCellEdit] 🆕 MISS: Creating editor for [{0}]", e.Column.FieldName)
|
||||
|
||||
Dim realEditor = CreateRowSpecificEditor(e.Column.FieldName, resolvedSql, oConnectionId, oIsAdvancedLookup)
|
||||
|
||||
If realEditor IsNot Nothing Then
|
||||
' *** IN CACHE SPEICHERN ***
|
||||
_DynamicEditorCacheShared(cacheKey) = realEditor
|
||||
e.RepositoryItem = realEditor
|
||||
_Logger.Info("[CustomRowCellEdit] ✓ Cached [{0}] editor (Type=[{1}])", e.Column.FieldName, realEditor.GetType().Name)
|
||||
Else
|
||||
_Logger.Warn("[CustomRowCellEdit] CreateRowSpecificEditor returned Nothing for [{0}]", e.Column.FieldName)
|
||||
End If
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
' Standard-Editor aus Cache
|
||||
Dim oEditorExists = GridTables_TestEditorExistsByControlAndColumn(pControlId, e.Column.FieldName)
|
||||
If oEditorExists Then
|
||||
_Logger.Debug("[CustomRowCellEdit] Assigning RepositoryItem for column [{0}] from GridTables cache.", e.Column.FieldName)
|
||||
e.RepositoryItem = _GridTables.Item(pControlId).Item(e.Column.FieldName)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Warn("⚠️ Error in CustomRowCellEdit for column [{0}]", e.Column.FieldName)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
' *** NEU: Visuelle Kennzeichnung für dynamische Editoren ***
|
||||
AddHandler pGridView.CustomDrawCell,
|
||||
Sub(sender As Object, e As RowCellCustomDrawEventArgs)
|
||||
Try
|
||||
' Nur für dynamische Editor-Spalten
|
||||
If Not _DynamicEditorColumns.Contains(e.Column.FieldName) Then Return
|
||||
|
||||
' Zellwert abrufen
|
||||
Dim cellValue = pGridView.GetRowCellValue(e.RowHandle, e.Column.FieldName)
|
||||
|
||||
' Wenn Zelle LEER ist → grau einfärben
|
||||
If cellValue Is Nothing OrElse IsDBNull(cellValue) OrElse String.IsNullOrWhiteSpace(cellValue.ToString()) Then
|
||||
' Helles Grau als Hintergrund
|
||||
e.Appearance.BackColor = Color.FromArgb(240, 240, 240)
|
||||
e.Appearance.ForeColor = Color.Gray
|
||||
Else
|
||||
' Wert vorhanden → Standardfarbe (nur bei Fokus-Wechsel)
|
||||
' WICHTIG: Nicht überschreiben, wenn Zelle selektiert ist!
|
||||
If Not e.Appearance.BackColor.Equals(SystemColors.Highlight) Then
|
||||
e.Appearance.BackColor = Color.White
|
||||
e.Appearance.ForeColor = Color.Black
|
||||
End If
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[CustomDrawCell] Error: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
AddHandler pGridView.ValidatingEditor, Sub(sender As Object, e As BaseContainerValidateEditorEventArgs)
|
||||
Dim oRow As DataRowView = pGridView.GetRow(pGridView.FocusedRowHandle)
|
||||
Dim oColumnName = pGridView.FocusedColumn.FieldName
|
||||
@@ -965,21 +1007,23 @@ Namespace ControlCreator
|
||||
|
||||
_Logger.Debug("Showing editor.")
|
||||
|
||||
' Formel-Spalten dürfen keinen Editor öffnen (gilt für EXPRESSION UND SQL)
|
||||
' Formel-Spalten blockieren
|
||||
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)
|
||||
_Logger.Debug("Cancelling editor – column [{0}] is a formula column.", oFieldName)
|
||||
e.Cancel = True
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
|
||||
CheckNewItemRow:
|
||||
If oView.IsNewItemRow(oView.FocusedRowHandle) AndAlso Not newRowModified Then
|
||||
_Logger.Debug("Adding new row.")
|
||||
oView.AddNewRow()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[ShowingEditor] Error: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
@@ -1006,15 +1050,127 @@ Namespace ControlCreator
|
||||
|
||||
AddHandler pGridView.CellValueChanged,
|
||||
Sub(sender As Object, e As CellValueChangedEventArgs)
|
||||
' *** HandleInheritedColumnValue MUSS zuerst aufgerufen werden ***
|
||||
' *** 1. HandleInheritedColumnValue ZUERST ***
|
||||
Try
|
||||
HandleInheritedColumnValue(TryCast(sender, GridView), pColumnTable, e)
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
' *** FORMULA_EXPRESSION-Refresh via CellValueChanged (FALLBACK) ***
|
||||
' (EditValueChanged macht das normalerweise schon LIVE)
|
||||
' *** 2. Cache-Invalidierung für dynamische Editoren ***
|
||||
Try
|
||||
Dim oView As GridView = TryCast(sender, GridView)
|
||||
If oView Is Nothing OrElse e.Column Is Nothing Then Return
|
||||
|
||||
' Finde alle dynamischen Spalten, die die geänderte Spalte via {#TBCOL#...} referenzieren
|
||||
Dim oDependentDynamicColumns As New List(Of String)
|
||||
|
||||
For Each dynColName In _DynamicEditorColumns
|
||||
Dim oColDef As DataRow = pColumnTable.
|
||||
Select($"SPALTENNAME = '{dynColName}'").
|
||||
FirstOrDefault()
|
||||
|
||||
If oColDef Is Nothing Then Continue For
|
||||
|
||||
Dim oSqlCommand As String = oColDef.ItemEx("SQL_COMMAND", "")
|
||||
|
||||
' Prüfe ob SQL {#TBCOL#<ColumnName>} enthält
|
||||
If oSqlCommand.Contains($"{{#TBCOL#{e.Column.FieldName}}}") Then
|
||||
oDependentDynamicColumns.Add(dynColName)
|
||||
_Logger.Debug("[CellValueChanged] Spalte [{0}] referenziert via #TBCOL# [{1}] → Cache invalidieren",
|
||||
dynColName, e.Column.FieldName)
|
||||
End If
|
||||
Next
|
||||
|
||||
' Cache-Einträge für ALLE betroffenen Zeilen löschen
|
||||
If oDependentDynamicColumns.Count > 0 Then
|
||||
SyncLock _DynamicEditorCacheShared
|
||||
Dim oKeysToRemove As New List(Of String)
|
||||
|
||||
For Each cacheKey In _DynamicEditorCacheShared.Keys
|
||||
For Each depCol In oDependentDynamicColumns
|
||||
' Cache-Key-Format: "ColumnName|HashCode"
|
||||
If cacheKey.StartsWith(depCol & "|") Then
|
||||
oKeysToRemove.Add(cacheKey)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
' Cache-Keys löschen
|
||||
For Each keyToRemove In oKeysToRemove
|
||||
_DynamicEditorCacheShared.Remove(keyToRemove)
|
||||
_Logger.Info("[CellValueChanged] ♻️ Cache invalidiert: [{0}]", keyToRemove)
|
||||
Next
|
||||
|
||||
If oKeysToRemove.Count > 0 Then
|
||||
_Logger.Info("[CellValueChanged] ♻️ Gesamt: {0} Cache-Einträge für [{1}] gelöscht",
|
||||
oKeysToRemove.Count, e.Column.FieldName)
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[CellValueChanged] Cache-Invalidierung fehlgeschlagen: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
' *** Block 2.5: Grid-Invalidierung für dynamische Editoren ***
|
||||
Try
|
||||
Dim oView As GridView = TryCast(sender, GridView)
|
||||
If oView Is Nothing OrElse e.Column Is Nothing Then Return
|
||||
|
||||
' Finde alle dynamischen Spalten, die die geänderte Spalte via {#TBCOL#...} referenzieren
|
||||
Dim oDependentDynamicColumns As New List(Of String)
|
||||
|
||||
For Each dynColName In _DynamicEditorColumns
|
||||
Dim oColDef As DataRow = pColumnTable.
|
||||
Select($"SPALTENNAME = '{dynColName}'").
|
||||
FirstOrDefault()
|
||||
|
||||
If oColDef Is Nothing Then Continue For
|
||||
|
||||
Dim oSqlCommand As String = oColDef.ItemEx("SQL_COMMAND", "")
|
||||
|
||||
' Prüfe ob SQL {#TBCOL#<ColumnName>} enthält
|
||||
If oSqlCommand.Contains($"{{#TBCOL#{e.Column.FieldName}}}") Then
|
||||
oDependentDynamicColumns.Add(dynColName)
|
||||
End If
|
||||
Next
|
||||
|
||||
' *** KERN-FIX: Grid-Refresh OHNE Cache-Duplikat ***
|
||||
If oDependentDynamicColumns.Count > 0 Then
|
||||
_Logger.Debug("[CellValueChanged] Invalidiere {0} Zeilen für abhängige Spalten: [{1}]",
|
||||
oView.DataRowCount, String.Join(", ", oDependentDynamicColumns))
|
||||
|
||||
' BeginInvoke: Grid-Refresh NACH allen CellValueChanged-Events
|
||||
oView.GridControl.BeginInvoke(New Action(
|
||||
Sub()
|
||||
Try
|
||||
For rowHandle As Integer = 0 To oView.DataRowCount - 1
|
||||
For Each depCol In oDependentDynamicColumns
|
||||
Dim oGridColumn = oView.Columns.ColumnByFieldName(depCol)
|
||||
If oGridColumn IsNot Nothing Then
|
||||
oView.RefreshRowCell(rowHandle, oGridColumn)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
_Logger.Info("[CellValueChanged] ✓ Grid-Invalidierung abgeschlossen: {0} Zeilen, {1} Spalten",
|
||||
oView.DataRowCount, oDependentDynamicColumns.Count)
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[CellValueChanged] Grid-Invalidierung fehlgeschlagen: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub))
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[CellValueChanged] Grid-Invalidierung fehlgeschlagen: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
' *** 3. FORMULA_EXPRESSION-Refresh via CellValueChanged (FALLBACK) ***
|
||||
Try
|
||||
Dim oView As GridView = TryCast(sender, GridView)
|
||||
If oView Is Nothing OrElse e.Column Is Nothing Then Return
|
||||
@@ -1036,7 +1192,7 @@ Namespace ControlCreator
|
||||
Next
|
||||
|
||||
If oFormulaColumnsToRefresh.Count = 0 Then
|
||||
' Kein FORMULA_EXPRESSION-Refresh nötig – weiter zu FORMULA_SQL
|
||||
' Kein FORMULA_EXPRESSION-Refresh nötig
|
||||
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)
|
||||
@@ -1054,6 +1210,8 @@ Namespace ControlCreator
|
||||
_Logger.Debug("[FormulaRefresh] FALLBACK DisplayText for [{0}]: [{1}]",
|
||||
oFormulaColumnName, oView.GetRowCellDisplayText(oRowHandle, oGridColumn))
|
||||
Next
|
||||
' SQL-Formeln die Expression-Spalten referenzieren auch triggern
|
||||
TriggerSqlFormulasAfterExpressionUpdate(oView, oRowHandle, oFormulaColumnsToRefresh)
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
@@ -1064,8 +1222,7 @@ Namespace ControlCreator
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
' *** FORMULA_SQL-Refresh via CellValueChanged ***
|
||||
' SQL wird NUR hier ausgeführt (nicht in EditValueChanged) um DB-Roundtrips zu minimieren
|
||||
' *** 4. FORMULA_SQL-Refresh via CellValueChanged ***
|
||||
Try
|
||||
Dim oView As GridView = TryCast(sender, GridView)
|
||||
If oView Is Nothing OrElse e.Column Is Nothing Then Return
|
||||
@@ -1085,7 +1242,7 @@ Namespace ControlCreator
|
||||
_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
|
||||
' BeginInvoke: UI nicht blockieren
|
||||
oView.GridControl.BeginInvoke(New Action(
|
||||
Sub()
|
||||
Try
|
||||
@@ -1113,7 +1270,9 @@ Namespace ControlCreator
|
||||
|
||||
Try
|
||||
Dim oResultTable As DataTable = DatabaseFallback.GetDatatable(
|
||||
New GetDatatableOptions(resolvedSql, DatabaseType.ECM))
|
||||
New GetDatatableOptions(resolvedSql, DatabaseType.ECM) With {
|
||||
.ConnectionId = oDefinition.ConnectionId
|
||||
})
|
||||
|
||||
If oResultTable IsNot Nothing AndAlso oResultTable.Rows.Count > 0 Then
|
||||
Dim oResult = oResultTable.Rows(0).Item(0)
|
||||
@@ -1144,8 +1303,248 @@ Namespace ControlCreator
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
' *** 5. Dynamische Editor-Invalidierung (visuell) ***
|
||||
Try
|
||||
Dim oView As GridView = TryCast(sender, GridView)
|
||||
If oView IsNot Nothing AndAlso e.Column IsNot Nothing Then
|
||||
If _DynamicEditorColumns.Contains(e.Column.FieldName) Then
|
||||
oView.InvalidateRow(e.RowHandle)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' Prüft, ob ein SQL-Command Tabellen-Spalten-Platzhalter ({#TBCOL#...}) enthält.
|
||||
''' </summary>
|
||||
Private Function ContainsTableColumnPlaceholder(sqlCommand As String) As Boolean
|
||||
If String.IsNullOrWhiteSpace(sqlCommand) Then Return False
|
||||
Return sqlCommand.IndexOf("{#TBCOL#", StringComparison.OrdinalIgnoreCase) >= 0
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Erstellt einen zeilenspezifischen Editor (Combobox/Lookup) basierend auf aufgelöstem SQL.
|
||||
''' Wird verwendet, wenn SQL_COMMAND Platzhalter wie {#TBCOL#...} enthält.
|
||||
''' </summary>
|
||||
Private Function CreateRowSpecificEditor(
|
||||
columnName As String,
|
||||
resolvedSql As String,
|
||||
connectionId As Integer,
|
||||
isAdvancedLookup As Boolean) As RepositoryItem
|
||||
|
||||
Try
|
||||
If LOG_HOTSPOTS Then _Logger.Debug("[CreateRowSpecificEditor] Executing SQL for column [{0}]: {1}", columnName, resolvedSql)
|
||||
|
||||
|
||||
' SQL ausführen
|
||||
Dim oDataTable As DataTable = DatabaseFallback.GetDatatable(
|
||||
New GetDatatableOptions(resolvedSql, DatabaseType.ECM) With {
|
||||
.ConnectionId = connectionId
|
||||
})
|
||||
|
||||
If oDataTable Is Nothing OrElse oDataTable.Rows.Count = 0 Then
|
||||
_Logger.Warn("[CreateRowSpecificEditor] No data returned for column [{0}]", columnName)
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
If LOG_HOTSPOTS Then _Logger.Debug("[CreateRowSpecificEditor] Retrieved {0} rows for column [{1}]", oDataTable.Rows.Count, columnName)
|
||||
|
||||
' *** NEU: Log erste 5 Rows für Debugging ***
|
||||
For i As Integer = 0 To Math.Min(4, oDataTable.Rows.Count - 1)
|
||||
If LOG_HOTSPOTS Then _Logger.Debug("[CreateRowSpecificEditor] DataTable Row[{0}]: [{1}]", i, oDataTable.Rows(i)(0))
|
||||
Next
|
||||
|
||||
' Editor erstellen (analog zu GridTables_GetRepositoryItemForColumn)
|
||||
If isAdvancedLookup Then
|
||||
Dim oEditor = New RepositoryItemLookupControl3 With {
|
||||
.DisplayMember = oDataTable.Columns(0).ColumnName,
|
||||
.ValueMember = oDataTable.Columns(0).ColumnName,
|
||||
.DataSource = oDataTable
|
||||
}
|
||||
_Logger.Debug("[CreateRowSpecificEditor] Created LookupControl3 with DisplayMember=[{0}], ValueMember=[{1}]",
|
||||
oEditor.DisplayMember, oEditor.ValueMember)
|
||||
Return oEditor
|
||||
Else
|
||||
Dim oEditor = New RepositoryItemComboBox()
|
||||
Dim oItems As New List(Of String)
|
||||
|
||||
AddHandler oEditor.Validating,
|
||||
Sub(_sender As ComboBoxEdit, _e As CancelEventArgs)
|
||||
If oItems.Contains(_sender.EditValue) Then
|
||||
_e.Cancel = False
|
||||
Else
|
||||
_e.Cancel = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
For Each oRow2 As DataRow In oDataTable.Rows
|
||||
Dim oValue = oRow2.Item(0).ToString()
|
||||
Try
|
||||
If oRow2.ItemArray.Length > 1 Then
|
||||
oValue &= $" | {oRow2.Item(1)}"
|
||||
End If
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
oEditor.Items.Add(oValue)
|
||||
oItems.Add(oValue)
|
||||
If LOG_HOTSPOTS Then _Logger.Debug("[CreateRowSpecificEditor] Added ComboBox item: [{0}]", oValue)
|
||||
Next
|
||||
|
||||
_Logger.Debug("[CreateRowSpecificEditor] Created ComboBox with {0} items", oEditor.Items.Count)
|
||||
Return oEditor
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[CreateRowSpecificEditor] Failed to create editor for column [{0}]: {1}", columnName, ex.Message)
|
||||
_Logger.Error(ex)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Triggert SQL-Formeln, die Expression-Spalten referenzieren (z.B. Gesamt referenziert Brutto).
|
||||
''' Wird aufgerufen NACHDEM Expression-Spalten aktualisiert wurden.
|
||||
''' </summary>
|
||||
Private Sub TriggerSqlFormulasAfterExpressionUpdate(
|
||||
pView As GridView,
|
||||
pColumnTable As DataTable,
|
||||
pRowHandle As Integer,
|
||||
pUpdatedExpressionColumns As List(Of String))
|
||||
|
||||
If pUpdatedExpressionColumns.Count = 0 Then Return
|
||||
|
||||
' Finde alle SQL-Formeln, die eine der aktualisierten Expression-Spalten referenzieren
|
||||
Dim oSqlColumnsToRefresh As New List(Of String)
|
||||
For Each kvp In _FormulaSqlColumns
|
||||
For Each updatedExprCol In pUpdatedExpressionColumns
|
||||
If kvp.Value.ReferencedColumns.Any(
|
||||
Function(col) String.Equals(col, updatedExprCol, StringComparison.OrdinalIgnoreCase)) Then
|
||||
|
||||
If Not oSqlColumnsToRefresh.Contains(kvp.Key) Then
|
||||
oSqlColumnsToRefresh.Add(kvp.Key)
|
||||
End If
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
If oSqlColumnsToRefresh.Count > 0 Then
|
||||
_Logger.Debug("[FormulaSql] Expression columns [{0}] trigger SQL refresh for: [{1}]",
|
||||
String.Join(", ", pUpdatedExpressionColumns),
|
||||
String.Join(", ", oSqlColumnsToRefresh))
|
||||
|
||||
ExecuteSqlFormulas(pView, pRowHandle, oSqlColumnsToRefresh)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Führt SQL-Formeln aus und aktualisiert die Zellwerte.
|
||||
''' Ausgelagert in separate Methode, um Code-Duplikation zu vermeiden.
|
||||
''' </summary>
|
||||
Private Sub ExecuteSqlFormulas(
|
||||
pView As GridView,
|
||||
pRowHandle As Integer,
|
||||
pSqlColumnsToRefresh As List(Of String))
|
||||
|
||||
pView.GridControl.BeginInvoke(New Action(
|
||||
Sub()
|
||||
Try
|
||||
If Not pView.IsValidRowHandle(pRowHandle) Then Return
|
||||
|
||||
For Each oSqlColumnName As String In pSqlColumnsToRefresh
|
||||
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 = pView.GetRowCellValue(pRowHandle, 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, pView, pRowHandle)
|
||||
_Logger.Debug("[FormulaSql] Executing SQL for [{0}]: [{1}]", oSqlColumnName, resolvedSql)
|
||||
|
||||
Try
|
||||
' *** VEREINFACHT: ConnectionId direkt aus Definition ***
|
||||
Dim oConnectionId As Integer = oDefinition.ConnectionId
|
||||
_Logger.Debug("[FormulaSql] Using ConnectionId [{0}] for column [{1}]", oConnectionId, oSqlColumnName)
|
||||
|
||||
Dim oResultTable As DataTable = DatabaseFallback.GetDatatable(
|
||||
New GetDatatableOptions(resolvedSql, DatabaseType.ECM) With {
|
||||
.ConnectionId = oConnectionId
|
||||
})
|
||||
|
||||
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
|
||||
pView.SetRowCellValue(pRowHandle, oSqlColumnName,
|
||||
If(oResult Is Nothing OrElse IsDBNull(oResult), DBNull.Value, oResult))
|
||||
pView.RefreshRowCell(pRowHandle, pView.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))
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Triggert SQL-Formeln, die Expression-Spalten referenzieren (z.B. Gesamt referenziert Brutto).
|
||||
''' Wird aufgerufen NACHDEM Expression-Spalten aktualisiert wurden.
|
||||
''' </summary>
|
||||
Private Sub TriggerSqlFormulasAfterExpressionUpdate(
|
||||
pView As GridView,
|
||||
pRowHandle As Integer,
|
||||
pUpdatedExpressionColumns As List(Of String))
|
||||
|
||||
If pUpdatedExpressionColumns.Count = 0 Then Return
|
||||
|
||||
' Finde alle SQL-Formeln, die eine der aktualisierten Expression-Spalten referenzieren
|
||||
Dim oSqlColumnsToRefresh As New List(Of String)
|
||||
For Each kvp In _FormulaSqlColumns
|
||||
For Each updatedExprCol In pUpdatedExpressionColumns
|
||||
If kvp.Value.ReferencedColumns.Any(
|
||||
Function(col) String.Equals(col, updatedExprCol, StringComparison.OrdinalIgnoreCase)) Then
|
||||
|
||||
If Not oSqlColumnsToRefresh.Contains(kvp.Key) Then
|
||||
oSqlColumnsToRefresh.Add(kvp.Key)
|
||||
End If
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
If oSqlColumnsToRefresh.Count > 0 Then
|
||||
_Logger.Debug("[FormulaSql] Expression columns [{0}] trigger SQL refresh for: [{1}]",
|
||||
String.Join(", ", pUpdatedExpressionColumns),
|
||||
String.Join(", ", oSqlColumnsToRefresh))
|
||||
|
||||
' *** pColumnTable nicht mehr nötig ***
|
||||
ExecuteSqlFormulas(pView, pRowHandle, oSqlColumnsToRefresh)
|
||||
End If
|
||||
End Sub
|
||||
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
|
||||
Return
|
||||
@@ -1157,6 +1556,11 @@ Namespace ControlCreator
|
||||
End If
|
||||
|
||||
If isApplyingInheritedValue OrElse pArgs.RowHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
|
||||
If isApplyingInheritedValue Then
|
||||
_Logger.Debug("Currently applying inherited value for column {0} – skipping to prevent recursion.", pArgs.Column.FieldName)
|
||||
Else
|
||||
_Logger.Debug("Invalid RowHandle ({0}) – skipping HandleInheritedColumnValue.", pArgs.RowHandle)
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
@@ -1200,9 +1604,9 @@ Namespace ControlCreator
|
||||
affectedRowsCount)
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
confirmMessage = String.Format(
|
||||
"Do you want to inherit the value '{0}' to {1} subsequent row(s)?",
|
||||
valueToApply,
|
||||
affectedRowsCount)
|
||||
"Do you want to inherit the value '{0}' to {1} subsequent row(s)?",
|
||||
valueToApply,
|
||||
affectedRowsCount)
|
||||
End If
|
||||
Dim confirmTitle As String = "Wertevererbung bestätigen"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
@@ -1258,9 +1662,14 @@ Namespace ControlCreator
|
||||
_Logger.Info("Skipping confirmation dialog (already confirmed {0} times)", confirmationEntry.Count)
|
||||
End If
|
||||
|
||||
' *** NEU: Cache-Keys sammeln WÄHREND der Vererbung ***
|
||||
Dim oCacheKeysToInvalidate As New List(Of String)
|
||||
|
||||
isApplyingInheritedValue = True
|
||||
Try
|
||||
_Logger.Info(String.Format("Inherit Value is active for column. So inheritting the value [{0}]...", valueToApply))
|
||||
_Logger.Info(String.Format("Inherit Value is active for column [{0}]. Inheriting value [{1}] to {2} rows...",
|
||||
pArgs.Column.FieldName, valueToApply, affectedRowsCount))
|
||||
|
||||
For dataIndex As Integer = listIndex + 1 To pView.DataRowCount - 1
|
||||
Dim targetHandle = pView.GetRowHandle(dataIndex)
|
||||
If targetHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle OrElse pView.IsGroupRow(targetHandle) Then
|
||||
@@ -1276,12 +1685,62 @@ Namespace ControlCreator
|
||||
Continue For
|
||||
End If
|
||||
|
||||
' *** SCHRITT 1: Wert setzen ***
|
||||
pView.SetRowCellValue(targetHandle, pArgs.Column.FieldName, valueToApply)
|
||||
|
||||
' *** SCHRITT 2: Cache-Keys für DIESE Zeile sammeln ***
|
||||
' Finde alle dynamischen Spalten, die die geänderte Spalte via {#TBCOL#...} referenzieren
|
||||
For Each dynColName In _DynamicEditorColumns
|
||||
Dim oColDef As DataRow = pColumnDefinition.
|
||||
Select($"SPALTENNAME = '{dynColName}'").
|
||||
FirstOrDefault()
|
||||
|
||||
If oColDef Is Nothing Then Continue For
|
||||
|
||||
Dim oSqlCommand As String = oColDef.ItemEx("SQL_COMMAND", "")
|
||||
|
||||
' Prüfe ob SQL {#TBCOL#<ColumnName>} enthält
|
||||
If oSqlCommand.Contains($"{{#TBCOL#{pArgs.Column.FieldName}}}") Then
|
||||
' SQL auflösen mit NEUEM Wert (targetHandle!)
|
||||
Try
|
||||
Dim resolvedSql = ResolveSqlTemplate(oSqlCommand, pView, targetHandle)
|
||||
Dim cacheKey = $"{dynColName}|{resolvedSql.GetHashCode()}"
|
||||
|
||||
If Not oCacheKeysToInvalidate.Contains(cacheKey) Then
|
||||
oCacheKeysToInvalidate.Add(cacheKey)
|
||||
_Logger.Debug("[HandleInheritedColumnValue] Marked for invalidation: [{0}] (Row {1})",
|
||||
cacheKey, targetHandle)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Error("[HandleInheritedColumnValue] Failed to resolve SQL for column [{0}], row {1}: {2}",
|
||||
dynColName, targetHandle, ex.Message)
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
' *** SCHRITT 3: Cache SOFORT invalidieren BEVOR Grid refresht wird ***
|
||||
If oCacheKeysToInvalidate.Count > 0 Then
|
||||
_Logger.Info("[HandleInheritedColumnValue] ♻️ Invalidating {0} cache entries BEFORE grid refresh...",
|
||||
oCacheKeysToInvalidate.Count)
|
||||
|
||||
SyncLock _DynamicEditorCacheShared
|
||||
For Each keyToRemove In oCacheKeysToInvalidate
|
||||
If _DynamicEditorCacheShared.ContainsKey(keyToRemove) Then
|
||||
_DynamicEditorCacheShared.Remove(keyToRemove)
|
||||
_Logger.Debug("[HandleInheritedColumnValue] ✓ Cache invalidated (IMMEDIATE): [{0}]", keyToRemove)
|
||||
End If
|
||||
Next
|
||||
End SyncLock
|
||||
|
||||
_Logger.Info("[HandleInheritedColumnValue] ✓ Cache invalidation complete. User can now click cells safely.")
|
||||
End If
|
||||
|
||||
Finally
|
||||
isApplyingInheritedValue = False
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub SetInheritanceConfirmationCount(columnName As String, newCount As Integer)
|
||||
Dim entries = UserInheritance_ConfirmationByColumn
|
||||
If entries Is Nothing Then
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
Public Property CONNECTION_STRING_ECM As String = ""
|
||||
Public Property CONNECTION_STRING_IDB As String = ""
|
||||
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 OPERATION_MODE_FS As String = "PURE_WM"
|
||||
|
||||
@@ -19,6 +19,7 @@ Module ModuleRuntimeVariables
|
||||
' Diese Werte müssen später zur Laufzeit geladen werden
|
||||
Public Property ActiveWorkflowType As Integer
|
||||
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_CONFIG 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 DT_FILTERED_PROFILE_SEARCHES_DOC As DataTable
|
||||
|
||||
Public Property BASEDATA_DT_PROFILES_SEARCHES_SQL As DataTable
|
||||
Public Property BASEDATA_DT_PROFILE_SEARCHES_SQL As DataTable
|
||||
Public Property BASEDATA_DT_PROFILES_SEARCHES_DATA As DataTable
|
||||
Public Property DT_FILTERED_PROFILE_SEARCHES_DATA As DataTable
|
||||
Public Property BASEDATA_DT_VW_PROFILE_USER 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_GHOST_MODE_ACTIVE As Boolean = False
|
||||
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 Property ColumnName As String = ""
|
||||
Public Property Count As Integer
|
||||
|
||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.8.7.1")>
|
||||
<Assembly: AssemblyVersion("2.9.3.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
<Assembly: NeutralResourcesLanguage("")>
|
||||
|
||||
@@ -151,9 +151,9 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<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>
|
||||
<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 Include="DigitalData.Controls.LookupGrid">
|
||||
<HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
|
||||
@@ -227,84 +227,71 @@
|
||||
<Reference Include="FormsUtils">
|
||||
<HintPath>M:\Bibliotheken\3rdParty\FormsUtils.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.CAD, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Common, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Document, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Email, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.HTML, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Markdown, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Markdown.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.PDF, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.RTF, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.SVG, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
|
||||
@@ -329,11 +316,14 @@
|
||||
<Reference Include="Mail">
|
||||
<HintPath>M:\Bibliotheken\3rdParty\Limilabs\Mail.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.10.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.Cryptography.9.0.0\lib\net462\Microsoft.Bcl.Cryptography.dll</HintPath>
|
||||
<Reference Include="Microsoft.Bcl.Cryptography, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.Cryptography.10.0.5\lib\net462\Microsoft.Bcl.Cryptography.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.HashCode, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.HashCode.6.0.0\lib\net462\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.55.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
@@ -342,6 +332,15 @@
|
||||
<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>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Exceptions, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Exceptions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Settings, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Settings.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Settings.Edition, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Settings.Edition.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
</Reference>
|
||||
@@ -351,8 +350,8 @@
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
<Reference Include="OpenMcdf, Version=3.1.4.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OpenMcdf.3.1.4\lib\netstandard2.0\OpenMcdf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Oracle.ManagedDataAccess.21.15.0\lib\net462\Oracle.ManagedDataAccess.dll</HintPath>
|
||||
@@ -367,14 +366,14 @@
|
||||
<HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<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>
|
||||
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.CodeDom.9.0.0\lib\net462\System.CodeDom.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.9.0.0\lib\net462\System.Collections.Immutable.dll</HintPath>
|
||||
<Reference Include="System.Collections.Immutable, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.10.0.5\lib\net462\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
@@ -389,53 +388,53 @@
|
||||
<Reference Include="System.DirectoryServices" />
|
||||
<Reference Include="System.DirectoryServices.AccountManagement" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Formats.Asn1.9.0.0\lib\net462\System.Formats.Asn1.dll</HintPath>
|
||||
<Reference Include="System.Formats.Asn1, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Formats.Asn1.10.0.5\lib\net462\System.Formats.Asn1.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Packaging.9.0.0\lib\net462\System.IO.Packaging.dll</HintPath>
|
||||
<Reference Include="System.IO.Packaging, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Packaging.10.0.5\lib\net462\System.IO.Packaging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
<Reference Include="System.IO.Pipelines, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.10.0.5\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Memory, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll</HintPath>
|
||||
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Net.Http.Formatting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.6.0.0\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Pkcs.9.0.0\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
|
||||
<Reference Include="System.Security.Cryptography.Pkcs, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Pkcs.10.0.5\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
<Reference Include="System.Text.Encodings.Web, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.10.0.5\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll</HintPath>
|
||||
<Reference Include="System.Text.Json, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.10.0.5\lib\net462\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Channels, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||
<Reference Include="System.Threading.Channels, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.10.0.5\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||
<Reference Include="System.ValueTuple, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.6.1\lib\net462\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
@@ -1256,7 +1255,7 @@
|
||||
<None Include="Resources\PM_mit_slogan.JPG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="taskFLOW-TEST-Debug.txt" />
|
||||
<Content Include="logtaskflow.txt" />
|
||||
<None Include="Changelog.md" />
|
||||
<Content Include="DataColumnExpression.txt" />
|
||||
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />
|
||||
@@ -1366,10 +1365,10 @@
|
||||
</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.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.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'))" />
|
||||
<Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets'))" />
|
||||
</Target>
|
||||
<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.3\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" />
|
||||
<Import Project="..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets')" />
|
||||
<!-- 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.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
@@ -70,7 +70,7 @@ Public Class clsPatterns
|
||||
''' </summary>
|
||||
Public Shared Sub ClearControlCache()
|
||||
_ControlLookupCache = Nothing
|
||||
LOGGER.Debug("Control cache cleared")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("Control cache cleared")
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' Aktualisiert den Wert eines Controls im Cache
|
||||
@@ -122,7 +122,7 @@ Public Class clsPatterns
|
||||
LOGGER.Warn($"Unsupported control type for cache update: {ctrl.GetType.Name}")
|
||||
End Select
|
||||
|
||||
LOGGER.Debug($"Cache updated for control [{controlName}] with value type [{newValue?.GetType().Name}]")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"Cache updated for control [{controlName}] with value type [{newValue?.GetType().Name}]")
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
@@ -144,7 +144,7 @@ Public Class clsPatterns
|
||||
UpdateControlInCache(kvp.Key, kvp.Value)
|
||||
Next
|
||||
|
||||
LOGGER.Debug($"Batch cache update completed for {updates.Count} controls")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"Batch cache update completed for {updates.Count} controls")
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' Wraps a pattern-type and -value in the common format: {#type#value}
|
||||
@@ -175,9 +175,9 @@ Public Class clsPatterns
|
||||
|
||||
If Not IsNothing(oResult) Then
|
||||
oResult = ReplaceUserValues(oResult)
|
||||
LOGGER.Debug($"input AFTER replacing: [{oResult}]")
|
||||
End If
|
||||
|
||||
End If
|
||||
LOGGER.Debug($"input AFTER replacing: [{oResult}]")
|
||||
Return oResult
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
@@ -305,7 +305,7 @@ Public Class clsPatterns
|
||||
End SyncLock
|
||||
|
||||
Try
|
||||
LOGGER.Debug($"Starting ReplaceControlValues with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"Starting ReplaceControlValues with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
|
||||
Dim oTryCounter = 0
|
||||
|
||||
While ContainsPattern(oResult, PATTERN_CTRL)
|
||||
@@ -325,7 +325,7 @@ Public Class clsPatterns
|
||||
oColumnName = oSplitName.Last()
|
||||
End If
|
||||
|
||||
LOGGER.Debug("Found placeholder for control [{0}].", oControlName)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("Found placeholder for control [{0}].", oControlName)
|
||||
' Beim Cache-Zugriff Lock verwenden
|
||||
Dim oControl As Control = Nothing
|
||||
SyncLock _ControlLookupCache
|
||||
@@ -349,11 +349,11 @@ Public Class clsPatterns
|
||||
|
||||
If oControl IsNot Nothing Then
|
||||
Dim oReplaceValue As String
|
||||
LOGGER.Debug("oControl.GetType [{0}].", oControl.GetType.ToString)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("oControl.GetType [{0}].", oControl.GetType.ToString)
|
||||
Select Case oControl.GetType
|
||||
Case GetType(TextBox)
|
||||
oReplaceValue = oControl.Text
|
||||
LOGGER.Debug("TextBox- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("TextBox- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
Case GetType(TextEdit)
|
||||
Try
|
||||
oReplaceValue = ClassAllgemeineFunktionen.NotNullString(DirectCast(oControl, TextEdit).EditValue, String.Empty)
|
||||
@@ -361,7 +361,7 @@ Public Class clsPatterns
|
||||
LOGGER.Warn($"Error in ReplaceValue MemoEdit: {ex.Message}")
|
||||
oReplaceValue = ""
|
||||
End Try
|
||||
LOGGER.Debug("TextEdit- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("TextEdit- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
Case GetType(MemoEdit)
|
||||
Try
|
||||
oReplaceValue = ClassAllgemeineFunktionen.NotNullString(DirectCast(oControl, MemoEdit).EditValue, String.Empty)
|
||||
@@ -369,7 +369,7 @@ Public Class clsPatterns
|
||||
LOGGER.Warn($"Error in ReplaceValue MemoEdit: {ex.Message}")
|
||||
oReplaceValue = ""
|
||||
End Try
|
||||
LOGGER.Debug("MemoEdit- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("MemoEdit- oReplaceValue will be [{0}].", oReplaceValue)
|
||||
Case GetType(LookupControl3)
|
||||
Dim oLookupControl3 As LookupControl3 = oControl
|
||||
|
||||
@@ -391,7 +391,7 @@ Public Class clsPatterns
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
' ========== FIX END ==========
|
||||
ElseIf selectedValues.Count > 1 Then
|
||||
LOGGER.Debug($"LookupControl3 [{oControlName}] mit mehr als 1 Value")
|
||||
If LOG_HOTSPOTS 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
|
||||
@@ -403,12 +403,11 @@ Public Class clsPatterns
|
||||
Next
|
||||
oIsSQL = False
|
||||
Else ' Count = 1
|
||||
LOGGER.Debug($"LookupControl3 [{oControlName}] mit genau einem Value")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"LookupControl3 [{oControlName}] mit genau einem Value")
|
||||
oReplaceValue = selectedValues(0)
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}")
|
||||
LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"oReplaceValue nach Durchlaufen selectedValues: {oReplaceValue}")
|
||||
|
||||
Case GetType(Windows.Forms.ComboBox)
|
||||
oReplaceValue = oControl.Text
|
||||
@@ -440,7 +439,7 @@ Public Class clsPatterns
|
||||
Case Else
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
End Select
|
||||
LOGGER.Debug($"[SQL-ESCAPE CHECK] Control: [{oControlName}], oReplaceValue Type: [{If(oReplaceValue?.GetType()?.Name, "NULL")}], Value: [{oReplaceValue}], IsSQL: [{oIsSQL}]")
|
||||
If LOG_HOTSPOTS Then 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
|
||||
@@ -468,7 +467,7 @@ Public Class clsPatterns
|
||||
End Try
|
||||
End Function
|
||||
Private Shared Function SafeSqlEscape(value As Object) As String
|
||||
LOGGER.Debug($"[SafeSqlEscape] Input Type: [{If(value?.GetType()?.Name, "NULL")}], Value: [{value}]")
|
||||
If LOG_HOTSPOTS Then 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")
|
||||
@@ -490,14 +489,14 @@ Public Class clsPatterns
|
||||
End If
|
||||
|
||||
Dim escaped = strValue.Replace("'", "''")
|
||||
LOGGER.Debug($"[SafeSqlEscape] Output: [{escaped}]")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"[SafeSqlEscape] Output: [{escaped}]")
|
||||
Return escaped
|
||||
End Function
|
||||
Public Shared Function ReplaceWindreamIndicies(pInput As String, pDocument As WMObject, pIsSQL As Boolean) As String
|
||||
Try
|
||||
Dim oResult = pInput
|
||||
Dim oTryCounter As Integer = 0
|
||||
LOGGER.Debug($"Starting ReplaceWindreamIndicies with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"Starting ReplaceWindreamIndicies with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
|
||||
While ContainsPattern(oResult, PATTERN_WMI)
|
||||
Dim oWMValue As String
|
||||
Dim oIndexName As String = GetNextPattern(oResult, PATTERN_WMI).Value
|
||||
@@ -517,9 +516,9 @@ Public Class clsPatterns
|
||||
|
||||
If oWMValue IsNot Nothing Then
|
||||
If pIsSQL = True Then
|
||||
LOGGER.Debug($"IS_SQL = True - oReplaceValue = {oWMValue}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"IS_SQL = True - oReplaceValue = {oWMValue}")
|
||||
oWMValue = oWMValue.ToString().Replace("'", "''")
|
||||
LOGGER.Debug($"oReplaceValue = {oWMValue}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"oReplaceValue = {oWMValue}")
|
||||
End If
|
||||
oResult = ReplacePattern(oResult, PATTERN_WMI, oWMValue)
|
||||
Else
|
||||
@@ -543,7 +542,7 @@ Public Class clsPatterns
|
||||
Try
|
||||
Dim result = input
|
||||
Dim oTryCounter As Integer = 0
|
||||
LOGGER.Debug($"Starting ReplaceIDBAttributes with input: [{result}] for document ID: {CURRENT_DOC_ID}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"Starting ReplaceIDBAttributes with input: [{result}] for document ID: {CURRENT_DOC_ID}")
|
||||
While ContainsPattern(result, PATTERN_IDBA)
|
||||
|
||||
Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value
|
||||
@@ -568,7 +567,7 @@ Public Class clsPatterns
|
||||
If oIDBValue IsNot Nothing Or Not IsDBNull(oIDBValue) Then
|
||||
Dim oReplaceValue = "{" + $"#{PATTERN_IDBA}#{indexName}" + "}"
|
||||
If IS_SQL = True Then
|
||||
LOGGER.Debug($"IS_SQL = True - oReplaceValue = [{oReplaceValue}]")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"IS_SQL = True - oReplaceValue = [{oReplaceValue}]")
|
||||
If indexName <> "ObjectID" And indexName <> "OBJID" And indexName <> "DocID" Then
|
||||
Try
|
||||
oIDBValue = oIDBValue.Replace("'", "''")
|
||||
@@ -578,7 +577,7 @@ Public Class clsPatterns
|
||||
End Try
|
||||
|
||||
End If
|
||||
LOGGER.Debug($"oIDBValue = {oIDBValue}")
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug($"oIDBValue = {oIDBValue}")
|
||||
End If
|
||||
result = result.Replace(oReplaceValue, oIDBValue)
|
||||
Else
|
||||
@@ -590,7 +589,7 @@ Public Class clsPatterns
|
||||
' Increase counter by 10 to avoid DDOSing the Database/IDB Service
|
||||
oTryCounter += 10
|
||||
End While
|
||||
LOGGER.Debug("sql after ReplaceIDBAttributes: " & input)
|
||||
If LOG_HOTSPOTS Then LOGGER.Debug("sql after ReplaceIDBAttributes: " & input)
|
||||
Return result
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
|
||||
@@ -7,7 +7,7 @@ Public Class frmAnnotations
|
||||
|
||||
Try
|
||||
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.Close()
|
||||
Catch ex As Exception
|
||||
|
||||
@@ -136,9 +136,18 @@ Public Class frmColumn_Detail
|
||||
CURRENT_DESIGN_TYPE = "SQL_SOURCE_TABLE_COLUMN"
|
||||
CURRENT_INDEX_ID = GUIDTextBox.Text
|
||||
Dim oForm2 As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
|
||||
.SQLCommand = SQL_COMMANDTextBox.Text,
|
||||
.SQLConnection = 0
|
||||
}
|
||||
.SQLCommand = SQL_COMMANDTextBox.Text,
|
||||
.SQLConnection = 1,
|
||||
.PlaceholdersManualPrefix = "CTRL",
|
||||
.PlaceholdersManualTitle = "Controls",
|
||||
.PlaceholdersManual = CURRENT_CONTROL_NAME_LIST.ToDictionary(Function(name) name, Function(name) name)
|
||||
}
|
||||
If IDB_ACTIVE = False Then
|
||||
oForm2.ATTRIBUTE_STORE = "WM"
|
||||
oForm2.PlaceholdersWindream = MVSource_AllIndicies
|
||||
Else
|
||||
oForm2.ATTRIBUTE_STORE = "IDB"
|
||||
End If
|
||||
oForm2.ShowDialog()
|
||||
|
||||
If oForm2.DialogResult = DialogResult.OK Then
|
||||
@@ -186,7 +195,10 @@ Public Class frmColumn_Detail
|
||||
CURRENT_INDEX_ID = GUIDTextBox.Text
|
||||
Dim oForm2 As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
|
||||
.SQLCommand = SQL_COMMANDTextBox.Text,
|
||||
.SQLConnection = 0
|
||||
.SQLConnection = 0,
|
||||
.PlaceholdersManualPrefix = "CTRL",
|
||||
.PlaceholdersManualTitle = "Controls",
|
||||
.PlaceholdersManual = CURRENT_CONTROL_NAME_LIST.ToDictionary(Function(name) name, Function(name) name)
|
||||
}
|
||||
oForm2.ShowDialog()
|
||||
|
||||
@@ -232,7 +244,10 @@ Public Class frmColumn_Detail
|
||||
CURRENT_INDEX_ID = GUIDTextBox.Text
|
||||
Dim oForm2 As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
|
||||
.SQLCommand = FORMULA_SQLTextBox.Text,
|
||||
.SQLConnection = 0
|
||||
.SQLConnection = 0,
|
||||
.PlaceholdersManualPrefix = "CTRL",
|
||||
.PlaceholdersManualTitle = "Controls",
|
||||
.PlaceholdersManual = CURRENT_CONTROL_NAME_LIST.ToDictionary(Function(name) name, Function(name) name)
|
||||
}
|
||||
oForm2.ShowDialog()
|
||||
|
||||
|
||||
@@ -298,7 +298,7 @@ Public Class frmFormDesigner
|
||||
Dim oDTColumnsPerDevExGrid As DataTable = DatabaseFallback.GetDatatableECM(oSQL) ', "FDesignLaodControls")
|
||||
|
||||
|
||||
Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True, "EUR")
|
||||
Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True, "EUR", Panel1)
|
||||
|
||||
AddHandler table.MouseClick, AddressOf gridControl_MouseClick
|
||||
' AddHandler table.ColumnHeaderMouseClick, AddressOf table_ColumnHeaderMouseClick
|
||||
@@ -1021,12 +1021,19 @@ Public Class frmFormDesigner
|
||||
Dim oSQL = $"SELECT SQL_BTN_FINISH FROM TBPM_PROFILE WHERE GUID = {ProfileId}"
|
||||
Dim oldSQL = DatabaseFallback.GetScalarValueECM(oSQL)
|
||||
Dim oForm As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
|
||||
.SQLCommand = oldSQL,
|
||||
.SQLConnection = 1,
|
||||
.PlaceholdersManualPrefix = "CTRL",
|
||||
.PlaceholdersManualTitle = "Controls",
|
||||
.PlaceholdersManual = CURRENT_CONTROL_NAME_LIST.ToDictionary(Function(name) name, Function(name) name)
|
||||
}
|
||||
.SQLCommand = oldSQL,
|
||||
.SQLConnection = 1,
|
||||
.PlaceholdersManualPrefix = "CTRL",
|
||||
.PlaceholdersManualTitle = "Controls",
|
||||
.PlaceholdersManual = CURRENT_CONTROL_NAME_LIST.ToDictionary(Function(name) name, Function(name) name)
|
||||
}
|
||||
If IDB_ACTIVE = False Then
|
||||
oForm.ATTRIBUTE_STORE = "WM"
|
||||
oForm.PlaceholdersWindream = MVSource_AllIndicies
|
||||
Else
|
||||
oForm.ATTRIBUTE_STORE = "IDB"
|
||||
End If
|
||||
|
||||
oForm.ShowDialog()
|
||||
|
||||
If oForm.DialogResult = DialogResult.OK Then
|
||||
|
||||
@@ -2044,12 +2044,12 @@ Public Class frmMain
|
||||
End If
|
||||
|
||||
' ========== SEARCH SQL PREPARATION ==========
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = Nothing
|
||||
rows = BASEDATA_DT_PROFILES_SEARCHES_SQL.Select(oExpression, "TAB_INDEX")
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = Nothing
|
||||
rows = BASEDATA_DT_PROFILES_SEARCHES_DATA.Select(oExpression, "TAB_INDEX")
|
||||
If rows.Length > 0 Then
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = rows.CopyToDataTable()
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = rows.CopyToDataTable()
|
||||
Else
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Clone()
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = BASEDATA_DT_PROFILES_SEARCHES_DATA.Clone()
|
||||
End If
|
||||
|
||||
' ========== VALIDATOR-FORM ÖFFNEN ==========
|
||||
@@ -3178,6 +3178,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
||||
End If
|
||||
|
||||
BASEDATA_DT_PROFILES_SEARCHES_DOC = DatabaseECM.GetDatatable(oSQL)
|
||||
EnsureProfileSearchType(BASEDATA_DT_PROFILES_SEARCHES_DOC, "DOC", NameOf(BASEDATA_DT_PROFILES_SEARCHES_DOC))
|
||||
|
||||
If pMode = "Load" Then
|
||||
DT_FILTERED_PROFILE_SEARCHES_DOC = BASEDATA_DT_PROFILES_SEARCHES_DOC.Clone()
|
||||
@@ -3185,16 +3186,18 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
||||
If pMode = "bwBasicData" Then bwBasicData.ReportProgress(50)
|
||||
oSQL = "select * from TBPM_PROFILE_SEARCH WITH (NOLOCK) where TYPE = 'SQL' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX"
|
||||
|
||||
BASEDATA_DT_PROFILES_SEARCHES_SQL = DatabaseFallback.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
|
||||
.FilterExpression = "TYPE = 'SQL'",
|
||||
.SortByColumn = "PROFILE_ID,TAB_INDEX"
|
||||
BASEDATA_DT_PROFILES_SEARCHES_DATA = DatabaseFallback.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
|
||||
.FilterExpression = "TYPE = 'SQL'",
|
||||
.SortByColumn = "PROFILE_ID,TAB_INDEX"
|
||||
})
|
||||
EnsureProfileSearchType(BASEDATA_DT_PROFILES_SEARCHES_DATA, "SQL", NameOf(BASEDATA_DT_PROFILES_SEARCHES_DATA))
|
||||
|
||||
oSQL = String.Format("SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{0}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, '{0}' as LANGUAGE, * FROM TBPM_PROFILE_CONTROLS WITH (NOLOCK)", {USER_LANGUAGE})
|
||||
BASEDATA_TBPM_PROFILE_CONTROLS = DatabaseFallback.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
|
||||
.FilterExpression = String.Format("LANGUAGE = '{0}'", {USER_LANGUAGE})
|
||||
})
|
||||
If pMode = "Load" Then
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Clone()
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = BASEDATA_DT_PROFILES_SEARCHES_DATA.Clone()
|
||||
End If
|
||||
If pMode = "bwBasicData" Then bwBasicData.ReportProgress(60)
|
||||
LoadVWPM_CONTROL_INDEX()
|
||||
@@ -3215,6 +3218,53 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
||||
End Try
|
||||
oStopWatch.Done()
|
||||
End Sub
|
||||
Private Sub EnsureProfileSearchType(ByRef pTable As DataTable, expectedType As String, tableName As String)
|
||||
Try
|
||||
If pTable Is Nothing Then
|
||||
LOGGER.Warn($"{tableName} is Nothing - type guard skipped")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If pTable.Columns.Contains("TYPE") = False Then
|
||||
LOGGER.Warn($"{tableName} has no TYPE column - type guard skipped")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim cleanedTable As DataTable = pTable.Clone()
|
||||
Dim removedCount As Integer = 0
|
||||
Dim sampleInvalidSql As String = String.Empty
|
||||
|
||||
For Each row As DataRow In pTable.Rows
|
||||
Dim rowType As String = String.Empty
|
||||
If row("TYPE") IsNot DBNull.Value Then
|
||||
rowType = row("TYPE").ToString().Trim().ToUpperInvariant()
|
||||
End If
|
||||
|
||||
If rowType = expectedType.ToUpperInvariant() Then
|
||||
cleanedTable.ImportRow(row)
|
||||
Else
|
||||
removedCount += 1
|
||||
If sampleInvalidSql = String.Empty AndAlso pTable.Columns.Contains("SQL_COMMAND") Then
|
||||
If row("SQL_COMMAND") IsNot DBNull.Value Then
|
||||
sampleInvalidSql = row("SQL_COMMAND").ToString()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If removedCount > 0 Then
|
||||
LOGGER.Warn($"{tableName}: removed {removedCount} row(s) with unexpected TYPE. Expected TYPE='{expectedType}'.")
|
||||
If sampleInvalidSql <> String.Empty Then
|
||||
LOGGER.Warn($"{tableName}: sample unexpected SQL_COMMAND => {sampleInvalidSql}")
|
||||
End If
|
||||
End If
|
||||
LOGGER.Debug($"{tableName}: {cleanedTable.Rows.Count} rows with TYPE='{expectedType}' after type guard.")
|
||||
pTable = cleanedTable
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
LOGGER.Warn($"EnsureProfileSearchType failed for {tableName}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub ConfigureGlobalLookAndFeel()
|
||||
If RIBBON_COLOR_SCHEME <> "" Then
|
||||
UserLookAndFeel.Default.UseDefaultLookAndFeel = False
|
||||
@@ -4082,10 +4132,10 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
||||
oExpression = $"PROFILE_ID = {CURRENT_ProfilGUID}"
|
||||
BASEDATA_DT_PROFILES_SEARCHES_DOC.Select(oExpression, "TAB_INDEX").CopyToDataTable(DT_FILTERED_PROFILE_SEARCHES_DOC, LoadOption.PreserveChanges)
|
||||
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = Nothing
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Copy
|
||||
BASEDATA_DT_PROFILE_SEARCHES_SQL.Clear()
|
||||
BASEDATA_DT_PROFILES_SEARCHES_SQL.Select(oExpression, "TAB_INDEX").CopyToDataTable(BASEDATA_DT_PROFILE_SEARCHES_SQL, LoadOption.PreserveChanges)
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = Nothing
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA = BASEDATA_DT_PROFILES_SEARCHES_DATA.Copy
|
||||
DT_FILTERED_PROFILE_SEARCHES_DATA.Clear()
|
||||
BASEDATA_DT_PROFILES_SEARCHES_DATA.Select(oExpression, "TAB_INDEX").CopyToDataTable(DT_FILTERED_PROFILE_SEARCHES_DATA, LoadOption.PreserveChanges)
|
||||
|
||||
Try
|
||||
Dim oEnvironment = GetEnvironment()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Imports Oracle.ManagedDataAccess.Client
|
||||
Imports System.ComponentModel
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DigitalData.Modules.Language.Utils
|
||||
'Imports DigitalData.Modules.Language.Utils
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
|
||||
Imports DigitalData.Modules.EDMI.API.Constants
|
||||
@@ -354,7 +354,7 @@ Public Class frmMassValidator
|
||||
LOGGER.Debug("Versuch Tabelle zu laden")
|
||||
Dim oDTMyColumns As DataTable = DatabaseFallback.GetDatatableECM($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlRow.Item("GUID")} ORDER BY SEQUENCE") ', "MV_LoadControls1")
|
||||
|
||||
oControl = ControlCreator.CreateExistingGridControl(oControlRow, oDTMyColumns, False, CURRENT_DOC_CURRENCY)
|
||||
oControl = ControlCreator.CreateExistingGridControl(oControlRow, oDTMyColumns, False, CURRENT_DOC_CURRENCY, pnldesigner)
|
||||
End Select
|
||||
|
||||
If oControl IsNot Nothing AndAlso TypeOf oControl IsNot Label Then
|
||||
|
||||
1
app/TaskFlow/frmValidator.Designer.vb
generated
1
app/TaskFlow/frmValidator.Designer.vb
generated
@@ -762,7 +762,6 @@ Partial Class frmValidator
|
||||
Me.rbnPgGroupAttmt.ItemLinks.Add(Me.Attmnt_bbtnitm_LoadonClick)
|
||||
Me.rbnPgGroupAttmt.Name = "rbnPgGroupAttmt"
|
||||
resources.ApplyResources(Me.rbnPgGroupAttmt, "rbnPgGroupAttmt")
|
||||
Me.rbnPgGroupAttmt.Visible = False
|
||||
'
|
||||
'RibbonPageGroupCustom
|
||||
'
|
||||
|
||||
@@ -616,7 +616,7 @@
|
||||
<value>DocumentViewer1</value>
|
||||
</data>
|
||||
<data name=">>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.2.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>DocumentViewer1.Parent" xml:space="preserve">
|
||||
<value>SplitContainer1.Panel2</value>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -138,7 +138,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>349, 557</value>
|
||||
<value>279, 446</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="GridControlDocSearch1.TabIndex" type="System.Int32, mscorlib">
|
||||
@@ -187,7 +187,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>349, 557</value>
|
||||
<value>279, 446</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -229,7 +229,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>349, 557</value>
|
||||
<value>279, 446</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -271,7 +271,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>349, 557</value>
|
||||
<value>279, 446</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -313,7 +313,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>349, 557</value>
|
||||
<value>279, 446</value>
|
||||
</data>
|
||||
<data name="GridControlDocSearch5.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -454,7 +454,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlSearch1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>344, 560</value>
|
||||
<value>275, 448</value>
|
||||
</data>
|
||||
<data name="GridControlSearch1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -502,7 +502,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlSearch2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>275, 448</value>
|
||||
</data>
|
||||
<data name="GridControlSearch2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -520,7 +520,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>344, 560</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch2.Text" xml:space="preserve">
|
||||
<value>Search2</value>
|
||||
@@ -544,7 +544,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlSearch3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>275, 448</value>
|
||||
</data>
|
||||
<data name="GridControlSearch3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -562,7 +562,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>344, 560</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch3.Text" xml:space="preserve">
|
||||
<value>XtraTabPage1</value>
|
||||
@@ -586,7 +586,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlSearch4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>275, 448</value>
|
||||
</data>
|
||||
<data name="GridControlSearch4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -604,7 +604,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>344, 560</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch4.Text" xml:space="preserve">
|
||||
<value>XtraTabPage2</value>
|
||||
@@ -628,7 +628,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="GridControlSearch5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>275, 448</value>
|
||||
</data>
|
||||
<data name="GridControlSearch5.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -646,7 +646,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch5.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>511, 560</value>
|
||||
<value>344, 560</value>
|
||||
</data>
|
||||
<data name="XtraTabPageSearch5.Text" xml:space="preserve">
|
||||
<value>XtraTabPage3</value>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.IO
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports DevExpress.Utils
|
||||
@@ -7,12 +8,13 @@ Imports DevExpress.XtraGrid.Columns
|
||||
Imports DevExpress.XtraGrid.Views.Base
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DevExpress.XtraTab
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.GUIs.Common.DocumentResultList
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.EDMI.API.Constants
|
||||
Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback
|
||||
Imports DigitalData.Modules.ZooFlow.Constants
|
||||
Imports DigitalData.Modules.ZooFlow
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.Modules.ZooFlow.Constants
|
||||
|
||||
Public Class frmValidatorSearch
|
||||
<DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)>
|
||||
@@ -43,7 +45,7 @@ Public Class frmValidatorSearch
|
||||
#End Region
|
||||
Public formLoaded As Boolean = False
|
||||
Public _DTDocSearches As DataTable
|
||||
Public _DTSQLSearches As DataTable
|
||||
Public _DTDATASearches As DataTable
|
||||
Private _frmValidator As frmValidator 'You need a reference to Form1
|
||||
Private Shared BW_DocPath As String
|
||||
Private Shared BW_DocID As Integer
|
||||
@@ -51,6 +53,8 @@ Public Class frmValidatorSearch
|
||||
Private Documentloader As Loader
|
||||
Private Property OperationMode As OperationMode
|
||||
Private ReadOnly Environment As Environment
|
||||
Private _documentPathHandler As DocumentPathHandler
|
||||
Private _suppressTabEvents As Boolean = False
|
||||
|
||||
Public Sub New(pfrmValidator As frmValidator, pEnvironment As Environment)
|
||||
|
||||
@@ -79,52 +83,354 @@ Public Class frmValidatorSearch
|
||||
End Function
|
||||
Public Sub TabPreload(TabCountSQL As Integer, TabCountDoc As Integer, DTSQL As DataTable, DTDOC As DataTable)
|
||||
Try
|
||||
SplitContainerSearches.Panel1Collapsed = IIf(DTSQL.Rows.Count > 0, False, True)
|
||||
SplitContainerSearches.Panel2Collapsed = IIf(DTDOC.Rows.Count > 0, False, True)
|
||||
If Me.InvokeRequired() Then
|
||||
Me.Invoke(Sub() TabPreload(TabCountSQL, TabCountDoc, DTSQL, DTDOC))
|
||||
Else
|
||||
'#### SQL Tabs Design Laden
|
||||
|
||||
If DTSQL.Rows.Count > 0 Then
|
||||
LOGGER.Debug(String.Format("[{0} SQL-Definitions]", DTSQL.Rows.Count))
|
||||
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
|
||||
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
|
||||
XtraTabControlSQL.TabPages(p).PageVisible = False
|
||||
End If
|
||||
Next
|
||||
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
|
||||
If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then
|
||||
Exit For
|
||||
End If
|
||||
XtraTabControlSQL.TabPages(p).Text = DTSQL.Rows(p).Item("TAB_TITLE")
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
If DTDOC.Rows.Count > 0 Then
|
||||
LOGGER.Debug(String.Format("[{0} Doc-Definitions]", DTDOC.Rows.Count))
|
||||
'#### Doc Tabs Design Laden
|
||||
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
|
||||
If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then
|
||||
XtraTabControlDocs.TabPages(p).PageVisible = False
|
||||
End If
|
||||
Next
|
||||
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
|
||||
If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then
|
||||
Exit For
|
||||
End If
|
||||
XtraTabControlDocs.TabPages(p).Text = DTDOC.Rows(p).Item("TAB_TITLE")
|
||||
Next
|
||||
|
||||
End If
|
||||
|
||||
LOGGER.Debug("=== TabPreload START ===")
|
||||
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
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
|
||||
' Thread-Synchronisation
|
||||
If Me.InvokeRequired() Then
|
||||
LOGGER.Debug("InvokeRequired=True, rufe auf UI-Thread auf")
|
||||
Me.Invoke(Sub() TabPreload(TabCountSQL, TabCountDoc, DTSQL, DTDOC))
|
||||
Return
|
||||
End If
|
||||
|
||||
LOGGER.Debug("Ausführung auf UI-Thread")
|
||||
|
||||
' ============================================================
|
||||
' WICHTIG: Variablen VOR Try-Block deklarieren
|
||||
' ============================================================
|
||||
Dim hasSQLData As Boolean = False
|
||||
Dim hasDocData As Boolean = False
|
||||
Dim actualSQLTabCount As Integer = 0
|
||||
Dim actualDocTabCount As Integer = 0
|
||||
|
||||
' ============================================================
|
||||
' KRITISCH: Events DEAKTIVIEREN während der Rekonfiguration
|
||||
' ============================================================
|
||||
_suppressTabEvents = True
|
||||
LOGGER.Debug("🚫 Tab-Events deaktiviert")
|
||||
|
||||
Try
|
||||
' KRITISCH: DataTables SOFORT zuweisen
|
||||
_DTDATASearches = DTSQL
|
||||
_DTDocSearches = DTDOC
|
||||
LOGGER.Debug($"✓ _DTDATASearches und _DTDocSearches zugewiesen: SQL={_DTDATASearches.Rows.Count}, Doc={_DTDocSearches.Rows.Count}")
|
||||
|
||||
' TabCount-Validierung
|
||||
actualSQLTabCount = Math.Min(TabCountSQL, DTSQL.Rows.Count)
|
||||
actualDocTabCount = Math.Min(TabCountDoc, DTDOC.Rows.Count)
|
||||
|
||||
If actualSQLTabCount <> TabCountSQL Then
|
||||
LOGGER.Warn($"⚠️ TabCountSQL korrigiert: {TabCountSQL} → {actualSQLTabCount}")
|
||||
End If
|
||||
If actualDocTabCount <> TabCountDoc Then
|
||||
LOGGER.Warn($"⚠️ TabCountDoc korrigiert: {TabCountDoc} → {actualDocTabCount}")
|
||||
End If
|
||||
|
||||
' Panel-Sichtbarkeit
|
||||
hasSQLData = DTSQL.Rows.Count > 0 AndAlso actualSQLTabCount > 0
|
||||
hasDocData = DTDOC.Rows.Count > 0 AndAlso actualDocTabCount > 0
|
||||
|
||||
SplitContainerSearches.Panel1Collapsed = Not hasSQLData
|
||||
SplitContainerSearches.Panel2Collapsed = Not hasDocData
|
||||
|
||||
LOGGER.Debug($"Panel1Collapsed (SQL)={SplitContainerSearches.Panel1Collapsed}, Panel2Collapsed (Doc)={SplitContainerSearches.Panel2Collapsed}")
|
||||
|
||||
' ============================================================
|
||||
' KRITISCH: DocumentViewer nur bei Doc-Searches sichtbar
|
||||
' ============================================================
|
||||
If hasDocData Then
|
||||
If Not DocumentViewer1.Visible Then
|
||||
DocumentViewer1.Visible = True
|
||||
LOGGER.Debug("✓ DocumentViewer1 sichtbar gemacht (Doc-Searches vorhanden)")
|
||||
End If
|
||||
Else
|
||||
If DocumentViewer1.Visible Then
|
||||
DocumentViewer1.Visible = False
|
||||
LOGGER.Debug("✓ DocumentViewer1 ausgeblendet (keine Doc-Searches)")
|
||||
End If
|
||||
End If
|
||||
|
||||
' #### SQL Tabs konfigurieren
|
||||
If hasSQLData Then
|
||||
LOGGER.Debug($"Konfiguriere SQL-Tabs: {DTSQL.Rows.Count} Definitionen")
|
||||
|
||||
' ALLE Tabs unsichtbar machen
|
||||
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
|
||||
XtraTabControlSQL.TabPages(p).PageVisible = False
|
||||
Next
|
||||
LOGGER.Debug($"Alle {XtraTabControlSQL.TabPages.Count} SQL-Tabs auf PageVisible=False gesetzt")
|
||||
|
||||
' Nur benötigte Tabs sichtbar machen
|
||||
Dim processedTabs As Integer = 0
|
||||
For p As Integer = 0 To Math.Min(actualSQLTabCount - 1, XtraTabControlSQL.TabPages.Count - 1)
|
||||
If p < DTSQL.Rows.Count Then
|
||||
Try
|
||||
Dim tabTitle As String = If(DTSQL.Rows(p).Item("TAB_TITLE")?.ToString(), $"Tab {p + 1}")
|
||||
XtraTabControlSQL.TabPages(p).Text = tabTitle
|
||||
XtraTabControlSQL.TabPages(p).PageVisible = True
|
||||
processedTabs += 1
|
||||
LOGGER.Debug($"SQL-Tab {p}: Text='{tabTitle}', PageVisible=True")
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"❌ Fehler beim Konfigurieren von SQL-Tab {p}", ex)
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
|
||||
LOGGER.Info($"✓ {processedTabs} SQL-Tabs konfiguriert")
|
||||
Else
|
||||
LOGGER.Debug("Keine SQL-Daten, alle Tabs ausblenden")
|
||||
For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
|
||||
XtraTabControlSQL.TabPages(p).PageVisible = False
|
||||
Next
|
||||
End If
|
||||
|
||||
' #### Doc Tabs konfigurieren
|
||||
If hasDocData Then
|
||||
LOGGER.Debug($"Konfiguriere Doc-Tabs: {DTDOC.Rows.Count} Definitionen")
|
||||
|
||||
' ALLE Tabs unsichtbar machen
|
||||
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
|
||||
XtraTabControlDocs.TabPages(p).PageVisible = False
|
||||
Next
|
||||
LOGGER.Debug($"Alle {XtraTabControlDocs.TabPages.Count} Doc-Tabs auf PageVisible=False gesetzt")
|
||||
|
||||
' Nur benötigte Tabs sichtbar machen
|
||||
Dim processedTabs As Integer = 0
|
||||
For p As Integer = 0 To Math.Min(actualDocTabCount - 1, XtraTabControlDocs.TabPages.Count - 1)
|
||||
If p < DTDOC.Rows.Count Then
|
||||
Try
|
||||
Dim tabTitle As String = If(DTDOC.Rows(p).Item("TAB_TITLE")?.ToString(), $"Tab {p + 1}")
|
||||
XtraTabControlDocs.TabPages(p).Text = tabTitle
|
||||
XtraTabControlDocs.TabPages(p).PageVisible = True
|
||||
processedTabs += 1
|
||||
LOGGER.Debug($"Doc-Tab {p}: Text='{tabTitle}', PageVisible=True")
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"❌ Fehler beim Konfigurieren von Doc-Tab {p}", ex)
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
|
||||
LOGGER.Info($"✓ {processedTabs} Doc-Tabs konfiguriert")
|
||||
Else
|
||||
LOGGER.Debug("Keine Doc-Daten, alle Tabs ausblenden")
|
||||
For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
|
||||
XtraTabControlDocs.TabPages(p).PageVisible = False
|
||||
Next
|
||||
End If
|
||||
|
||||
Finally
|
||||
' ============================================================
|
||||
' KRITISCH: Events REAKTIVIEREN nach Rekonfiguration
|
||||
' ============================================================
|
||||
_suppressTabEvents = False
|
||||
LOGGER.Debug("✓ Tab-Events reaktiviert")
|
||||
End Try
|
||||
|
||||
' JETZT manuell den ersten sichtbaren Tab aktivieren
|
||||
' ERSETZE im unteren Teil von TabPreload den SQL-Block:
|
||||
If hasSQLData AndAlso XtraTabControlSQL.TabPages.Count > 0 Then
|
||||
Dim firstVisibleSqlIndex As Integer = -1
|
||||
For i As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1
|
||||
If XtraTabControlSQL.TabPages(i).PageVisible Then
|
||||
firstVisibleSqlIndex = i
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If firstVisibleSqlIndex >= 0 AndAlso _DTDATASearches IsNot Nothing AndAlso firstVisibleSqlIndex < _DTDATASearches.Rows.Count Then
|
||||
LOGGER.Debug($"Setze SQL SelectedTabPageIndex manuell auf {firstVisibleSqlIndex}")
|
||||
|
||||
Dim prevSuppress As Boolean = _suppressTabEvents
|
||||
_suppressTabEvents = True
|
||||
XtraTabControlSQL.SelectedTabPageIndex = firstVisibleSqlIndex
|
||||
_suppressTabEvents = prevSuppress
|
||||
|
||||
Try
|
||||
Dim selectedRow As DataRow = _DTDATASearches.Rows(firstVisibleSqlIndex)
|
||||
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
|
||||
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
|
||||
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {firstVisibleSqlIndex}")
|
||||
|
||||
If Not String.IsNullOrEmpty(oCommand) Then
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
LOGGER.Debug($"SQL-Tab {firstVisibleSqlIndex}: erzwungener Initial-Refresh")
|
||||
RefreshTabSQL(oConID, oCommand, firstVisibleSqlIndex, oTabCaption)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error("❌ Fehler beim SQL-Initial-Refresh in TabPreload", ex)
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
|
||||
' ERSETZE im unteren Teil von TabPreload den Doc-Block:
|
||||
If hasDocData AndAlso XtraTabControlDocs.TabPages.Count > 0 Then
|
||||
Dim firstVisibleDocIndex As Integer = -1
|
||||
For i As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1
|
||||
If XtraTabControlDocs.TabPages(i).PageVisible Then
|
||||
firstVisibleDocIndex = i
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If firstVisibleDocIndex >= 0 AndAlso _DTDocSearches IsNot Nothing AndAlso firstVisibleDocIndex < _DTDocSearches.Rows.Count Then
|
||||
LOGGER.Debug($"Setze Doc SelectedTabPageIndex manuell auf {firstVisibleDocIndex}")
|
||||
|
||||
Dim prevSuppress As Boolean = _suppressTabEvents
|
||||
_suppressTabEvents = True
|
||||
XtraTabControlDocs.SelectedTabPageIndex = firstVisibleDocIndex
|
||||
_suppressTabEvents = prevSuppress
|
||||
|
||||
Try
|
||||
Dim selectedRow As DataRow = _DTDocSearches.Rows(firstVisibleDocIndex)
|
||||
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
|
||||
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
|
||||
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {firstVisibleDocIndex}")
|
||||
|
||||
If Not String.IsNullOrEmpty(oCommand) Then
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
LOGGER.Debug($"Doc-Tab {firstVisibleDocIndex}: erzwungener Initial-Refresh")
|
||||
RefreshTabDoc(oConID, oCommand, firstVisibleDocIndex, oTabCaption)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error("❌ Fehler beim Doc-Initial-Refresh in TabPreload", ex)
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
|
||||
LOGGER.Debug("=== TabPreload END ===")
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error("❌ Fehler in TabPreload", ex)
|
||||
LOGGER.Error($"Stack Trace: {ex.StackTrace}")
|
||||
_suppressTabEvents = False ' Sicherstellung
|
||||
|
||||
Try
|
||||
SplitContainerSearches.Panel1Collapsed = True
|
||||
SplitContainerSearches.Panel2Collapsed = True
|
||||
DocumentViewer1.Visible = False
|
||||
Catch collapseEx As Exception
|
||||
LOGGER.Error("❌ Fehler beim Kollabieren der Panels", collapseEx)
|
||||
End Try
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub XtraTabControlSQL_SelectedPageChanged(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlSQL.SelectedPageChanged
|
||||
Try
|
||||
' KRITISCH: Event unterdrücken während TabPreload läuft
|
||||
If _suppressTabEvents Then
|
||||
LOGGER.Debug($"🚫 XtraTabControlSQL_SelectedPageChanged unterdrückt (SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex})")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"=== XtraTabControlSQL_SelectedPageChanged START - SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex} ===")
|
||||
|
||||
If _DTDATASearches Is Nothing Then
|
||||
LOGGER.Warn("⚠️ _DTDATASearches ist Nothing - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
If XtraTabControlSQL.SelectedTabPageIndex >= 0 AndAlso
|
||||
Not XtraTabControlSQL.TabPages(XtraTabControlSQL.SelectedTabPageIndex).PageVisible Then
|
||||
LOGGER.Debug("SQL-Tab ist nicht sichtbar - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If XtraTabControlSQL.SelectedTabPageIndex >= _DTDATASearches.Rows.Count Then
|
||||
LOGGER.Error($"❌ SelectedTabPageIndex ({XtraTabControlSQL.SelectedTabPageIndex}) >= _DTDATASearches.Rows.Count ({_DTDATASearches.Rows.Count}) - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim selectedRow As DataRow = _DTDATASearches.Rows(XtraTabControlSQL.SelectedTabPageIndex)
|
||||
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
|
||||
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
|
||||
Dim oTabIndex As Integer = XtraTabControlSQL.SelectedTabPageIndex
|
||||
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {oTabIndex}")
|
||||
|
||||
LOGGER.Debug($"Tab-Info: '{oTabCaption}', ConID={oConID}, TabIndex={oTabIndex}")
|
||||
|
||||
If String.IsNullOrEmpty(oCommand) Then
|
||||
LOGGER.Warn($"⚠️ SQL_COMMAND ist leer für Tab '{oTabCaption}' - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
LOGGER.Debug($"SQL ersetzt, Länge={oCommand.Length} Zeichen")
|
||||
|
||||
' ============================================================
|
||||
' KRITISCH: RefreshTabSQL aufrufen!
|
||||
' ============================================================
|
||||
LOGGER.Debug($"Rufe RefreshTabSQL auf für Tab '{oTabCaption}'")
|
||||
RefreshTabSQL(oConID, oCommand, oTabIndex, oTabCaption)
|
||||
|
||||
LOGGER.Debug("=== XtraTabControlSQL_SelectedPageChanged END ===")
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error("❌ Fehler in XtraTabControlSQL_SelectedPageChanged", ex)
|
||||
LOGGER.Error($"Details: SelectedTabPageIndex={XtraTabControlSQL.SelectedTabPageIndex}, _DTDATASearches.Rows.Count={If(_DTDATASearches?.Rows.Count, 0)}")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub XtraTabControlDocs_SelectedPageChanged_1(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlDocs.SelectedPageChanged
|
||||
Try
|
||||
' KRITISCH: Event unterdrücken während TabPreload läuft
|
||||
If _suppressTabEvents Then
|
||||
LOGGER.Debug($"🚫 XtraTabControlDocs_SelectedPageChanged unterdrückt (SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex})")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"=== XtraTabControlDocs_SelectedPageChanged START - SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex} ===")
|
||||
|
||||
If _DTDocSearches Is Nothing Then
|
||||
LOGGER.Warn("⚠️ _DTDocSearches ist Nothing - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If XtraTabControlDocs.SelectedTabPageIndex < 0 Then
|
||||
LOGGER.Debug("SelectedTabPageIndex < 0 - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If XtraTabControlDocs.SelectedTabPageIndex >= _DTDocSearches.Rows.Count Then
|
||||
LOGGER.Error($"❌ SelectedTabPageIndex ({XtraTabControlDocs.SelectedTabPageIndex}) >= _DTDocSearches.Rows.Count ({_DTDocSearches.Rows.Count}) - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim selectedRow As DataRow = _DTDocSearches.Rows(XtraTabControlDocs.SelectedTabPageIndex)
|
||||
Dim oConID As Integer = If(IsDBNull(selectedRow.Item("CONN_ID")), 1, CInt(selectedRow.Item("CONN_ID")))
|
||||
Dim oCommand As String = selectedRow.Item("SQL_COMMAND")?.ToString()
|
||||
Dim oTabIndex As Integer = XtraTabControlDocs.SelectedTabPageIndex
|
||||
Dim oTabCaption As String = If(selectedRow.Item("TAB_TITLE")?.ToString(), $"Tab {oTabIndex}")
|
||||
|
||||
LOGGER.Debug($"Tab-Info: '{oTabCaption}', ConID={oConID}, TabIndex={oTabIndex}")
|
||||
|
||||
If String.IsNullOrEmpty(oCommand) Then
|
||||
LOGGER.Warn($"⚠️ SQL_COMMAND ist leer für Tab '{oTabCaption}' - Exit Sub")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
LOGGER.Debug($"SQL ersetzt, Länge={oCommand.Length} Zeichen")
|
||||
|
||||
' ============================================================
|
||||
' KRITISCH: RefreshTabDoc aufrufen!
|
||||
' ============================================================
|
||||
LOGGER.Debug($"Rufe RefreshTabDoc auf für Tab '{oTabCaption}'")
|
||||
RefreshTabDoc(oConID, oCommand, oTabIndex, oTabCaption)
|
||||
|
||||
LOGGER.Debug("=== XtraTabControlDocs_SelectedPageChanged END ===")
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error("❌ Fehler in XtraTabControlDocs_SelectedPageChanged", ex)
|
||||
LOGGER.Error($"Details: SelectedTabPageIndex={XtraTabControlDocs.SelectedTabPageIndex}, _DTDocSearches.Rows.Count={If(_DTDocSearches?.Rows.Count, 0)}")
|
||||
End Try
|
||||
End Sub
|
||||
Public Sub RefreshTabSQL(ConID As Integer, SQLCommand As String, TabIndex As Integer, TabCaption As String)
|
||||
If Me.InvokeRequired() Then
|
||||
@@ -237,28 +543,31 @@ Public Class frmValidatorSearch
|
||||
myGridview = GridViewDocSearch5
|
||||
End Select
|
||||
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 {
|
||||
.ConnectionId = ConID
|
||||
})
|
||||
.ConnectionId = ConID
|
||||
})
|
||||
|
||||
If Not IsNothing(oDatatable) Then
|
||||
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)
|
||||
|
||||
Dim oxmlPath As String = ""
|
||||
oxmlPath = Get_DocGrid_Layout_Filename(XtraTabControlDocs.SelectedTabPageIndex)
|
||||
|
||||
@@ -463,7 +772,8 @@ Public Class frmValidatorSearch
|
||||
If My.Settings.frmValSearchSplitterDistance > 20 Then
|
||||
SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance
|
||||
End If
|
||||
|
||||
' DocumentPathHandler initialisieren
|
||||
_documentPathHandler = New DocumentPathHandler(LOGCONFIG)
|
||||
|
||||
ToolStripDropDownButtonFile.Visible = False
|
||||
End Sub
|
||||
@@ -520,24 +830,7 @@ Public Class frmValidatorSearch
|
||||
formLoaded = True
|
||||
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
|
||||
Show_File_Properties()
|
||||
@@ -566,86 +859,126 @@ Public Class frmValidatorSearch
|
||||
Next
|
||||
End Sub
|
||||
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()
|
||||
clsWMDocGrid.ActiveDocGrid = myGrid
|
||||
clsWMDocGrid.ActiveDocGrid.EndSelection()
|
||||
clsWMDocGrid.GetDocItems()
|
||||
|
||||
If ToolStripDropDownButtonFile.Visible = False Then
|
||||
ToolStripDropDownButtonFile.Visible = True
|
||||
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
|
||||
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
|
||||
If clsWMDocGrid.SELECTED_DOC_ID = 0 Then
|
||||
tslblDocID.Text = "DocRow not selected"
|
||||
ToolStripDropDownButtonFile.Enabled = False
|
||||
Return
|
||||
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
|
||||
LOGGER.Error(ex)
|
||||
Finally
|
||||
Try
|
||||
myGrid.HideLoadingPanel()
|
||||
Catch
|
||||
End Try
|
||||
End Try
|
||||
myGrid.HideLoadingPanel()
|
||||
End Sub
|
||||
Private Sub GridViewDocSearch1_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewDocSearch1.FocusedRowChanged
|
||||
Refresh_DocID(GridViewDocSearch1)
|
||||
Private Sub GridViewDocSearch_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch1.FocusedRowChanged,
|
||||
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
|
||||
|
||||
Private Sub GridViewDocSearch2_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch2.FocusedRowChanged
|
||||
Refresh_DocID(GridViewDocSearch2)
|
||||
End Sub
|
||||
Private Sub GridViewDocSearch3_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDocSearch3.FocusedRowChanged
|
||||
Refresh_DocID(GridViewDocSearch3)
|
||||
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 GridViewDocSearch_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch1.FocusedColumnChanged,
|
||||
GridViewDocSearch2.FocusedColumnChanged,
|
||||
GridViewDocSearch3.FocusedColumnChanged,
|
||||
GridViewDocSearch4.FocusedColumnChanged,
|
||||
GridViewDocSearch5.FocusedColumnChanged
|
||||
|
||||
Private Sub GridViewDocSearch1_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch1.FocusedColumnChanged
|
||||
Refresh_DocID(GridViewDocSearch1)
|
||||
End Sub
|
||||
If Not Me.Visible Then
|
||||
Return
|
||||
End If
|
||||
|
||||
Private Sub GridViewDocSearch2_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch2.FocusedColumnChanged
|
||||
Refresh_DocID(GridViewDocSearch2)
|
||||
End Sub
|
||||
Private Sub GridViewDocSearch3_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch3.FocusedColumnChanged
|
||||
Refresh_DocID(GridViewDocSearch3)
|
||||
End Sub
|
||||
Private Sub GridViewDocSearch4_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch4.FocusedColumnChanged
|
||||
Refresh_DocID(GridViewDocSearch4)
|
||||
End Sub
|
||||
Private Sub GridViewDocSearch5_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDocSearch5.FocusedColumnChanged
|
||||
Refresh_DocID(GridViewDocSearch5)
|
||||
Dim activeGrid As GridView = TryCast(sender, GridView)
|
||||
If activeGrid Is Nothing Then
|
||||
Return
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"FocusedColumnChanged ausgelöst: [{activeGrid.Name}]")
|
||||
Refresh_DocID(activeGrid)
|
||||
End Sub
|
||||
|
||||
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
|
||||
@@ -741,14 +1074,16 @@ Public Class frmValidatorSearch
|
||||
|
||||
End Sub
|
||||
Private Sub ToolStripButtonRefreshSearches_Click(sender As Object, e As EventArgs) Handles ToolStripButtonRefreshSearches.Click
|
||||
If BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count > 0 Then
|
||||
LOGGER.Debug($"There are [{BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows.Count}] SQLSearches configured!")
|
||||
_DTSQLSearches = BASEDATA_DT_PROFILE_SEARCHES_SQL
|
||||
Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("CONN_ID")
|
||||
Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(0).Item("SQL_COMMAND")
|
||||
If DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count > 0 Then
|
||||
LOGGER.Debug($"There are [{DT_FILTERED_PROFILE_SEARCHES_DATA.Rows.Count}] DATASearches configured!")
|
||||
_DTDATASearches = DT_FILTERED_PROFILE_SEARCHES_DATA
|
||||
Dim oConID = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("CONN_ID")
|
||||
Dim oCommand = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(0).Item("SQL_COMMAND")
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
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
|
||||
If DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count > 0 Then
|
||||
LOGGER.Debug($"There are [{DT_FILTERED_PROFILE_SEARCHES_DOC.Rows.Count}] DocSearches configured!")
|
||||
@@ -758,6 +1093,8 @@ Public Class frmValidatorSearch
|
||||
oCommand = clsPatterns.ReplaceAllValues(oCommand, _frmValidator.PanelValidatorControl, True)
|
||||
XtraTabControlDocs.SelectedTabPageIndex = 0
|
||||
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 Sub
|
||||
|
||||
@@ -802,48 +1139,57 @@ Public Class frmValidatorSearch
|
||||
End Sub
|
||||
Sub ReLoad_Active_SQLTab()
|
||||
Dim oTabIndex = XtraTabControlSQL.SelectedTabPageIndex
|
||||
Dim oConID = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("CONN_ID")
|
||||
Dim oCommand = BASEDATA_DT_PROFILE_SEARCHES_SQL.Rows(oTabIndex).Item("SQL_COMMAND")
|
||||
Dim oConID = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(oTabIndex).Item("CONN_ID")
|
||||
Dim oCommand = DT_FILTERED_PROFILE_SEARCHES_DATA.Rows(oTabIndex).Item("SQL_COMMAND")
|
||||
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
|
||||
|
||||
Private Sub GridControlDocSearch1_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch1.DoubleClick
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch1)
|
||||
FileShow()
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch2_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch2.DoubleClick
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch2)
|
||||
FileShow()
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch3_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch3.DoubleClick
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch3)
|
||||
FileShow()
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch4_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch4.DoubleClick
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch4)
|
||||
FileShow()
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch5_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch5.DoubleClick
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch5)
|
||||
FileShow()
|
||||
End Sub
|
||||
|
||||
Private Sub GridControlDocSearch1_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch1.Click
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch1)
|
||||
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch2_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch2.Click
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch2)
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch3_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch3.Click
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch3)
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch4_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch4.Click
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch4)
|
||||
End Sub
|
||||
Private Sub GridControlDocSearch5_Click(sender As Object, e As EventArgs) Handles GridControlDocSearch5.Click
|
||||
|
||||
If Not Me.Visible Then Return
|
||||
Refresh_DocID(GridViewDocSearch5)
|
||||
End Sub
|
||||
|
||||
|
||||
1
app/TaskFlow/logtaskflow.txt
Normal file
1
app/TaskFlow/logtaskflow.txt
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
<package id="DocumentFormat.OpenXml.Framework" version="3.2.0" targetFramework="net462" />
|
||||
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
|
||||
<package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net462" />
|
||||
<package id="GdPicture" version="14.3.3" targetFramework="net462" />
|
||||
<package id="GdPicture.runtimes.windows" version="14.3.3" targetFramework="net462" />
|
||||
<package id="GdPicture" version="14.4.4" targetFramework="net462" />
|
||||
<package id="GdPicture.runtimes.windows" version="14.4.4" 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.Bcl.AsyncInterfaces" version="9.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.Cryptography" version="9.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="10.0.5" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.Cryptography" version="10.0.5" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.HashCode" version="6.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Identity.Client" version="4.55.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Abstractions" version="6.22.0" targetFramework="net462" />
|
||||
@@ -18,27 +19,27 @@
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net462" />
|
||||
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
||||
<package id="OpenMcdf" version="2.4.1" targetFramework="net462" />
|
||||
<package id="OpenMcdf" version="3.1.4" 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.Core" version="3.2.46" targetFramework="net462" />
|
||||
<package id="RtfPipe" version="2.0.7677.4303" targetFramework="net462" />
|
||||
<package id="S22.Imap" version="3.6.0.0" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.6.1" targetFramework="net462" />
|
||||
<package id="System.CodeDom" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Collections.Immutable" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Collections.Immutable" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Data.Odbc" version="6.0.1" targetFramework="net462" />
|
||||
<package id="System.Formats.Asn1" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.IO.Packaging" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Formats.Asn1" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.IO.Packaging" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Management" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Pkcs" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Text.Encodings.Web" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Text.Json" version="9.0.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Channels" version="8.0.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.6.3" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.6.1" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.2" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Pkcs" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Text.Encodings.Web" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Text.Json" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Threading.Channels" version="10.0.5" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.6.3" targetFramework="net462" />
|
||||
<package id="System.ValueTuple" version="4.6.1" targetFramework="net462" />
|
||||
</packages>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -151,9 +151,9 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<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>
|
||||
<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 Include="DigitalData.Controls.LookupGrid">
|
||||
<HintPath>..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
|
||||
@@ -227,84 +227,71 @@
|
||||
<Reference Include="FormsUtils">
|
||||
<HintPath>M:\Bibliotheken\3rdParty\FormsUtils.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.CAD, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Common, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Document, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Email, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.HTML, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
|
||||
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.Markdown, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.Markdown.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.PDF, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="GdPicture.NET.14.RTF, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.SVG, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="Google.Protobuf, Version=3.33.2.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
|
||||
@@ -329,11 +316,14 @@
|
||||
<Reference Include="Mail">
|
||||
<HintPath>M:\Bibliotheken\3rdParty\Limilabs\Mail.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.10.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.Cryptography.9.0.0\lib\net462\Microsoft.Bcl.Cryptography.dll</HintPath>
|
||||
<Reference Include="Microsoft.Bcl.Cryptography, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.Cryptography.10.0.5\lib\net462\Microsoft.Bcl.Cryptography.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.HashCode, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.HashCode.6.0.0\lib\net462\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.55.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
@@ -342,6 +332,15 @@
|
||||
<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>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Exceptions, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Exceptions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Settings, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Settings.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NativeSDK.Settings.Edition, Version=14.4.4.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\GdPicture.14.4.4\lib\net462\NativeSDK.Settings.Edition.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
</Reference>
|
||||
@@ -351,8 +350,8 @@
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<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>
|
||||
<Reference Include="OpenMcdf, Version=3.1.4.0, Culture=neutral, PublicKeyToken=fdbb1629d7c00800, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\OpenMcdf.3.1.4\lib\netstandard2.0\OpenMcdf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Oracle.ManagedDataAccess.21.15.0\lib\net462\Oracle.ManagedDataAccess.dll</HintPath>
|
||||
@@ -367,14 +366,14 @@
|
||||
<HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<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>
|
||||
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.CodeDom.9.0.0\lib\net462\System.CodeDom.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.9.0.0\lib\net462\System.Collections.Immutable.dll</HintPath>
|
||||
<Reference Include="System.Collections.Immutable, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.10.0.5\lib\net462\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
@@ -389,53 +388,53 @@
|
||||
<Reference Include="System.DirectoryServices" />
|
||||
<Reference Include="System.DirectoryServices.AccountManagement" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Formats.Asn1.9.0.0\lib\net462\System.Formats.Asn1.dll</HintPath>
|
||||
<Reference Include="System.Formats.Asn1, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Formats.Asn1.10.0.5\lib\net462\System.Formats.Asn1.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Packaging.9.0.0\lib\net462\System.IO.Packaging.dll</HintPath>
|
||||
<Reference Include="System.IO.Packaging, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Packaging.10.0.5\lib\net462\System.IO.Packaging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
<Reference Include="System.IO.Pipelines, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.10.0.5\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Memory, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll</HintPath>
|
||||
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Net.Http.Formatting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.6.0.0\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Pkcs.9.0.0\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
|
||||
<Reference Include="System.Security.Cryptography.Pkcs, Version=10.0.0.5, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Pkcs.10.0.5\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
<Reference Include="System.Text.Encodings.Web, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.10.0.5\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll</HintPath>
|
||||
<Reference Include="System.Text.Json, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.10.0.5\lib\net462\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Channels, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||
<Reference Include="System.Threading.Channels, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.10.0.5\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||
<Reference Include="System.ValueTuple, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.6.1\lib\net462\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
@@ -1256,7 +1255,7 @@
|
||||
<None Include="Resources\PM_mit_slogan.JPG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="taskFLOW-TEST-Debug.txt" />
|
||||
<Content Include="logtaskflow.txt" />
|
||||
<None Include="Changelog.md" />
|
||||
<Content Include="DataColumnExpression.txt" />
|
||||
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />
|
||||
@@ -1366,10 +1365,10 @@
|
||||
</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.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.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'))" />
|
||||
<Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets'))" />
|
||||
</Target>
|
||||
<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.3\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" />
|
||||
<Import Project="..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.4.4\build\net462\GdPicture.runtimes.windows.targets')" />
|
||||
<!-- 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.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
Reference in New Issue
Block a user