3 Commits

Author SHA1 Message Date
Developer01
55d7e025c9 Normalizing currency for windream 2025-12-16 17:21:18 +01:00
Developer01
2f64dc4b70 Vor Logging erweiterung in Tabelle Row Add 2025-12-12 10:04:53 +01:00
Developer01
17ec4953e5 WIX Aufruf über Link 2025-12-09 10:45:06 +01:00
8 changed files with 1466 additions and 55 deletions

View File

@@ -123,7 +123,6 @@
<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="DDLanguage" Name="DigitalData.Modules.Language.dll" Source="DigitalData.Modules.Language.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"/>
@@ -277,14 +276,13 @@
</RegistryKey>
</RegistryKey>
<util:RemoveFolderEx Id="RemoveApplicationFolder" On="uninstall" Property="APPLICATIONFOLDER" />
<util:RemoveFolderEx Id="RemoveApplicationFolder" On="uninstall" Property="INSTALLDIR" />
</Component>
</DirectoryRef>
<Feature Id="MainApplication" Title="Main Application" Level="1">
<ComponentRef Id="MainApplicationExe" />
<ComponentRef Id="RegistryKeys" />
<!--<ComponentRef Id="ReleaseNotes" />-->
<ComponentRef Id="WindreamLibs" />
<ComponentRef Id="FormsUtilsLibs"/>
<ComponentRef Id="DDLibs" />
@@ -294,6 +292,7 @@
<ComponentRef Id="DevExpressLibs" />
<ComponentRef Id="GDPictureLibs" />
<ComponentRef Id="Devexpress.Locales.de" />
<ComponentRef Id="ProtocolHandlerMachine" />
</Feature>
<Feature Id="DesktopShortcut" Title="Desktop Shortcut">
@@ -305,7 +304,28 @@
<Condition Level="0">DISABLE_STARTMENU_ICON</Condition>
<ComponentRef Id="ApplicationShortcut_StartMenu" />
</Feature>
<!-- #######################-->
<!-- Beginn Aufruf über Link-->
<!-- Per-user ProtocolHandler (HKCU) -->
<Component Id="ProtocolHandlerMachine" Guid="F2817163-DAAA-4EB2-A8D9-A9EF00E910C0" Directory="INSTALLDIR">
<!-- Basis-Schlüssel -->
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Type="string" Value="URL:ddtaskflow Protocol" KeyPath="yes"/>
<RegistryValue Type="string" Name="URL Protocol" Value="" />
</RegistryKey>
<!-- Icon -->
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW\DefaultIcon" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Type="string" Value="[INSTALLDIR]taskFLOW.exe,1" />
</RegistryKey>
<!-- Kommando -->
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW\shell\open\command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Type="string" Value="&quot;[INSTALLDIR]taskFLOW.exe&quot; &quot;%1&quot;" />
</RegistryKey>
</Component>
<!-- Ende Aufruf über Link-->
<!-- #######################-->
<!-- Legt das Standard-Installationsverzeichnis fest-->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
<Property Id="_BrowseProperty" Value="INSTALLDIR" />

View File

@@ -380,6 +380,7 @@ Public Class ClassInit
LOGGER.Debug("User Info:")
LOGGER.Debug("Language: [{0}]", USER_LANGUAGE)
LOGGER.Debug("Username: [{0}]", USER_USERNAME)
LOGGER.Debug("Environment.MachineName: [{0}]", Environment.MachineName)
Try
USER_RIGHT_FILE_DELETE = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL")), False, DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL"))

View File

@@ -343,6 +343,10 @@ Namespace ControlCreator
Private Sub View_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs)
Dim view As GridView = TryCast(sender, GridView)
Dim oFocusedColumn As GridColumn = view.FocusedColumn
If IsNothing(oFocusedColumn) Then
MsgBox("Please focus a column first.", MsgBoxStyle.Information, "No Column focused")
Exit Sub
End If
Dim oColumnType As Type = oFocusedColumn.ColumnType
Dim oColumnName As String = oFocusedColumn.FieldName

View File

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

View File

@@ -77,12 +77,12 @@
<PropertyGroup>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<GdPictureAssemblies Include="$(SolutionDir)lib\GdPicture14*.dll" />
</ItemGroup>
<Target Name="CopyGdPictureDlls" AfterTargets="Build">
<Copy SourceFiles="@(GdPictureAssemblies)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" />
</Target>
<ItemGroup>
<GdPictureAssemblies Include="$(SolutionDir)lib\GdPicture14*.dll" />
</ItemGroup>
<Target Name="CopyGdPictureDlls" AfterTargets="Build">
<Copy SourceFiles="@(GdPictureAssemblies)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" />
</Target>
<ItemGroup>
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
@@ -1036,6 +1036,7 @@
<None Include="FinalIndexDataSet.xss">
<DependentUpon>FinalIndexDataSet.xsd</DependentUpon>
</None>
<None Include="frmValidator.v" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>

View File

View File

@@ -3585,28 +3585,53 @@ Public Class frmValidator
For Each Zeile As Object In oValueFromSource
MyValidationLogger.Debug($"vektorrow Value {Zeile.ToString}...")
oColValuesfromSource = Split(Zeile, PMDelimiter)
Dim oNewRow = oDataSource.NewRow()
MyValidationLogger.Debug("Creating new row..")
For index = 0 To oDTColumnsPerDevExGrid.Rows.Count - 1
MyValidationLogger.Debug("Column Index {0}", index)
If oColValuesfromSource.Length > index Then
MyValidationLogger.Debug("Value: {0}", oColValuesfromSource(index))
oNewRow.Item(index) = oColValuesfromSource(index)
Else
MyValidationLogger.Debug("Value: String.Empty")
oNewRow.Item(index) = String.Empty
End If
Dim rawValue As String = If(index < oColValuesfromSource.Length, oColValuesfromSource(index), String.Empty)
Dim targetColumn As DataColumn = oDataSource.Columns(index)
Dim colName As String = targetColumn.ColumnName
Dim colType As String = targetColumn.DataType.FullName
' Detailliertes Debug vor der Zuweisung
MyValidationLogger.Debug("Grid row assign: RowIdx={0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}], IsEmpty={5}",
oDataSource.Rows.Count, index, colName, colType, rawValue, String.IsNullOrWhiteSpace(rawValue))
Try
If oColValuesfromSource.Length > index Then
oNewRow.Item(index) = oColValuesfromSource(index)
Else
If colType = "System.Double" Or colType = "System.Int32" Or colType = "System.Int64" Then
' Numerische Spalten können nicht mit Empty befüllt werden
oNewRow.Item(index) = 0
Else
oNewRow.Item(index) = String.Empty
End If
End If
Catch ex As Exception
' Ausführliches Logging bei Fehlern inkl. aktuell bekannter Metadaten
MyValidationLogger.Warn("Grid row assign FAILED RowIdx = {0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}]",
oDataSource.Rows.Count, index, colName, colType, rawValue)
MyValidationLogger.Error(ex)
' Optional: weitere Kontexthilfe z.B. ob Spalte DBNull erlaubt
Try
MyValidationLogger.Debug("Column.AllowDBNull={0}, Column.MaxLength={1}", targetColumn.AllowDBNull, targetColumn.MaxLength)
Catch
End Try
' Fehler weiterwerfen, damit ursprüngliches Verhalten erhalten bleibt
Throw
End Try
Next
MyValidationLogger.Debug("Adding row to grid..")
MyValidationLogger.Debug("Adding row To grid..")
oDataSource.Rows.Add(oNewRow)
Next
Else
If oValueType = "System.String" Then
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] with String")
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] With String")
MyValidationLogger.Debug($"oValueFromSource [{oValueFromSource}] - PMDelimiter[{PMDelimiter}]")
oColValuesfromSource = Split(oValueFromSource.ToString, PMDelimiter)
@@ -3615,7 +3640,7 @@ Public Class frmValidator
End If
Dim oRowData As New List(Of Object)
MyValidationLogger.Debug(String.Format("Now creating the rows for DevexpressGrid ..."))
MyValidationLogger.Debug(String.Format("Now creating the rows For DevexpressGrid ..."))
Dim oMSG = ""
Try
For index = 1 To oColValuesfromSource.Length
@@ -3628,9 +3653,9 @@ Public Class frmValidator
oRowData.Add(oConvertedValue)
Next
Catch ex As Exception
MyValidationLogger.Warn(String.Format("Unexpected error while working on IDB Fill GridControl: {0}", oControl.Name))
MyValidationLogger.Warn(String.Format("Unexpected Error While working On IDB Fill GridControl {0}", oControl.Name))
If Not oMSG = String.Empty Then
MyValidationLogger.Warn(String.Format("oMSG: {0}", oMSG))
MyValidationLogger.Warn(String.Format("oMSG {0}", oMSG))
End If
MyValidationLogger.Error(ex)
End Try
@@ -3641,14 +3666,14 @@ Public Class frmValidator
ElseIf oValueType = "System.Data.DataTable" Then
Dim oMyDatatable As DataTable = oValueFromSource
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] with Datatable - Rows: " & oMyDatatable.Rows.Count)
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] With Datatable - Rows " & oMyDatatable.Rows.Count)
For Each oRow As DataRow In oMyDatatable.Rows
Try
MyValidationLogger.Debug($"IDB ROW Vector {oRow.Item(0).ToString}...")
oColValuesfromSource = Split(oRow.Item(0).ToString, PMDelimiter)
If oColValuesfromSource.Length > 8 Then
MyValidationLogger.Warn("Fill Grid with DatatableSplit Error - Max 8 columns can be configured!")
MyValidationLogger.Warn("Fill Grid With DatatableSplit Error - Max 8 columns can be configured!")
End If
MyValidationLogger.Debug($"oColValuesfromSource splitted - Length ({oColValuesfromSource.Length.ToString})")
Dim oRowData As New List(Of Object)
@@ -3656,16 +3681,16 @@ Public Class frmValidator
For index = 1 To oColValuesfromSource.Length
Try
Dim oColumnType = oDTColumnsPerDevExGrid.Rows.Item(index - 1).Item("TYPE_COLUMN")
MyValidationLogger.Debug($"oColumnType of DGView-Column ({oColumnType.ToString})...")
MyValidationLogger.Debug($"oColumnType Of DGView-Column ({oColumnType.ToString})...")
Dim oConvertedValue = ClassFormat.GetConvertedValue(oColValuesfromSource(index - 1), oColumnType)
oRowData.Add(oConvertedValue)
Catch ex As Exception
MyValidationLogger.Warn($"Error while converting/adding Value to oRowData: " & ex.Message)
MyValidationLogger.Warn($"Error While converting/adding Value To oRowData " & ex.Message)
End Try
Next
oDataSource.Rows.Add(oRowData.ToArray())
Catch ex As Exception
MyValidationLogger.Warn($"Error while adding datarow [{oRow.Item(0).ToString}] to Grid: " & ex.Message)
MyValidationLogger.Warn($"Error While adding datarow [{oRow.Item(0).ToString}] To Grid " & ex.Message)
End Try
@@ -3674,7 +3699,7 @@ Public Class frmValidator
End If
Else
MyValidationLogger.Info($"DevExpressGrid: There are no columns configured/listed for control {oControlId}.")
MyValidationLogger.Info($"DevExpressGrid There are no columns configured/listed For control {oControlId}.")
End If
Case Else
@@ -3690,7 +3715,7 @@ Public Class frmValidator
Next
End Select
Else
MyValidationLogger.Warn($"Could not load Devexpress.Grid [{oControl.Name }] as omytype is [{oValueType}]!")
MyValidationLogger.Warn($"Could Not load Devexpress.Grid [{oControl.Name }] As omytype Is [{oValueType}]!")
End If
@@ -3731,10 +3756,10 @@ Public Class frmValidator
End If
Catch ex As Exception
MyValidationLogger.Error(ex)
MyValidationLogger.Info(">> Unexpected error in FillIndexValues(GridControl: " & oMyGridControl.Name & "): " & ex.Message, True)
MyValidationLogger.Info(">> Controltype: " & oControlType)
MyValidationLogger.Info(">> Attributname: " & oIndexName)
errormessage = "Unexpected error in FillIndexValues(Combobox: " & oMyGridControl.Name & "): " & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
MyValidationLogger.Info(">> Unexpected Error In FillIndexValues(GridControl " & oMyGridControl.Name & ") " & ex.Message, True)
MyValidationLogger.Info(">> Controltype " & oControlType)
MyValidationLogger.Info(">> Attributname " & oIndexName)
errormessage = "Unexpected Error In FillIndexValues(Combobox " & oMyGridControl.Name & ") " & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save()
frmError.ShowDialog()
End Try
@@ -3744,15 +3769,15 @@ Public Class frmValidator
MyValidationLogger.Debug("Loading checkbox...")
oControlType = "CheckBox"
If oSourceIndexName = "" Then
MsgBox("Attention wrong configuration:" & vbNewLine & "for control " & oControl.Name & " no INDEX configured!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
MsgBox("Attention wrong configuration" & vbNewLine & "For control " & oControl.Name & " no INDEX configured!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
Exit For
End If
If oSourceIndexName Is Nothing = False Then
Dim myCheckBox As CheckBox = oControl
If oLoadIndex = False Or {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oSourceIndexName) Then
MyValidationLogger.Debug($" oControl {oControl.Name}: Indexwert soll nicht geladen werden.")
If oLoadIndex = False Or {"@@DISPLAY_ONLY", "DD PM-ONLY For DISPLAY"}.Contains(oSourceIndexName) Then
MyValidationLogger.Debug($" oControl {oControl.Name} Indexwert soll nicht geladen werden.")
Exit Select
End If
@@ -3766,7 +3791,7 @@ Public Class frmValidator
MyValidationLogger.Debug($"..Now GetVariableValue({oSourceIndexName})...")
oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride)
Catch ex As Exception
MyValidationLogger.Warn($"Could not get the windreamValue for CheckboxIndex: {oSourceIndexName} [{ex.Message}]")
MyValidationLogger.Warn($"Could Not Get the windreamValue For CheckboxIndex {oSourceIndexName} [{ex.Message}]")
End Try
End If
@@ -3775,19 +3800,19 @@ Public Class frmValidator
If oValueFromSource Is Nothing Then
MyValidationLogger.Info(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Checking defaultvalue")
MyValidationLogger.Debug(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Checking defaultvalue")
If oDefaultValue <> String.Empty Then
MyValidationLogger.Info($"Using Default value [{oDefaultValue}]")
MyValidationLogger.Debug($"Using Default value [{oDefaultValue}]")
myCheckBox.Checked = CBool(oDefaultValue)
Exit Select
Else
MyValidationLogger.Debug("No Default Value for Checkbox - so using false!")
myCheckBox.CheckState = CheckState.Indeterminate
End If
If oDefaultValue <> String.Empty Then
MyValidationLogger.Info($"Using Default value [{oDefaultValue}]")
MyValidationLogger.Debug($"Using Default value [{oDefaultValue}]")
myCheckBox.Checked = CBool(oDefaultValue)
Exit Select
Else
MyValidationLogger.Debug("No Default Value for Checkbox - so using false!")
myCheckBox.CheckState = CheckState.Indeterminate
End If
Else
MyValidationLogger.Debug("oValueFromSource: " & oValueFromSource.ToString)
Else
MyValidationLogger.Debug("oValueFromSource: " & oValueFromSource.ToString)
If oValueFromSource.ToString = "" Then
MyValidationLogger.Info(">> Versuch, default Value zu laden")
If oDefaultValue <> String.Empty Then
@@ -5700,12 +5725,20 @@ Public Class frmValidator
Dim oValueList As New List(Of String)
For Each item As Object In oRow.ItemArray
item = ObjectEx.NotNull(item, String.Empty)
' Convert to string using InvariantCulture, so converting back from string does not screw up values
If TypeOf item IsNot String Then
item = String.Format(CultureInfo.InvariantCulture, "{0}", item)
Dim normalized As Object = ObjectEx.NotNull(item, String.Empty)
If TypeOf normalized Is IFormattable AndAlso Not TypeOf normalized Is String Then
Dim provider As IFormatProvider =
If(TypeOf normalized Is Decimal OrElse
TypeOf normalized Is Double OrElse
TypeOf normalized Is Single,
CultureInfo.CurrentCulture,
CultureInfo.InvariantCulture)
MyValidationLogger.Debug("Normalizing value [{0}]", normalized.ToString)
normalized = DirectCast(normalized, IFormattable).ToString(Nothing, provider)
End If
oValueList.Add(item)
oValueList.Add(normalized)
Next
str = String.Join(PMDelimiter, oValueList.ToArray)

1352
app/TaskFlow/taskFLOW.vbproj Normal file

File diff suppressed because it is too large Load Diff