Compare commits
12 Commits
e086c5db14
...
Release-Sp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb51396952 | ||
|
|
c464f24681 | ||
|
|
969e07eb17 | ||
|
|
7629d54fe1 | ||
|
|
41e46f9dbb | ||
|
|
a192267d96 | ||
|
|
a0d3a487d8 | ||
|
|
54744a0531 | ||
|
|
743ef3fe22 | ||
|
|
25dcfb2061 | ||
|
|
3e34b52c6f | ||
|
|
950aeba89e |
@@ -68,6 +68,18 @@ Public Class ClassControlCreator
|
||||
''' </summary>
|
||||
Public Property GridTables As New Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
|
||||
Public Property GridColumns As New Dictionary(Of Integer, DataTable)
|
||||
Private _globalLookupEventGuard As Boolean = False
|
||||
|
||||
Public Property GlobalLookupEventGuard As Boolean
|
||||
Get
|
||||
Return _globalLookupEventGuard
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
_globalLookupEventGuard = value
|
||||
Logger.Debug($"GlobalLookupEventGuard -> gesetzt auf [{value}]")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Standard Eigenschaften für alle Controls
|
||||
@@ -533,12 +545,11 @@ Public Class ClassControlCreator
|
||||
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)
|
||||
Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables, pcurrencySymbol)
|
||||
Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode)
|
||||
Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid
|
||||
Dim oView As GridView
|
||||
Dim oControlName = oControl.Name
|
||||
|
||||
oControl.ForceInitialize()
|
||||
|
||||
oView = oControl.MainView
|
||||
@@ -635,9 +646,13 @@ Public Class ClassControlCreator
|
||||
End Try
|
||||
End If
|
||||
|
||||
oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl, pcurrencySymbol)
|
||||
' *** KORRIGIERT: ConfigureViewColumns OHNE currencySymbol-Parameter ***
|
||||
oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl)
|
||||
|
||||
' *** NEU: ConfigureViewColumnsCurrency() für editierbare Währungsspalten ***
|
||||
oGridControlCreator.ConfigureViewColumnsCurrency(DT_MY_COLUMNS, oView, oControl)
|
||||
|
||||
oGridControlCreator.ConfigureViewEvents(DT_MY_COLUMNS, oView, oControl, oControlId)
|
||||
' 08.11.2021: Fix editor being empty on first open
|
||||
oView.FocusInvalidRow()
|
||||
|
||||
Return oControl
|
||||
@@ -848,44 +863,239 @@ Public Class ClassControlCreator
|
||||
End Function
|
||||
|
||||
Public Sub GridTables_HandleControlValueChange(pControlPanel As XtraScrollableControl, pColumnsWithSqlAndControlPlaceholders As DataTable)
|
||||
If Not IsNothing(pColumnsWithSqlAndControlPlaceholders) AndAlso pColumnsWithSqlAndControlPlaceholders.Rows.Count > 0 Then
|
||||
For Each oRow As DataRow In pColumnsWithSqlAndControlPlaceholders.Rows
|
||||
If pColumnsWithSqlAndControlPlaceholders Is Nothing OrElse pColumnsWithSqlAndControlPlaceholders.Rows.Count = 0 Then
|
||||
Logger.Debug("No depending controls with SQL statements defined, skipping handling control value change.")
|
||||
Return
|
||||
End If
|
||||
|
||||
' ============================================================================
|
||||
' Schritt 1 - Sichere ALLE Lookup-Werte VOR SQL-Reload
|
||||
' ============================================================================
|
||||
Dim lookupBackups As New Dictionary(Of String, Object)
|
||||
|
||||
For Each oControl As Control In pControlPanel.Controls
|
||||
If TypeOf oControl Is LookupControl3 Then
|
||||
Try
|
||||
Dim oSqlStatement = oRow.ItemEx("SQL_COMMAND", String.Empty)
|
||||
Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", -1)
|
||||
Dim oControlId = oRow.Item("CONTROL_ID")
|
||||
Dim oColumnName = oRow.Item("SPALTENNAME")
|
||||
Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP")
|
||||
|
||||
If oSqlStatement <> String.Empty And oConnectionId > -1 Then
|
||||
oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, pControlPanel, True)
|
||||
|
||||
GridTables_CacheDatatableForColumn(oControlId, oColumnName, oSqlStatement, oConnectionId, oAdvancedLookup)
|
||||
|
||||
|
||||
' === Block to force setting the editor for GridColumns
|
||||
Logger.Debug("Force-setting Editor for all Gridcells..")
|
||||
For Each oControl As Control In pControlPanel.Controls
|
||||
Try
|
||||
Dim oMeta = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata)
|
||||
If oMeta.Guid = oControlId AndAlso TypeOf oControl Is GridControl Then
|
||||
Dim oGrid As GridControl = DirectCast(oControl, GridControl)
|
||||
DirectCast(oGrid.FocusedView, GridView).FocusInvalidRow()
|
||||
Logger.Debug("Force-setting Editor for Grid [{0}]", oGrid.Name)
|
||||
Exit For
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
Next
|
||||
' === End
|
||||
|
||||
Dim lookup = DirectCast(oControl, LookupControl3)
|
||||
' Speichere den aktuellen EditValue (kann einzelner Wert oder Liste sein)
|
||||
If lookup.EditValue IsNot Nothing Then
|
||||
Dim controlName As String = lookup.Name
|
||||
lookupBackups(controlName) = lookup.EditValue
|
||||
Logger.Debug($"GridTables_HandleControlValueChange -> Backup für Lookup [{controlName}]: [{lookup.EditValue}]")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Logger.Info("Unexpected Error in Display SQL result for grid column: " & oRow.Item("CONTROL_ID") & " - ERROR: " & ex.Message)
|
||||
Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Backup von Lookup: {ex.Message}")
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
|
||||
' ============================================================================
|
||||
' Schritt 2 - Verarbeite Grid-Columns mit SQL-Abhängigkeiten
|
||||
' ============================================================================
|
||||
For Each oRow As DataRow In pColumnsWithSqlAndControlPlaceholders.Rows
|
||||
Try
|
||||
Dim oSqlStatement = oRow.ItemEx("SQL_COMMAND", String.Empty)
|
||||
Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", -1)
|
||||
Dim oControlId = oRow.Item("CONTROL_ID")
|
||||
Dim oColumnName = oRow.Item("SPALTENNAME")
|
||||
Dim oAdvancedLookup = oRow.Item("ADVANCED_LOOKUP")
|
||||
|
||||
If oSqlStatement <> String.Empty AndAlso oConnectionId > -1 Then
|
||||
oSqlStatement = clsPatterns.ReplaceAllValues(oSqlStatement, pControlPanel, True)
|
||||
GridTables_CacheDatatableForColumn(oControlId, oColumnName, oSqlStatement, oConnectionId, oAdvancedLookup)
|
||||
|
||||
' Force-setting Editor for GridColumns
|
||||
Logger.Debug("Force-setting Editor for all Gridcells..")
|
||||
For Each oControl As Control In pControlPanel.Controls
|
||||
Try
|
||||
If oControl.Tag IsNot Nothing AndAlso TypeOf oControl.Tag Is ControlMetadata Then
|
||||
Dim oMeta = DirectCast(oControl.Tag, ControlMetadata)
|
||||
If oMeta.Guid = oControlId AndAlso TypeOf oControl Is GridControl Then
|
||||
Dim oGrid As GridControl = DirectCast(oControl, GridControl)
|
||||
If oGrid.FocusedView IsNot Nothing AndAlso TypeOf oGrid.FocusedView Is GridView Then
|
||||
DirectCast(oGrid.FocusedView, GridView).FocusInvalidRow()
|
||||
Logger.Debug($"Force-setting Editor for Grid [{oGrid.Name}]")
|
||||
End If
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Force-setting Editor: {ex.Message}")
|
||||
End Try
|
||||
Next
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Logger.Info($"Unexpected Error in Display SQL result for grid column: {oRow.Item("CONTROL_ID")} - ERROR: {ex.Message}")
|
||||
End Try
|
||||
Next
|
||||
|
||||
' ============================================================================
|
||||
' Schritt 3 - Prüfe und restauriere Lookup-Werte mit SQL-Abhängigkeiten
|
||||
' ============================================================================
|
||||
If lookupBackups.Count > 0 Then
|
||||
Logger.Debug($"GridTables_HandleControlValueChange -> Prüfe {lookupBackups.Count} Lookups auf Wiederherstellung...")
|
||||
|
||||
For Each oControl As Control In pControlPanel.Controls
|
||||
If TypeOf oControl Is LookupControl3 Then
|
||||
Try
|
||||
Dim lookup = DirectCast(oControl, LookupControl3)
|
||||
Dim controlName As String = lookup.Name
|
||||
|
||||
' Wenn wir einen Backup für dieses Lookup haben
|
||||
If lookupBackups.ContainsKey(controlName) Then
|
||||
Dim oldValue = lookupBackups(controlName)
|
||||
|
||||
' Prüfe ob Lookup ein DataSource hat (könnte durch SQL neu geladen worden sein)
|
||||
If lookup.Properties.DataSource IsNot Nothing AndAlso TypeOf lookup.Properties.DataSource Is DataTable Then
|
||||
Dim currentDataSource = DirectCast(lookup.Properties.DataSource, DataTable)
|
||||
|
||||
' Wenn DataSource Rows hat, versuche Werte wiederherzustellen
|
||||
If currentDataSource.Rows.Count > 0 Then
|
||||
RestoreLookupValues(lookup, oldValue, currentDataSource, controlName)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error($"GridTables_HandleControlValueChange -> Fehler beim Prüfen von Lookup: {ex.Message}")
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RestoreLookupValues(lookup As LookupControl3, oldValue As Object,
|
||||
newDataSource As DataTable, controlName As String)
|
||||
If lookup Is Nothing OrElse oldValue Is Nothing OrElse newDataSource Is Nothing Then
|
||||
Logger.Warn($"RestoreLookupValues -> [{controlName}] Ungültige Parameter")
|
||||
Return
|
||||
End If
|
||||
|
||||
Try
|
||||
' Bestimme ValueColumn
|
||||
Dim valueColumn As String = String.Empty
|
||||
If String.IsNullOrEmpty(lookup.Properties.ValueMember) AndAlso newDataSource.Columns.Count > 0 Then
|
||||
valueColumn = newDataSource.Columns(0).ColumnName
|
||||
ElseIf Not String.IsNullOrEmpty(lookup.Properties.ValueMember) Then
|
||||
valueColumn = lookup.Properties.ValueMember
|
||||
Else
|
||||
Logger.Warn($"RestoreLookupValues -> [{controlName}] Keine ValueColumn verfügbar")
|
||||
Return
|
||||
End If
|
||||
|
||||
' Build HashSet für effiziente Suche
|
||||
Dim availableValues As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
|
||||
For Each row As DataRow In newDataSource.Rows
|
||||
If Not IsDBNull(row(valueColumn)) Then
|
||||
availableValues.Add(row(valueColumn).ToString())
|
||||
End If
|
||||
Next
|
||||
|
||||
' Prüfe ob der alte Wert noch in der neuen DataSource existiert
|
||||
Dim validValue As Object = Nothing
|
||||
|
||||
' Behandle verschiedene Datentypen (String, List, Array, etc.)
|
||||
If TypeOf oldValue Is String Then
|
||||
Dim valueStr As String = oldValue.ToString()
|
||||
If availableValues.Contains(valueStr) Then
|
||||
validValue = oldValue
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✓ gefunden")
|
||||
Else
|
||||
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✗ nicht mehr vorhanden")
|
||||
End If
|
||||
ElseIf TypeOf oldValue Is IEnumerable Then
|
||||
' Behandle Listen/Arrays
|
||||
Dim validValues As New List(Of Object)
|
||||
For Each item As Object In DirectCast(oldValue, IEnumerable)
|
||||
If item IsNot Nothing Then
|
||||
Dim itemStr As String = item.ToString()
|
||||
If availableValues.Contains(itemStr) Then
|
||||
validValues.Add(item)
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{itemStr}] ✓ gefunden")
|
||||
Else
|
||||
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{itemStr}] ✗ nicht mehr vorhanden")
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If validValues.Count > 0 Then
|
||||
validValue = validValues
|
||||
End If
|
||||
Else
|
||||
' Fallback für andere Typen
|
||||
Dim valueStr As String = oldValue.ToString()
|
||||
If availableValues.Contains(valueStr) Then
|
||||
validValue = oldValue
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✓ gefunden")
|
||||
Else
|
||||
Logger.Warn($"RestoreLookupValues -> [{controlName}] Wert [{valueStr}] ✗ nicht mehr vorhanden")
|
||||
End If
|
||||
End If
|
||||
|
||||
' Gültige Werte wiederherstellen
|
||||
If validValue IsNot Nothing Then
|
||||
' Event-Guard temporär aktivieren um Endlosschleifen zu vermeiden
|
||||
Dim oldGuard As Boolean = GlobalLookupEventGuard
|
||||
GlobalLookupEventGuard = True
|
||||
|
||||
Try
|
||||
' Prüfe ob bereits korrekt gesetzt
|
||||
Dim currentValue = lookup.EditValue
|
||||
If currentValue IsNot Nothing AndAlso currentValue.Equals(validValue) Then
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] Wert bereits korrekt gesetzt")
|
||||
Return
|
||||
End If
|
||||
|
||||
' Setze den Wert neu
|
||||
lookup.EditValue = Nothing
|
||||
Application.DoEvents()
|
||||
|
||||
lookup.EditValue = validValue
|
||||
lookup.Refresh()
|
||||
Application.DoEvents()
|
||||
|
||||
' Validierung
|
||||
Dim newValue = lookup.EditValue
|
||||
If newValue IsNot Nothing AndAlso newValue.Equals(validValue) Then
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] ✓ erfolgreich wiederhergestellt: [{validValue}]")
|
||||
Else
|
||||
Logger.Error($"RestoreLookupValues -> [{controlName}] ✗ Fehler beim Wiederherstellen! Erwartet: [{validValue}], Ist: [{If(newValue, "NULL")}]")
|
||||
|
||||
' Retry mit BeginUpdate/EndUpdate
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] Versuche alternative Methode mit BeginUpdate...")
|
||||
lookup.Properties.BeginUpdate()
|
||||
Try
|
||||
lookup.EditValue = Nothing
|
||||
Application.DoEvents()
|
||||
lookup.EditValue = validValue
|
||||
Finally
|
||||
lookup.Properties.EndUpdate()
|
||||
End Try
|
||||
|
||||
lookup.Refresh()
|
||||
Application.DoEvents()
|
||||
|
||||
Dim retryValue = lookup.EditValue
|
||||
If retryValue IsNot Nothing AndAlso retryValue.Equals(validValue) Then
|
||||
Logger.Debug($"RestoreLookupValues -> [{controlName}] ✓ Alternative Methode erfolgreich")
|
||||
Else
|
||||
Logger.Error($"RestoreLookupValues -> [{controlName}] ✗ Auch alternative Methode fehlgeschlagen!")
|
||||
End If
|
||||
End If
|
||||
|
||||
Finally
|
||||
' Event-Guard wiederherstellen
|
||||
GlobalLookupEventGuard = oldGuard
|
||||
End Try
|
||||
Else
|
||||
Logger.Info($"RestoreLookupValues -> [{controlName}] Keine gültigen Werte zum Wiederherstellen")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error($"RestoreLookupValues -> Fehler bei [{controlName}]: {ex.Message}")
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@@ -28,6 +28,99 @@ Public Class ClassFormat
|
||||
|
||||
End Select
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Normalisiert einen numerischen String für die invariante Kultur-Konvertierung.
|
||||
''' Entfernt Tausendertrennzeichen und ersetzt Dezimaltrennzeichen durch Punkt.
|
||||
''' </summary>
|
||||
Private Shared Function NormalizeNumericString(pValue As String) As String
|
||||
If String.IsNullOrWhiteSpace(pValue) Then
|
||||
Return pValue
|
||||
End If
|
||||
|
||||
Dim normalized As String = pValue.Trim()
|
||||
|
||||
LOGGER.Debug($"[NormalizeNumericString] Input: [{pValue}]")
|
||||
|
||||
' Entferne Währungssymbole und Leerzeichen
|
||||
normalized = System.Text.RegularExpressions.Regex.Replace(normalized, "[€$£¥\s]", "")
|
||||
|
||||
Dim hasDot As Boolean = normalized.Contains(".")
|
||||
Dim hasComma As Boolean = normalized.Contains(",")
|
||||
|
||||
LOGGER.Debug($"[NormalizeNumericString] After cleanup: [{normalized}], HasDot={hasDot}, HasComma={hasComma}")
|
||||
|
||||
If hasDot AndAlso hasComma Then
|
||||
' Beide vorhanden: Das letzte ist der Dezimaltrenner
|
||||
Dim lastDotPos As Integer = normalized.LastIndexOf(".")
|
||||
Dim lastCommaPos As Integer = normalized.LastIndexOf(",")
|
||||
|
||||
LOGGER.Debug($"[NormalizeNumericString] Both separators found: LastDotPos={lastDotPos}, LastCommaPos={lastCommaPos}")
|
||||
|
||||
If lastDotPos > lastCommaPos Then
|
||||
normalized = normalized.Replace(",", "")
|
||||
Else
|
||||
normalized = normalized.Replace(".", "").Replace(",", ".")
|
||||
End If
|
||||
|
||||
ElseIf hasComma Then
|
||||
Dim commaCount As Integer = normalized.Count(Function(c) c = ","c)
|
||||
LOGGER.Debug($"[NormalizeNumericString] Only comma found: CommaCount={commaCount}")
|
||||
|
||||
If commaCount = 1 Then
|
||||
Dim lastCommaPos As Integer = normalized.LastIndexOf(",")
|
||||
Dim digitsAfterComma As Integer = normalized.Length - lastCommaPos - 1
|
||||
LOGGER.Debug($"[NormalizeNumericString] Single comma: DigitsAfterComma={digitsAfterComma}")
|
||||
|
||||
If digitsAfterComma <= 3 Then
|
||||
normalized = normalized.Replace(",", ".")
|
||||
Else
|
||||
normalized = normalized.Replace(",", "")
|
||||
End If
|
||||
Else
|
||||
normalized = normalized.Replace(",", "")
|
||||
End If
|
||||
|
||||
ElseIf hasDot Then
|
||||
Dim dotCount As Integer = normalized.Count(Function(c) c = "."c)
|
||||
LOGGER.Debug($"[NormalizeNumericString] Only dot found: DotCount={dotCount}")
|
||||
|
||||
If dotCount = 1 Then
|
||||
Dim lastDotPos As Integer = normalized.LastIndexOf(".")
|
||||
Dim digitsAfterDot As Integer = normalized.Length - lastDotPos - 1
|
||||
|
||||
LOGGER.Debug($"[NormalizeNumericString] Single dot: DigitsAfterDot={digitsAfterDot}")
|
||||
|
||||
' ✅ KRITISCHE ÄNDERUNG: Prüfe auch Stellen VOR dem Punkt
|
||||
Dim digitsBeforeDot As Integer = lastDotPos
|
||||
|
||||
' Heuristik: Wenn <= 3 Stellen nach Punkt UND >= 1 Stelle davor → Dezimaltrenner
|
||||
' Wenn > 3 Stellen davor UND <= 3 Stellen nach Punkt → unklar, vermutlich Dezimal
|
||||
' Wenn > 3 Stellen nach Punkt → definitiv KEIN Dezimaltrenner
|
||||
|
||||
If digitsAfterDot > 3 Then
|
||||
LOGGER.Warn($"⚠️ [NormalizeNumericString] Dot with {digitsAfterDot} digits after → treating as THOUSAND separator!")
|
||||
normalized = normalized.Replace(".", "")
|
||||
ElseIf digitsAfterDot >= 1 AndAlso digitsAfterDot <= 3 Then
|
||||
' Wahrscheinlich Dezimaltrenner (z.B. 5464.17 oder 120.5)
|
||||
LOGGER.Debug($"[NormalizeNumericString] Dot treated as decimal separator ({digitsBeforeDot} digits before, {digitsAfterDot} after)")
|
||||
Else
|
||||
' digitsAfterDot = 0 → Punkt am Ende, vermutlich Fehler
|
||||
LOGGER.Warn($"⚠️ [NormalizeNumericString] Dot at end of string → removing")
|
||||
normalized = normalized.Replace(".", "")
|
||||
End If
|
||||
Else
|
||||
' Mehrere Punkte → Tausendertrenner
|
||||
LOGGER.Debug($"[NormalizeNumericString] Multiple dots → removing all")
|
||||
normalized = normalized.Replace(".", "")
|
||||
End If
|
||||
Else
|
||||
LOGGER.Debug($"[NormalizeNumericString] No separators found → integer or already normalized")
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"[NormalizeNumericString] Output: [{normalized}]")
|
||||
|
||||
Return normalized
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Converts a string according to the type information, using the invariant culture
|
||||
@@ -41,25 +134,40 @@ Public Class ClassFormat
|
||||
|
||||
Select Case pType
|
||||
Case ClassControlCreator.CONTROL_TYPE_DOUBLE
|
||||
If Double.TryParse(pValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
Return oConvertedValue
|
||||
End If
|
||||
|
||||
Case ClassControlCreator.CONTROL_TYPE_CURRENCY
|
||||
Try
|
||||
LOGGER.Debug($"GetConvertedValue: Converting {pValue.ToString} to Currency ")
|
||||
If Double.TryParse(pValue, NumberStyles.Currency, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
' ✅ IMMER normalisieren – auch für DB-Werte!
|
||||
Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
|
||||
If Double.TryParse(normalizedValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
Return oConvertedValue
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
|
||||
Case ClassControlCreator.CONTROL_TYPE_CURRENCY
|
||||
Try
|
||||
' ✅ KRITISCH: Normalisierung VOR Konvertierung
|
||||
Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
|
||||
LOGGER.Debug($"GetConvertedValue CURRENCY: Original=[{pValue}], Normalized=[{normalizedValue}]")
|
||||
|
||||
If Double.TryParse(normalizedValue, NumberStyles.Float, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
Return oConvertedValue
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Currency conversion failed for [{pValue}]: {ex.Message}")
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
|
||||
Case ClassControlCreator.CONTROL_TYPE_INTEGER
|
||||
If Integer.TryParse(pValue, NumberStyles.Integer, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
Return oConvertedValue
|
||||
End If
|
||||
Try
|
||||
Dim normalizedValue As String = NormalizeNumericString(pValue?.ToString())
|
||||
If Integer.TryParse(normalizedValue, NumberStyles.Integer, CultureInfo.InvariantCulture, oConvertedValue) Then
|
||||
Return oConvertedValue
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
|
||||
Case Else
|
||||
LOGGER.Debug($"GetConvertedValue - Case ELSE - pType is {pType}")
|
||||
Try
|
||||
@@ -68,7 +176,6 @@ Public Class ClassFormat
|
||||
LOGGER.Warn($"Error in GetConvertedValue: pType is {pType} - converting value to String")
|
||||
oConvertedValue = ""
|
||||
End Try
|
||||
|
||||
End Select
|
||||
|
||||
Return oConvertedValue
|
||||
@@ -76,26 +183,32 @@ Public Class ClassFormat
|
||||
|
||||
''' <summary>
|
||||
''' Converts values to their respective data type and then back to string
|
||||
''' according to the current culture
|
||||
''' using INVARIANT culture for consistency across systems.
|
||||
''' </summary>
|
||||
''' <param name="pValue"></param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function GetStringValue(pValue As Object) As String
|
||||
' ✅ FIX: Immer InvariantCulture verwenden für DB-Speicherung
|
||||
Select Case pValue.GetType
|
||||
Case GetType(Single)
|
||||
Return DirectCast(pValue, Single).ToString(CultureInfo.CurrentCulture)
|
||||
' ✅ NEU: InvariantCulture statt CurrentCulture
|
||||
Return DirectCast(pValue, Single).ToString(CultureInfo.InvariantCulture)
|
||||
|
||||
Case GetType(Double)
|
||||
Return DirectCast(pValue, Double).ToString(CultureInfo.CurrentCulture)
|
||||
' ✅ NEU: InvariantCulture statt CurrentCulture
|
||||
Return DirectCast(pValue, Double).ToString(CultureInfo.InvariantCulture)
|
||||
|
||||
Case GetType(Decimal)
|
||||
Return DirectCast(pValue, Decimal).ToString(CultureInfo.CurrentCulture)
|
||||
' ✅ NEU: InvariantCulture statt CurrentCulture
|
||||
Return DirectCast(pValue, Decimal).ToString(CultureInfo.InvariantCulture)
|
||||
|
||||
Case GetType(Date)
|
||||
Return DirectCast(pValue, Date).ToString(CultureInfo.CurrentCulture)
|
||||
' Datum: ISO 8601 Format für Culture-Unabhängigkeit
|
||||
Return DirectCast(pValue, Date).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)
|
||||
|
||||
Case GetType(DateTime)
|
||||
Return DirectCast(pValue, DateTime).ToString(CultureInfo.CurrentCulture)
|
||||
' DateTime: ISO 8601 Format
|
||||
Return DirectCast(pValue, DateTime).ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)
|
||||
|
||||
Case Else
|
||||
Return pValue.ToString
|
||||
|
||||
@@ -1,5 +1,75 @@
|
||||
Public Class ClassIDBData
|
||||
Public DTVWIDB_BE_ATTRIBUTE As DataTable
|
||||
Public IDBSystemIndices As List(Of String)
|
||||
''' <summary>
|
||||
''' Wenn True, werden SQL-Statements nicht sofort ausgeführt,
|
||||
''' sondern in <see cref="_sqlBatch"/> gesammelt.
|
||||
''' </summary>
|
||||
Public Property BatchMode As Boolean = False
|
||||
Private _sqlBatch As New List(Of String)
|
||||
|
||||
''' <summary>
|
||||
''' Startet den Batch-Sammelmodus.
|
||||
''' </summary>
|
||||
Public Sub BeginBatch()
|
||||
_sqlBatch.Clear()
|
||||
BatchMode = True
|
||||
End Sub
|
||||
''' <summary>
|
||||
''' Führt alle gesammelten SQL-Statements als einen einzigen String
|
||||
''' an ExecuteNonQueryIDB weiter. Jeder Block wird in BEGIN...END
|
||||
''' gekapselt, damit DECLARE-Variablen nicht kollidieren.
|
||||
''' </summary>
|
||||
''' <returns>True wenn erfolgreich</returns>
|
||||
Public Function CommitBatch() As Boolean
|
||||
BatchMode = False
|
||||
If _sqlBatch.Count = 0 Then Return True
|
||||
Try
|
||||
Dim oStatements = _sqlBatch.
|
||||
Where(Function(s) Not String.IsNullOrWhiteSpace(s)).
|
||||
ToList()
|
||||
|
||||
' @NEW_OBJ_MD_ID pro Statement eindeutig umbenennen → kein Namenskonflikt im Batch
|
||||
Dim oNumberedStatements As New List(Of String)
|
||||
Dim oIndex As Integer = 0
|
||||
For Each oStatement As String In oStatements
|
||||
Dim oNumbered = oStatement.Replace("@NEW_OBJ_MD_ID", $"@NEW_OBJ_MD_ID_{oIndex}")
|
||||
oNumberedStatements.Add(oNumbered)
|
||||
oIndex += 1
|
||||
Next
|
||||
|
||||
Dim oBatchSQL = String.Join(vbNewLine, oNumberedStatements)
|
||||
LOGGER.Debug($"⚡ CommitBatch - Executing {oStatements.Count} statements as one batch:{vbNewLine}{oBatchSQL}")
|
||||
Dim oResult = DatabaseFallback.ExecuteNonQueryIDB(oBatchSQL)
|
||||
_sqlBatch.Clear()
|
||||
Return oResult
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
_sqlBatch.Clear()
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Verwirft alle gesammelten Statements ohne Ausführung.
|
||||
''' </summary>
|
||||
Public Sub RollbackBatch()
|
||||
_sqlBatch.Clear()
|
||||
BatchMode = False
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Führt ein SQL-Statement aus – sofort oder gesammelt je nach BatchMode.
|
||||
''' </summary>
|
||||
Private Function ExecuteOrQueue(oSQL As String) As Boolean
|
||||
If BatchMode Then
|
||||
_sqlBatch.Add(oSQL)
|
||||
LOGGER.Debug($"BatchMode - Queued statement: {oSQL}")
|
||||
Return True
|
||||
Else
|
||||
Return DatabaseFallback.ExecuteNonQueryIDB(oSQL)
|
||||
End If
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Gets all indices by BusinessEntity.
|
||||
''' </summary>
|
||||
@@ -7,15 +77,16 @@
|
||||
''' <returns>Array with all Indices</returns>
|
||||
''' <remarks></remarks>
|
||||
'''
|
||||
Public Function Init()
|
||||
Public Function Init() As Boolean
|
||||
Dim oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE WHERE SYS_ATTRIBUTE = 0 ORDER BY ATTR_TITLE"
|
||||
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||
If IsNothing(DTVWIDB_BE_ATTRIBUTE) Then
|
||||
oSQL = $"SELECT DISTINCT ATTR_TITLE, TYP_ID, TYP_ID as [TYPE_ID] FROM VWIDB_BE_ATTRIBUTE ORDER BY ATTR_TITLE "
|
||||
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
Public IDBSystemIndices As List(Of String)
|
||||
|
||||
Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String()
|
||||
Try
|
||||
Dim aNames(4) As String
|
||||
@@ -118,7 +189,7 @@
|
||||
LOGGER.Debug($"oAttributeValue for Attribute [{oAttributeName}] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE ")
|
||||
End If
|
||||
Dim oFNSQL = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({CURRENT_DOC_ID},'{oAttributeName}','{USER_LANGUAGE}',CONVERT(BIT,'{IDB_USES_WMFILESTORE}'))"
|
||||
LOGGER.Debug($"GetVariableValue: {oFNSQL}")
|
||||
LOGGER.Debug($": {oFNSQL}")
|
||||
oAttributeValue = DatabaseFallback.GetDatatableIDB(oFNSQL)
|
||||
Dim odt As DataTable = oAttributeValue
|
||||
If odt.Rows.Count = 1 Then
|
||||
@@ -138,10 +209,11 @@
|
||||
If IDB_USES_WMFILESTORE Then
|
||||
oID_IS_FOREIGN = 1
|
||||
End If
|
||||
|
||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN}"
|
||||
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||
|
||||
oTerm2Delete = oTerm2Delete.Replace("'", "''")
|
||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN};"
|
||||
LOGGER.Debug($"Delete_Term_Object_From_Metadata: {oDELSQL}")
|
||||
'DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||
Return ExecuteOrQueue(oDELSQL)
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Return Nothing
|
||||
@@ -150,9 +222,10 @@
|
||||
End Function
|
||||
Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object
|
||||
Try
|
||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}'"
|
||||
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||
|
||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}';"
|
||||
LOGGER.Debug($"Delete_Attribute_Data: {oDELSQL}")
|
||||
' DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||
Return ExecuteOrQueue(oDELSQL)
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Return Nothing
|
||||
@@ -162,18 +235,23 @@
|
||||
|
||||
Public Function SetVariableValue(oAttributeName As String, oNewValue As Object, Optional CheckDeleted As Boolean = False, Optional oIDBTyp As Integer = 0)
|
||||
Try
|
||||
Dim omsg = $"IDBData - SetVariableValue - Attribute: [{oAttributeName}] - NewValue: [{oNewValue}] - CheckDeleted: [{CheckDeleted.ToString}] - oIDBTyp: [{oIDBTyp}]"
|
||||
LOGGER.Debug(omsg)
|
||||
Dim omytype = oNewValue.GetType.ToString
|
||||
If omytype = "System.Data.DataTable" Then
|
||||
Dim oDTMyNewValues As DataTable = oNewValue
|
||||
Dim oOldAttributeResult
|
||||
Dim oAttributeResultFromDB
|
||||
Dim oTypeOldResult
|
||||
' Für DataTable (Mehrfachauswahl/Vektor) IMMER auf gelöschte Werte prüfen,
|
||||
' unabhängig vom übergebenen CheckDeleted-Parameter.
|
||||
Dim oEffectiveCheckDeleted As Boolean = True
|
||||
|
||||
If CheckDeleted = True Then
|
||||
oOldAttributeResult = GetVariableValue(oAttributeName, oIDBTyp)
|
||||
oTypeOldResult = oOldAttributeResult.GetType.ToString
|
||||
If oTypeOldResult = "System.Data.DataTable" Then
|
||||
Dim myOldValues As DataTable = oOldAttributeResult
|
||||
If myOldValues.Rows.Count > 1 Then
|
||||
If oEffectiveCheckDeleted = True Then
|
||||
oAttributeResultFromDB = GetVariableValue(oAttributeName, oIDBTyp)
|
||||
oTypeOldResult = oAttributeResultFromDB.GetType.ToString
|
||||
If TypeOf oAttributeResultFromDB Is DataTable Then
|
||||
Dim myOldValues As DataTable = oAttributeResultFromDB
|
||||
If myOldValues.Rows.Count >= 1 Then
|
||||
|
||||
'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
|
||||
For Each oOldValueRow As DataRow In myOldValues.Rows
|
||||
@@ -199,27 +277,26 @@
|
||||
'### Old Value is a single value ###
|
||||
If oDTMyNewValues.Rows.Count > 1 Then
|
||||
'### there is more than one new value ###
|
||||
Dim oExists As Boolean
|
||||
Dim oExists As Boolean = False
|
||||
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
||||
oExists = False
|
||||
Dim oInfo1 = $"Checking oldValue[{oOldAttributeResult}] vs NewValue [{oNewValueRow.Item(1)}]"
|
||||
If oNewValueRow.Item(1).ToString.ToUpper = oOldAttributeResult.ToString.ToUpper Then
|
||||
LOGGER.Debug($"Checking oldValue[{oAttributeResultFromDB}] vs NewValue [{oNewValueRow.Item(1)}]")
|
||||
If oNewValueRow.Item(1).ToString.ToUpper = oAttributeResultFromDB.ToString.ToUpper Then
|
||||
oExists = True
|
||||
Exit For ' ← sobald gefunden, abbrechen
|
||||
End If
|
||||
Next
|
||||
If oExists = False Then
|
||||
Dim oInfo2 = $"Value [{oOldAttributeResult}] no longer existing in Vector-Attribute [{oAttributeName}] - will be deleted!"
|
||||
LOGGER.Debug(oInfo2)
|
||||
LOGGER.Debug($"Value [{oAttributeResultFromDB}] no longer existing in Attribute [{oAttributeName}] - will be deleted!")
|
||||
'SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo2)
|
||||
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
|
||||
Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
|
||||
End If
|
||||
Else
|
||||
'### there is only ONE new value ###
|
||||
If oDTMyNewValues.Rows(0).Item(1) <> oOldAttributeResult Then
|
||||
Dim oInfo = $"Value [{oOldAttributeResult}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
|
||||
If oDTMyNewValues.Rows(0).Item(1) <> oAttributeResultFromDB Then
|
||||
Dim oInfo = $"Value [{oAttributeResultFromDB}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
|
||||
LOGGER.Debug(oInfo)
|
||||
SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo)
|
||||
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
|
||||
Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
|
||||
Else
|
||||
LOGGER.Debug($"Attributvalue of [{oAttributeName}] did not change!")
|
||||
End If
|
||||
@@ -231,22 +308,25 @@
|
||||
End If
|
||||
|
||||
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
||||
Dim oSuccess As Boolean = False
|
||||
'Dim oSuccess As Boolean = False
|
||||
Dim oVALUE = oNewValueRow.Item(1).ToString
|
||||
oVALUE = oVALUE.Replace("'", "''")
|
||||
Dim oPRSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oVALUE}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT"
|
||||
Dim oPRSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oVALUE}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT;"
|
||||
LOGGER.Debug(oPRSQL)
|
||||
oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL)
|
||||
If oSuccess = False Then
|
||||
Return False
|
||||
End If
|
||||
'oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL)
|
||||
If Not ExecuteOrQueue(oPRSQL) Then Return False
|
||||
'If oSuccess = False Then
|
||||
' Return False
|
||||
'End If
|
||||
Next
|
||||
Return True
|
||||
Else
|
||||
'oNewValue = oNewValue.Replace("'", "' + NCHAR(39) + '")
|
||||
Dim oFNSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValue}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT"
|
||||
LOGGER.Debug(oFNSQL)
|
||||
Return DatabaseFallback.ExecuteNonQueryIDB(oFNSQL)
|
||||
oNewValue = oNewValue.Replace("'", "''")
|
||||
Dim oPRIDB_NEW_OBJ_DATA = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {CURRENT_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValue}','{USER_LANGUAGE}',0,@OMD_ID = @NEW_OBJ_MD_ID OUTPUT;"
|
||||
LOGGER.Debug(oPRIDB_NEW_OBJ_DATA)
|
||||
' Return DatabaseFallback.ExecuteNonQueryIDB(oPRIDB_NEW_OBJ_DATA)
|
||||
Return ExecuteOrQueue(oPRIDB_NEW_OBJ_DATA)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
|
||||
@@ -397,7 +397,7 @@ Public Class ClassInit
|
||||
USER_DATE_FORMAT = DT_CHECKUSER_MODULE.Rows(0).Item("USER_DATE_FORMAT")
|
||||
|
||||
|
||||
ClassParamRefresh.Refresh_Params(DT_CHECKUSER_MODULE)
|
||||
ClassParamRefresh.Refresh_Params(DT_CHECKUSER_MODULE, "Load")
|
||||
|
||||
|
||||
FINALINDICES = New ClassFinalIndex()
|
||||
@@ -468,7 +468,7 @@ Public Class ClassInit
|
||||
' DataASorDB = New ClassDataASorDB
|
||||
'End If
|
||||
Dim oStopWatch As New RefreshHelper.SW("InitBasics")
|
||||
Dim oSql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1")
|
||||
Dim oSql = String.Format("select * from TBPM_KONFIGURATION WITH (NOLOCK) WHERE GUID = 1")
|
||||
oStep = "TBPM_KONFIGURATION"
|
||||
|
||||
BASEDATA_DT_CONFIG = DatabaseFallback.GetDatatable("TBPM_KONFIGURATION", New GetDatatableOptions(oSql, DatabaseType.ECM) With {
|
||||
@@ -498,23 +498,23 @@ Public Class ClassInit
|
||||
LOGGER.Warn($"Keine GDPICTURE-Lizenz gefunden. Version Konfiguration: {My.Settings.GDPICTURE_VERSION} - Prüfe TBDD_3RD_PARTY_MODULES")
|
||||
End If
|
||||
oStep = "TBDD_SQL_COMMANDS"
|
||||
oSql = "Select * FROM TBDD_SQL_COMMANDS"
|
||||
oSql = "Select * FROM TBDD_SQL_COMMANDS WITH (NOLOCK)"
|
||||
|
||||
BASEDATA_DT_TBDD_SQL_COMMANDS = DatabaseFallback.GetDatatable("TBDD_SQL_COMMANDS", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
|
||||
oStep = "TBDD_GUI_LANGUAGE_PHRASE"
|
||||
oSql = $"SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE MODULE IN ('PM','All Modules')"
|
||||
oSql = $"SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WITH (NOLOCK) WHERE MODULE IN ('PM','All Modules')"
|
||||
'BASEDATA_DT_GUI_LANGUAGE_PHRASES = DataASorDB.GetDatatable("DD_ECM", oSql, "TBDD_GUI_LANGUAGE_PHRASE", "")
|
||||
BASEDATA_DT_GUI_LANGUAGE_PHRASES = DatabaseFallback.GetDatatable("TBDD_GUI_LANGUAGE_PHRASE", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
oStep = "TBPM_PROFILE_SEARCH"
|
||||
oSql = "select * from TBPM_PROFILE_SEARCH where TYPE = 'DOC' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX"
|
||||
oSql = "select * from TBPM_PROFILE_SEARCH WITH (NOLOCK) where TYPE = 'DOC' AND ACTIVE = 1 ORDER BY PROFILE_ID,TAB_INDEX"
|
||||
BASEDATA_DT_PROFILES_SEARCHES_DOC = DatabaseFallback.GetDatatable("TBPM_PROFILE_SEARCH", New GetDatatableOptions(oSql, DatabaseType.ECM) With {
|
||||
.SortByColumn = "PROFILE_ID,TAB_INDEX"
|
||||
})
|
||||
DT_FILTERED_PROFILE_SEARCHES_DOC = BASEDATA_DT_PROFILES_SEARCHES_DOC.Clone()
|
||||
|
||||
oStep = "TBPM_MAIN_VIEW_GROUPS"
|
||||
oSql = "SELECT * FROM TBPM_MAIN_VIEW_GROUPS WHERE ACTIVE = 1"
|
||||
oSql = "SELECT * FROM TBPM_MAIN_VIEW_GROUPS WITH (NOLOCK) WHERE ACTIVE = 1"
|
||||
|
||||
BASEDATA_DTGRID_GROUPS = DatabaseFallback.GetDatatable("TBPM_MAIN_VIEW_GROUPS", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
|
||||
@@ -524,11 +524,11 @@ Public Class ClassInit
|
||||
|
||||
BASEDATA_DT_CHARTS = DatabaseFallback.GetDatatable("TBPM_CHART", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
oStep = "TBDD_GUI_LANGUAGE"
|
||||
oSql = "SELECT LANG_CODE FROM TBDD_GUI_LANGUAGE WHERE ACTIVE = 1 ORDER BY LANG_CODE"
|
||||
oSql = "SELECT LANG_CODE FROM TBDD_GUI_LANGUAGE WITH (NOLOCK) WHERE ACTIVE = 1 ORDER BY LANG_CODE"
|
||||
|
||||
BASEDATA_DT_LANGUAGE = DatabaseFallback.GetDatatable("TBDD_GUI_LANGUAGE", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
|
||||
oSql = "SELECT * FROM TBDD_COLUMNS_FORMAT WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'"
|
||||
oSql = "SELECT * FROM TBDD_COLUMNS_FORMAT WITH (NOLOCK) WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'"
|
||||
BASEDATA_TBDD_COLUMNS_FORMAT = DatabaseFallback.GetDatatable("TBDD_COLUMNS_FORMAT", New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
|
||||
|
||||
@@ -556,7 +556,7 @@ Public Class ClassInit
|
||||
End If
|
||||
|
||||
oSql = "SELECT KEY_NAME, VALUE_TEXT1
|
||||
FROM TBDD_USER_KEY_VALUE_PAIR
|
||||
FROM TBDD_USER_KEY_VALUE_PAIR WITH (NOLOCK)
|
||||
WHERE FK_USER_ID = " & USER_ID & " And [FK_MODULE_ID] = '" & USER_MODULE_ID & "'"
|
||||
|
||||
Dim oDT_USER_KEY_VALUE_PAIR As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSql, DatabaseType.ECM))
|
||||
@@ -608,7 +608,7 @@ Public Class ClassInit
|
||||
<STAThread()>
|
||||
Private Function Settings_LoadBasicConfig()
|
||||
Try
|
||||
Dim oSql As String = "select * from tbdd_Modules where SHORT_NAME = 'PM'"
|
||||
Dim oSql As String = "select * from tbdd_Modules WITH (NOLOCK) where SHORT_NAME = 'PM'"
|
||||
Dim oDTtbdd_Modules As DataTable
|
||||
'oDTtbdd_Modules = DataASorDB.GetDatatable("DD_ECM", oSql, "tbdd_Modules", $" SHORT_NAME = 'PM'")
|
||||
oDTtbdd_Modules = DatabaseFallback.GetDatatable("TBDD_MODULES", New GetDatatableOptions(oSql, DatabaseType.ECM) With {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Imports DigitalData.Modules.Database
|
||||
|
||||
Public Class ClassParamRefresh
|
||||
Public Shared Sub Refresh_Params(DT_CHECKUSER As DataTable)
|
||||
Public Shared Sub Refresh_Params(DT_CHECKUSER As DataTable, pMode As String)
|
||||
LOGGER.Debug("Refresh_Params starting ...")
|
||||
Dim oStopwatch As New RefreshHelper.SW("Refresh_Params")
|
||||
FORCE_LAYOUT_OVERVIEW = False
|
||||
@@ -221,14 +221,14 @@ Public Class ClassParamRefresh
|
||||
Catch ex As Exception
|
||||
TITLE_NOTIFICATIONS = ""
|
||||
End Try
|
||||
ElseIf oMode.StartsWith("TF.InheritanceMsgAmount") Then
|
||||
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") Then
|
||||
ElseIf oMode.StartsWith("TF.InheritanceCalcReset") And pMode = "Load" Then
|
||||
Dim oParam = oMode.Replace("TF.InheritanceCalcReset=", "")
|
||||
Try
|
||||
If CBool(oParam) = True Then
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
78
app/TaskFlow/DD_DMSLiteDataSet.Designer.vb
generated
78
app/TaskFlow/DD_DMSLiteDataSet.Designer.vb
generated
@@ -5466,6 +5466,8 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
|
||||
Private columnFORMULA_EXPRESSION As Global.System.Data.DataColumn
|
||||
|
||||
Private columnFORMULA_SQL As Global.System.Data.DataColumn
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
|
||||
Public Sub New()
|
||||
@@ -5709,6 +5711,14 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
End Get
|
||||
End Property
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
|
||||
Public ReadOnly Property FORMULA_SQLColumn() As Global.System.Data.DataColumn
|
||||
Get
|
||||
Return Me.columnFORMULA_SQL
|
||||
End Get
|
||||
End Property
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0"), _
|
||||
Global.System.ComponentModel.Browsable(false)> _
|
||||
@@ -5771,9 +5781,10 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
ByVal TYPE_COLUMN As String, _
|
||||
ByVal LU_CAPTION As String, _
|
||||
ByVal INHERIT_VALUE As Boolean, _
|
||||
ByVal FORMULA_EXPRESSION As String) As TBPM_CONTROL_TABLERow
|
||||
ByVal FORMULA_EXPRESSION As String, _
|
||||
ByVal FORMULA_SQL As String) As TBPM_CONTROL_TABLERow
|
||||
Dim rowTBPM_CONTROL_TABLERow As TBPM_CONTROL_TABLERow = CType(Me.NewRow,TBPM_CONTROL_TABLERow)
|
||||
Dim columnValuesArray() As Object = New Object() {Nothing, Nothing, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, FORMULA_EXPRESSION}
|
||||
Dim columnValuesArray() As Object = New Object() {Nothing, Nothing, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, FORMULA_EXPRESSION, FORMULA_SQL}
|
||||
If (Not (parentTBPM_PROFILE_CONTROLSRowByFK_TBPM_CONTROL_TABLE_CONTROL1) Is Nothing) Then
|
||||
columnValuesArray(1) = parentTBPM_PROFILE_CONTROLSRowByFK_TBPM_CONTROL_TABLE_CONTROL1(0)
|
||||
End If
|
||||
@@ -5831,6 +5842,7 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
Me.columnLU_CAPTION = MyBase.Columns("LU_CAPTION")
|
||||
Me.columnINHERIT_VALUE = MyBase.Columns("INHERIT_VALUE")
|
||||
Me.columnFORMULA_EXPRESSION = MyBase.Columns("FORMULA_EXPRESSION")
|
||||
Me.columnFORMULA_SQL = MyBase.Columns("FORMULA_SQL")
|
||||
End Sub
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
@@ -5888,6 +5900,8 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
MyBase.Columns.Add(Me.columnINHERIT_VALUE)
|
||||
Me.columnFORMULA_EXPRESSION = New Global.System.Data.DataColumn("FORMULA_EXPRESSION", GetType(String), Nothing, Global.System.Data.MappingType.Element)
|
||||
MyBase.Columns.Add(Me.columnFORMULA_EXPRESSION)
|
||||
Me.columnFORMULA_SQL = New Global.System.Data.DataColumn("FORMULA_SQL", GetType(String), Nothing, Global.System.Data.MappingType.Element)
|
||||
MyBase.Columns.Add(Me.columnFORMULA_SQL)
|
||||
Me.Constraints.Add(New Global.System.Data.UniqueConstraint("Constraint1", New Global.System.Data.DataColumn() {Me.columnGUID}, true))
|
||||
Me.columnGUID.AutoIncrement = true
|
||||
Me.columnGUID.AllowDBNull = false
|
||||
@@ -5931,7 +5945,11 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
Me.columnINHERIT_VALUE.AllowDBNull = false
|
||||
Me.columnINHERIT_VALUE.DefaultValue = CType(false,Boolean)
|
||||
Me.columnFORMULA_EXPRESSION.AllowDBNull = false
|
||||
Me.columnFORMULA_EXPRESSION.DefaultValue = CType("",String)
|
||||
Me.columnFORMULA_EXPRESSION.MaxLength = 1000
|
||||
Me.columnFORMULA_SQL.AllowDBNull = false
|
||||
Me.columnFORMULA_SQL.DefaultValue = CType("",String)
|
||||
Me.columnFORMULA_SQL.MaxLength = 3000
|
||||
End Sub
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
@@ -13227,6 +13245,17 @@ Partial Public Class DD_DMSLiteDataSet
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
|
||||
Public Property FORMULA_SQL() As String
|
||||
Get
|
||||
Return CType(Me(Me.tableTBPM_CONTROL_TABLE.FORMULA_SQLColumn),String)
|
||||
End Get
|
||||
Set
|
||||
Me(Me.tableTBPM_CONTROL_TABLE.FORMULA_SQLColumn) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
|
||||
Public Property TBPM_PROFILE_CONTROLSRow() As TBPM_PROFILE_CONTROLSRow
|
||||
@@ -21535,6 +21564,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
tableMapping.ColumnMappings.Add("LU_CAPTION", "LU_CAPTION")
|
||||
tableMapping.ColumnMappings.Add("INHERIT_VALUE", "INHERIT_VALUE")
|
||||
tableMapping.ColumnMappings.Add("FORMULA_EXPRESSION", "FORMULA_EXPRESSION")
|
||||
tableMapping.ColumnMappings.Add("FORMULA_SQL", "FORMULA_SQL")
|
||||
Me._adapter.TableMappings.Add(tableMapping)
|
||||
Me._adapter.DeleteCommand = New Global.System.Data.SqlClient.SqlCommand()
|
||||
Me._adapter.DeleteCommand.Connection = Me.Connection
|
||||
@@ -21572,12 +21602,12 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
"ENCE = @SEQUENCE, DEFAULT_VALUE = @DEFAULT_VALUE, ADVANCED_LOOKUP = @ADVANCED_LO"& _
|
||||
"OKUP, SAVE_CHANGE_ON_ENABLED = @SAVE_CHANGE_ON_ENABLED, INHERIT_VALUE = @INHERIT"& _
|
||||
"_VALUE, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION "& _
|
||||
"= @FORMULA_EXPRESSION"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @Original_GUID); "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT GUID, "& _
|
||||
"CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST,"& _
|
||||
" CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, C"& _
|
||||
"HANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUE"& _
|
||||
"NCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TBPM_CONTROL_TABLE WHERE (GUID = @GUID)"& _
|
||||
""
|
||||
"= @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA_SQL"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @Origina"& _
|
||||
"l_GUID); "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBRE"& _
|
||||
"ITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VA"& _
|
||||
"LUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAG"& _
|
||||
"E_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TBPM_CONTR"& _
|
||||
"OL_TABLE WHERE (GUID = @GUID)"
|
||||
Me._adapter.UpdateCommand.CommandType = Global.System.Data.CommandType.Text
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@CONTROL_ID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "CONTROL_ID", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@SPALTENNAME", Global.System.Data.SqlDbType.VarChar, 100, Global.System.Data.ParameterDirection.Input, 0, 0, "SPALTENNAME", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
@@ -21603,6 +21633,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@INHERIT_VALUE", Global.System.Data.SqlDbType.Bit, 1, Global.System.Data.ParameterDirection.Input, 0, 0, "INHERIT_VALUE", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@LU_CAPTION", Global.System.Data.SqlDbType.VarChar, 150, Global.System.Data.ParameterDirection.Input, 0, 0, "LU_CAPTION", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@FORMULA_EXPRESSION", Global.System.Data.SqlDbType.NVarChar, 1000, Global.System.Data.ParameterDirection.Input, 0, 0, "FORMULA_EXPRESSION", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@FORMULA_SQL", Global.System.Data.SqlDbType.NVarChar, 3000, Global.System.Data.ParameterDirection.Input, 0, 0, "FORMULA_SQL", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@Original_GUID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "GUID", Global.System.Data.DataRowVersion.Original, false, Nothing, "", "", ""))
|
||||
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@GUID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "GUID", Global.System.Data.DataRowVersion.Original, false, Nothing, "", "", ""))
|
||||
End Sub
|
||||
@@ -21625,8 +21656,8 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
"_WHO, ADDED_WHEN, CHANGED_WHO, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" CHANGED_WHEN, REGEX_MA"& _
|
||||
"TCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKU"& _
|
||||
"P, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" "& _
|
||||
" FORMULA_EXPRESSION"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM TBPM_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (CO"& _
|
||||
"NTROL_ID = @CONTROL_ID)"
|
||||
" FORMULA_EXPRESSION, FORMULA_SQL"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM TBPM_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHE"& _
|
||||
"RE (CONTROL_ID = @CONTROL_ID)"
|
||||
Me._commandCollection(0).CommandType = Global.System.Data.CommandType.Text
|
||||
Me._commandCollection(0).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@CONTROL_ID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "CONTROL_ID", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1) = New Global.System.Data.SqlClient.SqlCommand()
|
||||
@@ -21639,8 +21670,8 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
"E = @DEFAULT_VALUE, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" SEQUENCE = @SEQUENCE, ADVANCED_LO"& _
|
||||
"OKUP = @ADVANCED_LOOKUP, SUMMARY_FUNCTION = @SUMMARY_FUNCTION, TYPE_COLUMN = @TY"& _
|
||||
"PE_COLUMN, LU_CAPTION = @LU_CAPTION, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" INHERIT_VALUE = "& _
|
||||
"@INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @"& _
|
||||
"Original_GUID)"
|
||||
"@INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA"& _
|
||||
"_SQL"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @Original_GUID)"
|
||||
Me._commandCollection(1).CommandType = Global.System.Data.CommandType.Text
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@SPALTENNAME", Global.System.Data.SqlDbType.VarChar, 100, Global.System.Data.ParameterDirection.Input, 0, 0, "SPALTENNAME", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@SPALTEN_HEADER", Global.System.Data.SqlDbType.VarChar, 100, Global.System.Data.ParameterDirection.Input, 0, 0, "SPALTEN_HEADER", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
@@ -21660,6 +21691,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@LU_CAPTION", Global.System.Data.SqlDbType.VarChar, 150, Global.System.Data.ParameterDirection.Input, 0, 0, "LU_CAPTION", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@INHERIT_VALUE", Global.System.Data.SqlDbType.Bit, 1, Global.System.Data.ParameterDirection.Input, 0, 0, "INHERIT_VALUE", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@FORMULA_EXPRESSION", Global.System.Data.SqlDbType.NVarChar, 1000, Global.System.Data.ParameterDirection.Input, 0, 0, "FORMULA_EXPRESSION", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@FORMULA_SQL", Global.System.Data.SqlDbType.NVarChar, 3000, Global.System.Data.ParameterDirection.Input, 0, 0, "FORMULA_SQL", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@Original_GUID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "GUID", Global.System.Data.DataRowVersion.Original, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(2) = New Global.System.Data.SqlClient.SqlCommand()
|
||||
Me._commandCollection(2).Connection = Me.Connection
|
||||
@@ -21682,8 +21714,8 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
"D_ONLY, REGEX_MATCH, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" REGEX_MESSAGE_DE, REGEX_MESSAGE_"& _
|
||||
"EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATIO"& _
|
||||
"N, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" "& _
|
||||
" FORMULA_EXPRESSION"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM TBPM_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GU"& _
|
||||
"ID = @GUID)"
|
||||
" FORMULA_EXPRESSION, FORMULA_SQL"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM TBPM_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHE"& _
|
||||
"RE (GUID = @GUID)"
|
||||
Me._commandCollection(4).CommandType = Global.System.Data.CommandType.Text
|
||||
Me._commandCollection(4).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@GUID", Global.System.Data.SqlDbType.Int, 4, Global.System.Data.ParameterDirection.Input, 0, 0, "GUID", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
|
||||
Me._commandCollection(5) = New Global.System.Data.SqlClient.SqlCommand()
|
||||
@@ -21892,6 +21924,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
ByVal INHERIT_VALUE As Boolean, _
|
||||
ByVal LU_CAPTION As String, _
|
||||
ByVal FORMULA_EXPRESSION As String, _
|
||||
ByVal FORMULA_SQL As String, _
|
||||
ByVal Original_GUID As Integer, _
|
||||
ByVal GUID As Integer) As Integer
|
||||
Me.Adapter.UpdateCommand.Parameters(0).Value = CType(CONTROL_ID,Integer)
|
||||
@@ -21978,8 +22011,13 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
Else
|
||||
Me.Adapter.UpdateCommand.Parameters(23).Value = CType(FORMULA_EXPRESSION,String)
|
||||
End If
|
||||
Me.Adapter.UpdateCommand.Parameters(24).Value = CType(Original_GUID,Integer)
|
||||
Me.Adapter.UpdateCommand.Parameters(25).Value = CType(GUID,Integer)
|
||||
If (FORMULA_SQL Is Nothing) Then
|
||||
Throw New Global.System.ArgumentNullException("FORMULA_SQL")
|
||||
Else
|
||||
Me.Adapter.UpdateCommand.Parameters(24).Value = CType(FORMULA_SQL,String)
|
||||
End If
|
||||
Me.Adapter.UpdateCommand.Parameters(25).Value = CType(Original_GUID,Integer)
|
||||
Me.Adapter.UpdateCommand.Parameters(26).Value = CType(GUID,Integer)
|
||||
Dim previousConnectionState As Global.System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State
|
||||
If ((Me.Adapter.UpdateCommand.Connection.State And Global.System.Data.ConnectionState.Open) _
|
||||
<> Global.System.Data.ConnectionState.Open) Then
|
||||
@@ -22017,6 +22055,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
ByVal LU_CAPTION As String, _
|
||||
ByVal INHERIT_VALUE As Boolean, _
|
||||
ByVal FORMULA_EXPRESSION As String, _
|
||||
ByVal FORMULA_SQL As String, _
|
||||
ByVal Original_GUID As Integer) As Object
|
||||
Dim command As Global.System.Data.SqlClient.SqlCommand = Me.CommandCollection(1)
|
||||
If (SPALTENNAME Is Nothing) Then
|
||||
@@ -22081,7 +22120,12 @@ Namespace DD_DMSLiteDataSetTableAdapters
|
||||
Else
|
||||
command.Parameters(17).Value = CType(FORMULA_EXPRESSION,String)
|
||||
End If
|
||||
command.Parameters(18).Value = CType(Original_GUID,Integer)
|
||||
If (FORMULA_SQL Is Nothing) Then
|
||||
Throw New Global.System.ArgumentNullException("FORMULA_SQL")
|
||||
Else
|
||||
command.Parameters(18).Value = CType(FORMULA_SQL,String)
|
||||
End If
|
||||
command.Parameters(19).Value = CType(Original_GUID,Integer)
|
||||
Dim previousConnectionState As Global.System.Data.ConnectionState = command.Connection.State
|
||||
If ((command.Connection.State And Global.System.Data.ConnectionState.Open) _
|
||||
<> Global.System.Data.ConnectionState.Open) Then
|
||||
|
||||
@@ -56,32 +56,24 @@
|
||||
<TableUISetting Name="TBPM_CONTROL_TABLE">
|
||||
<ColumnUISettings>
|
||||
<ColumnUISetting Name="ADDED_WHO">
|
||||
<ControlSettings>
|
||||
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
|
||||
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
</ControlSetting>
|
||||
</ControlSettings>
|
||||
</ControlSetting></ControlSettings>
|
||||
</ColumnUISetting>
|
||||
<ColumnUISetting Name="ADDED_WHEN">
|
||||
<ControlSettings>
|
||||
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
|
||||
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
</ControlSetting>
|
||||
</ControlSettings>
|
||||
</ControlSetting></ControlSettings>
|
||||
</ColumnUISetting>
|
||||
<ColumnUISetting Name="CHANGED_WHEN">
|
||||
<ControlSettings>
|
||||
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
|
||||
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
</ControlSetting>
|
||||
</ControlSettings>
|
||||
</ControlSetting></ControlSettings>
|
||||
</ColumnUISetting>
|
||||
<ColumnUISetting Name="TYPE_COLUMN">
|
||||
<ControlSettings>
|
||||
<ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form">
|
||||
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
</ControlSetting>
|
||||
</ControlSettings>
|
||||
</ControlSetting></ControlSettings>
|
||||
</ColumnUISetting>
|
||||
</ColumnUISettings>
|
||||
</TableUISetting>
|
||||
|
||||
@@ -1319,7 +1319,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO,
|
||||
CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
|
||||
FORMULA_EXPRESSION
|
||||
FORMULA_EXPRESSION, FORMULA_SQL
|
||||
FROM TBPM_CONTROL_TABLE
|
||||
WHERE (CONTROL_ID = @CONTROL_ID)</CommandText>
|
||||
<Parameters>
|
||||
@@ -1334,8 +1334,8 @@ SET CONTROL_ID = @CONTROL_ID, SPALTENNAME = @SPALTENNAME, SPALTEN
|
||||
CONNECTION_ID = @CONNECTION_ID, SQL_COMMAND = @SQL_COMMAND, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE, ADDED_WHO = @ADDED_WHO, ADDED_WHEN = @ADDED_WHEN,
|
||||
CHANGED_WHO = @CHANGED_WHO, CHANGED_WHEN = @CHANGED_WHEN, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE,
|
||||
SEQUENCE = @SEQUENCE, DEFAULT_VALUE = @DEFAULT_VALUE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SAVE_CHANGE_ON_ENABLED = @SAVE_CHANGE_ON_ENABLED, INHERIT_VALUE = @INHERIT_VALUE,
|
||||
LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION = @FORMULA_EXPRESSION
|
||||
WHERE (GUID = @Original_GUID);
|
||||
LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION = @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA_SQL
|
||||
WHERE (GUID = @Original_GUID);
|
||||
SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGEX_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TBPM_CONTROL_TABLE WHERE (GUID = @GUID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="CONTROL_ID" ColumnName="CONTROL_ID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@CONTROL_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="CONTROL_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
@@ -1362,6 +1362,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_SQL" ColumnName="FORMULA_SQL" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(3000)" DbType="String" Direction="Input" ParameterName="@FORMULA_SQL" Precision="0" ProviderType="NVarChar" Scale="0" Size="3000" SourceColumn="FORMULA_SQL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
@@ -1396,6 +1397,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
|
||||
<Mapping SourceColumn="LU_CAPTION" DataSetColumn="LU_CAPTION" />
|
||||
<Mapping SourceColumn="INHERIT_VALUE" DataSetColumn="INHERIT_VALUE" />
|
||||
<Mapping SourceColumn="FORMULA_EXPRESSION" DataSetColumn="FORMULA_EXPRESSION" />
|
||||
<Mapping SourceColumn="FORMULA_SQL" DataSetColumn="FORMULA_SQL" />
|
||||
</Mappings>
|
||||
<Sources>
|
||||
<DbSource ConnectionRef="ConnectionString (MySettings)" DbObjectName="DD_ECM_TEST.dbo.TBPM_CONTROL_TABLE" DbObjectType="Table" GenerateShortCommands="true" GeneratorSourceName="cmdUpdate" Modifier="Public" Name="cmdUpdate" QueryType="Scalar" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataBy" UserSourceName="cmdUpdate">
|
||||
@@ -1405,7 +1407,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
|
||||
SET SPALTENNAME = @SPALTENNAME, SPALTEN_HEADER = @SPALTEN_HEADER, SPALTENBREITE = @SPALTENBREITE, VALIDATION = @VALIDATION, READ_ONLY = @READ_ONLY, LOAD_IDX_VALUE = @LOAD_IDX_VALUE,
|
||||
CHANGED_WHO = @CHANGED_WHO, REGEX_MATCH = @REGEX_MATCH, REGEX_MESSAGE_EN = @REGEX_MESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE, DEFAULT_VALUE = @DEFAULT_VALUE,
|
||||
SEQUENCE = @SEQUENCE, ADVANCED_LOOKUP = @ADVANCED_LOOKUP, SUMMARY_FUNCTION = @SUMMARY_FUNCTION, TYPE_COLUMN = @TYPE_COLUMN, LU_CAPTION = @LU_CAPTION,
|
||||
INHERIT_VALUE = @INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION
|
||||
INHERIT_VALUE = @INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION, FORMULA_SQL = @FORMULA_SQL
|
||||
WHERE (GUID = @Original_GUID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENNAME" ColumnName="SPALTENNAME" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTENNAME" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTENNAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
@@ -1426,6 +1428,7 @@ WHERE (GUID = @Original_GUID)</CommandText>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_EXPRESSION" ColumnName="FORMULA_EXPRESSION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(1000)" DbType="String" Direction="Input" ParameterName="@FORMULA_EXPRESSION" Precision="0" ProviderType="NVarChar" Scale="0" Size="1000" SourceColumn="FORMULA_EXPRESSION" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="FORMULA_SQL" ColumnName="FORMULA_SQL" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="nvarchar(3000)" DbType="String" Direction="Input" ParameterName="@FORMULA_SQL" Precision="0" ProviderType="NVarChar" Scale="0" Size="3000" SourceColumn="FORMULA_SQL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
@@ -1458,7 +1461,7 @@ FROM TBPM_CONTROL_TABLE</CommandText>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>SELECT ADDED_WHEN, ADDED_WHO, ADVANCED_LOOKUP, CHANGED_WHEN, CHANGED_WHO, CHOICE_LIST, CONNECTION_ID, CONTROL_ID, DEFAULT_VALUE, GUID, LOAD_IDX_VALUE, READ_ONLY, REGEX_MATCH,
|
||||
REGEX_MESSAGE_DE, REGEX_MESSAGE_EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATION, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
|
||||
FORMULA_EXPRESSION
|
||||
FORMULA_EXPRESSION, FORMULA_SQL
|
||||
FROM TBPM_CONTROL_TABLE
|
||||
WHERE (GUID = @GUID)</CommandText>
|
||||
<Parameters>
|
||||
@@ -2812,13 +2815,20 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="INHERIT_VALUE" msprop:Generator_ColumnPropNameInTable="INHERIT_VALUEColumn" msprop:Generator_ColumnPropNameInRow="INHERIT_VALUE" msprop:Generator_UserColumnName="INHERIT_VALUE" msprop:Generator_ColumnVarNameInTable="columnINHERIT_VALUE" type="xs:boolean" default="false" />
|
||||
<xs:element name="FORMULA_EXPRESSION" msprop:Generator_ColumnPropNameInTable="FORMULA_EXPRESSIONColumn" msprop:Generator_ColumnPropNameInRow="FORMULA_EXPRESSION" msprop:Generator_UserColumnName="FORMULA_EXPRESSION" msprop:Generator_ColumnVarNameInTable="columnFORMULA_EXPRESSION">
|
||||
<xs:element name="FORMULA_EXPRESSION" msprop:Generator_ColumnPropNameInTable="FORMULA_EXPRESSIONColumn" msprop:Generator_ColumnPropNameInRow="FORMULA_EXPRESSION" msprop:Generator_UserColumnName="FORMULA_EXPRESSION" msprop:Generator_ColumnVarNameInTable="columnFORMULA_EXPRESSION" default="">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="1000" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="FORMULA_SQL" msprop:Generator_ColumnPropNameInRow="FORMULA_SQL" msprop:Generator_ColumnPropNameInTable="FORMULA_SQLColumn" msprop:Generator_ColumnVarNameInTable="columnFORMULA_SQL" msprop:Generator_UserColumnName="FORMULA_SQL" default="">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="3000" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@@ -3405,9 +3415,9 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
|
||||
</xs:element>
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL1" msdata:parent="TBPM_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ParentPropName="TBPM_PROFILE_CONTROLSRow" />
|
||||
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL" msdata:parent="TBWH_CHECK_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBWH_CHECK_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_ParentPropName="TBWH_CHECK_PROFILE_CONTROLSRow" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL" />
|
||||
<msdata:Relationship name="FK_TBPM_PROFILE_CONTROLS_PROFILE" msdata:parent="TBPM_PROFILE" msdata:child="TBPM_PROFILE_CONTROLS" msdata:parentkey="GUID" msdata:childkey="PROFIL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE" msprop:Generator_UserChildTable="TBPM_PROFILE_CONTROLS" msprop:Generator_RelationVarName="relationFK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ChildPropName="GetTBPM_PROFILE_CONTROLSRows" msprop:Generator_ParentPropName="TBPM_PROFILERow" msprop:Generator_UserRelationName="FK_TBPM_PROFILE_CONTROLS_PROFILE" />
|
||||
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL1" msdata:parent="TBPM_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL1" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_ParentPropName="TBPM_PROFILE_CONTROLSRow" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL1" />
|
||||
<msdata:Relationship name="FK_TBPM_CONTROL_TABLE_CONTROL" msdata:parent="TBWH_CHECK_PROFILE_CONTROLS" msdata:child="TBPM_CONTROL_TABLE" msdata:parentkey="GUID" msdata:childkey="CONTROL_ID" msprop:Generator_UserParentTable="TBWH_CHECK_PROFILE_CONTROLS" msprop:Generator_UserChildTable="TBPM_CONTROL_TABLE" msprop:Generator_RelationVarName="relationFK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ChildPropName="GetTBPM_CONTROL_TABLERows" msprop:Generator_UserRelationName="FK_TBPM_CONTROL_TABLE_CONTROL" msprop:Generator_ParentPropName="TBWH_CHECK_PROFILE_CONTROLSRow" />
|
||||
<msdata:Relationship name="FK_TBPM_PROFILE_CONTROLS_PROFILE" msdata:parent="TBPM_PROFILE" msdata:child="TBPM_PROFILE_CONTROLS" msdata:parentkey="GUID" msdata:childkey="PROFIL_ID" msprop:Generator_UserParentTable="TBPM_PROFILE" msprop:Generator_UserChildTable="TBPM_PROFILE_CONTROLS" msprop:Generator_RelationVarName="relationFK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ChildPropName="GetTBPM_PROFILE_CONTROLSRows" msprop:Generator_UserRelationName="FK_TBPM_PROFILE_CONTROLS_PROFILE" msprop:Generator_ParentPropName="TBPM_PROFILERow" />
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
</xs:schema>
|
||||
@@ -4,7 +4,7 @@
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="472" ViewPortY="129" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="472" ViewPortY="90" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:TBPM_PROFILE_FINAL_INDEXING" ZOrder="14" X="1688" Y="-74" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
|
||||
<Shape ID="DesignTable:TBPM_KONFIGURATION" ZOrder="2" X="-17" Y="232" Height="262" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" />
|
||||
|
||||
73
app/TaskFlow/DataColumnExpression.txt
Normal file
73
app/TaskFlow/DataColumnExpression.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
ADO.NET DataColumn.Expression – Kompakte Übersicht
|
||||
|
||||
Spalten werden über den Spaltennamen referenziert, z. B. [MENGE].
|
||||
|
||||
GRUNDOPERATOREN
|
||||
- Arithmetik: + - * /
|
||||
Beispiel: [A] * [B]
|
||||
- Vergleich: = <> > >= < <=
|
||||
Beispiel: [MENGE] > 0
|
||||
- Logik: AND OR NOT
|
||||
Beispiel: [A] > 0 AND [B] < 10
|
||||
- Klammern: (...)
|
||||
Beispiel: ([A] + [B]) * 2
|
||||
|
||||
STRING-VERKETTUNG
|
||||
- Verkettung: +
|
||||
Beispiel: [VORNAME] + ' - ' + [NACHNAME]
|
||||
- Typkonvertierung: Convert
|
||||
Beispiel: Convert([NUMMER], 'System.String')
|
||||
|
||||
BEDINGUNGEN
|
||||
- IIF(Bedingung, True, False)
|
||||
Beispiel: IIF([A] = 'Harry', 'Blume', 'Tier')
|
||||
|
||||
HÄUFIGE FUNKTIONEN
|
||||
- Len([TEXT])
|
||||
- Trim([TEXT])
|
||||
- Substring([TEXT], 0, 3)
|
||||
- IsNull([WERT], 0)
|
||||
- Convert([WERT], 'System.Double')
|
||||
|
||||
BEISPIELE (FORMULA_EXPRESSION)
|
||||
- Multiplikation: [MENGE] * [PREIS]
|
||||
- Addieren: [A] + [B]
|
||||
- Division: [A] / [B]
|
||||
- Text zusammensetzen: [SAKNR] + ' - ' + [KST]
|
||||
- Bedingung: IIF([STATUS] = 'X', 'OK', 'NOK')ADO.NET DataColumn.Expression – Kompakte Übersicht
|
||||
|
||||
Spalten werden über den Spaltennamen referenziert, z. B. [MENGE].
|
||||
|
||||
GRUNDOPERATOREN
|
||||
- Arithmetik: + - * /
|
||||
Beispiel: [A] * [B]
|
||||
- Vergleich: = <> > >= < <=
|
||||
Beispiel: [MENGE] > 0
|
||||
- Logik: AND OR NOT
|
||||
Beispiel: [A] > 0 AND [B] < 10
|
||||
- Klammern: (...)
|
||||
Beispiel: ([A] + [B]) * 2
|
||||
|
||||
STRING-VERKETTUNG
|
||||
- Verkettung: +
|
||||
Beispiel: [VORNAME] + ' - ' + [NACHNAME]
|
||||
- Typkonvertierung: Convert
|
||||
Beispiel: Convert([NUMMER], 'System.String')
|
||||
|
||||
BEDINGUNGEN
|
||||
- IIF(Bedingung, True, False)
|
||||
Beispiel: IIF([A] = 'Harry', 'Blume', 'Tier')
|
||||
|
||||
HÄUFIGE FUNKTIONEN
|
||||
- Len([TEXT])
|
||||
- Trim([TEXT])
|
||||
- Substring([TEXT], 0, 3)
|
||||
- IsNull([WERT], 0)
|
||||
- Convert([WERT], 'System.Double')
|
||||
|
||||
BEISPIELE (FORMULA_EXPRESSION)
|
||||
- Multiplikation: [MENGE] * [PREIS]
|
||||
- Addieren: [A] + [B]
|
||||
- Division: [A] / [B]
|
||||
- Text zusammensetzen: [SAKNR] + ' - ' + [KST]
|
||||
- Bedingung: IIF([STATUS] = 'X', 'OK', 'NOK')
|
||||
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("Digital Data")>
|
||||
<Assembly: AssemblyProduct("taskFLOW")>
|
||||
<Assembly: AssemblyCopyright("Copyright © Digital Data 2025")>
|
||||
<Assembly: AssemblyCopyright("Digital Data 2026")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.8.0.0")>
|
||||
<Assembly: AssemblyVersion("2.8.6.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
<Assembly: NeutralResourcesLanguage("")>
|
||||
|
||||
@@ -624,6 +624,12 @@
|
||||
<Compile Include="frmError.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmExpression_Designer.Designer.vb">
|
||||
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmExpression_Designer.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmFileInfo.Designer.vb">
|
||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -868,6 +874,9 @@
|
||||
<DependentUpon>frmError.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmExpression_Designer.resx">
|
||||
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmFileInfo.resx">
|
||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -1271,7 +1280,9 @@
|
||||
<None Include="Resources\PM_mit_slogan.JPG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="taskFLOW-TEST-Debug.txt" />
|
||||
<None Include="Changelog.md" />
|
||||
<Content Include="DataColumnExpression.txt" />
|
||||
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />
|
||||
<Content Include="DD_taskFLOW_ICON.ico" />
|
||||
<Content Include="MailLicense.xml">
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports WINDREAMLib
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DevExpress.XtraGrid.Columns
|
||||
Imports DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Columns
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports WINDREAMLib
|
||||
''' <summary>
|
||||
''' Defines common Functions for Checking for and replacing placeholders.
|
||||
''' This Class also includes a child class `Pattern` for passing around Patterns.
|
||||
@@ -75,7 +76,8 @@ Public Class clsPatterns
|
||||
''' Aktualisiert den Wert eines Controls im Cache
|
||||
''' </summary>
|
||||
Public Shared Sub UpdateControlInCache(controlName As String, newValue As Object)
|
||||
SyncLock _ControlLookupCache ' Thread-Safety
|
||||
' FIX: SyncLock auf Nothing ist illegal → GetType(clsPatterns) als stabilen Lock-Anker nutzen
|
||||
SyncLock GetType(clsPatterns)
|
||||
If _ControlLookupCache Is Nothing OrElse Not _ControlLookupCache.ContainsKey(controlName) Then
|
||||
LOGGER.Warn($"Control [{controlName}] not found in cache for update")
|
||||
Return
|
||||
@@ -98,8 +100,13 @@ Public Class clsPatterns
|
||||
lookup.Properties.SelectedValues = New List(Of String) From {newValue.ToString()}
|
||||
End If
|
||||
|
||||
Case GetType(Windows.Forms.ComboBox)
|
||||
DirectCast(ctrl, ComboBox).Text = newValue?.ToString()
|
||||
' ========== FIX START: Beide ComboBox-Typen unterstützen ==========
|
||||
Case GetType(System.Windows.Forms.ComboBox)
|
||||
DirectCast(ctrl, System.Windows.Forms.ComboBox).Text = newValue?.ToString()
|
||||
|
||||
Case GetType(DevExpress.XtraEditors.ComboBoxEdit)
|
||||
DirectCast(ctrl, DevExpress.XtraEditors.ComboBoxEdit).Text = newValue?.ToString()
|
||||
' ========== FIX END ==========
|
||||
|
||||
Case GetType(CheckBox)
|
||||
If TypeOf newValue Is Boolean Then
|
||||
@@ -130,12 +137,14 @@ Public Class clsPatterns
|
||||
Public Shared Sub UpdateMultipleControlsInCache(updates As Dictionary(Of String, Object))
|
||||
If updates Is Nothing OrElse updates.Count = 0 Then Return
|
||||
|
||||
SyncLock _ControlLookupCache
|
||||
For Each kvp In updates
|
||||
UpdateControlInCache(kvp.Key, kvp.Value)
|
||||
Next
|
||||
LOGGER.Debug($"Batch cache update completed for {updates.Count} controls")
|
||||
End SyncLock
|
||||
' FIX: Gleicher Lock-Anker wie UpdateControlInCache → kein Deadlock
|
||||
' Die eigentliche Aktualisierung läuft sequenziell über UpdateControlInCache,
|
||||
' da SyncLock in VB.NET re-entrant auf demselben Thread ist.
|
||||
For Each kvp In updates
|
||||
UpdateControlInCache(kvp.Key, kvp.Value)
|
||||
Next
|
||||
|
||||
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}
|
||||
@@ -145,34 +154,39 @@ Public Class clsPatterns
|
||||
End Function
|
||||
|
||||
Public Shared Function ReplaceAllValues(input As String, panel As DevExpress.XtraEditors.XtraScrollableControl, is_SQL As Boolean) As String
|
||||
Dim oResult = input
|
||||
Try
|
||||
Dim result = input
|
||||
|
||||
If Not HasAnyPatterns(result) Then
|
||||
Return result
|
||||
If Not HasAnyPatterns(oResult) Then
|
||||
Return oResult
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"input BEFORE replacing: [{result}]")
|
||||
result = ReplaceInternalValues(result)
|
||||
LOGGER.Debug($"input BEFORE replacing: [{oResult}]")
|
||||
oResult = ReplaceInternalValues(oResult)
|
||||
|
||||
If Not IsNothing(CURRENT_WMFILE) Then
|
||||
result = ReplaceWindreamIndicies(result, CURRENT_WMFILE, is_SQL)
|
||||
oResult = ReplaceWindreamIndicies(oResult, CURRENT_WMFILE, is_SQL)
|
||||
End If
|
||||
If IDB_ACTIVE = True Then
|
||||
result = ReplaceIDBAttributes(result, is_SQL)
|
||||
oResult = ReplaceIDBAttributes(oResult, is_SQL)
|
||||
End If
|
||||
'vorher hinter result = ReplaceInternalValues(result)
|
||||
result = ReplaceControlValues(result, panel, is_SQL)
|
||||
oResult = ReplaceControlValues(oResult, panel, is_SQL)
|
||||
|
||||
If Not IsNothing(result) Then
|
||||
result = ReplaceUserValues(result)
|
||||
LOGGER.Debug($"input AFTER replacing: [{result}]")
|
||||
If Not IsNothing(oResult) Then
|
||||
oResult = ReplaceUserValues(oResult)
|
||||
LOGGER.Debug($"input AFTER replacing: [{oResult}]")
|
||||
End If
|
||||
|
||||
Return result
|
||||
Return oResult
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
LOGGER.Info("Error in ReplaceAllValues:" & ex.Message)
|
||||
LOGGER.Error($"❌ CRITICAL ERROR in ReplaceAllValues!")
|
||||
LOGGER.Error($" Input: [{input}]")
|
||||
LOGGER.Error($" Last successful result: [{oResult}]")
|
||||
LOGGER.Error($" Exception Type: [{ex.GetType().Name}]")
|
||||
LOGGER.Error($" Message: [{ex.Message}]")
|
||||
LOGGER.Error($" StackTrace: [{ex.StackTrace}]")
|
||||
Return input
|
||||
End Try
|
||||
End Function
|
||||
@@ -259,14 +273,23 @@ Public Class clsPatterns
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
LOGGER.Info("Error in ReplaceUserValues:" & ex.Message)
|
||||
Return input ' FIX: Originalwert zurückgeben statt implizit Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Shared Sub RecursiveAddToCache(ctrl As Control, cache As Dictionary(Of String, Control))
|
||||
cache(ctrl.Name) = ctrl
|
||||
For Each child As Control In ctrl.Controls
|
||||
RecursiveAddToCache(child, cache)
|
||||
Next
|
||||
Private Shared Sub RecursiveAddToCache(rootCtrl As Control, cache As Dictionary(Of String, Control))
|
||||
Dim stack As New Stack(Of Control)()
|
||||
stack.Push(rootCtrl)
|
||||
|
||||
While stack.Count > 0
|
||||
Dim ctrl As Control = stack.Pop()
|
||||
If Not String.IsNullOrEmpty(ctrl.Name) Then
|
||||
cache(ctrl.Name) = ctrl
|
||||
End If
|
||||
For Each child As Control In ctrl.Controls
|
||||
stack.Push(child)
|
||||
Next
|
||||
End While
|
||||
End Sub
|
||||
Public Shared Function ReplaceControlValues(pInput As String, oPanel As DevExpress.XtraEditors.XtraScrollableControl, oIsSQL As Boolean) As String
|
||||
Dim oResult = pInput
|
||||
@@ -280,8 +303,9 @@ Public Class clsPatterns
|
||||
LOGGER.Debug($"Control cache initialized with {_ControlLookupCache.Count} controls")
|
||||
End If
|
||||
End SyncLock
|
||||
Try
|
||||
|
||||
Try
|
||||
LOGGER.Debug($"Starting ReplaceControlValues with input: [{oResult}] for document ID: {CURRENT_DOC_ID}")
|
||||
Dim oTryCounter = 0
|
||||
|
||||
While ContainsPattern(oResult, PATTERN_CTRL)
|
||||
@@ -349,12 +373,28 @@ Public Class clsPatterns
|
||||
Case GetType(LookupControl3)
|
||||
Dim oLookupControl3 As LookupControl3 = oControl
|
||||
|
||||
If oLookupControl3.Properties.SelectedValues.Count > 1 Then
|
||||
LOGGER.Debug($"LookupControl3 mit mehr als 1 Value")
|
||||
Dim oIndex As Integer = 0
|
||||
For Each oString As String In oLookupControl3.Properties.SelectedValues
|
||||
If oIndex = 0 Then
|
||||
|
||||
' ========== FIX START: NULL-Check ==========
|
||||
Dim selectedValues As List(Of String) = Nothing
|
||||
Try
|
||||
selectedValues = oLookupControl3.Properties.SelectedValues
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues not accessible: {ex.Message}")
|
||||
selectedValues = Nothing
|
||||
End Try
|
||||
|
||||
If selectedValues Is Nothing Then
|
||||
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues is Nothing! Using ERROR_REPLACE_VALUE")
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
ElseIf selectedValues.Count = 0 Then
|
||||
LOGGER.Warn($"⚠️ LookupControl [{oControlName}] SelectedValues is empty! Using ERROR_REPLACE_VALUE")
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
' ========== FIX END ==========
|
||||
ElseIf selectedValues.Count > 1 Then
|
||||
LOGGER.Debug($"LookupControl3 [{oControlName}] mit mehr als 1 Value")
|
||||
Dim oIndex As Integer = 0
|
||||
For Each oString As String In selectedValues
|
||||
If oIndex = 0 Then
|
||||
oReplaceValue = oString
|
||||
Else
|
||||
oReplaceValue += "', '" + oString
|
||||
@@ -362,13 +402,12 @@ Public Class clsPatterns
|
||||
oIndex += 1
|
||||
Next
|
||||
oIsSQL = False
|
||||
ElseIf oLookupControl3.Properties.SelectedValues.Count = 1 Then
|
||||
LOGGER.Debug($"LookupControl3 mit genau einem Value")
|
||||
oReplaceValue = oLookupControl3.Properties.SelectedValues(0)
|
||||
Else
|
||||
' LOGGER.Warn($"SelectedValues of LookUpControl scheint empty oder leer zu sein! Ersetzen mit ErrorReplaceValue!")
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
Else ' Count = 1
|
||||
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}")
|
||||
|
||||
Case GetType(Windows.Forms.ComboBox)
|
||||
@@ -376,7 +415,7 @@ Public Class clsPatterns
|
||||
|
||||
Case GetType(CheckBox)
|
||||
Dim oCheckBox As CheckBox = oControl
|
||||
oReplaceValue = oCheckBox.Checked
|
||||
oReplaceValue = If(oCheckBox.Checked, "1", "0") ' Explizite String-Konvertierung
|
||||
|
||||
Case GetType(GridControl)
|
||||
Dim oGrid As GridControl = oControl
|
||||
@@ -401,10 +440,18 @@ 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 oReplaceValue Is Nothing Then
|
||||
LOGGER.Warn($"⚠️ oReplaceValue is Nothing for control [{oControlName}]! Setting to ERROR_REPLACE_VALUE")
|
||||
oReplaceValue = ERROR_REPLACE_VALUE
|
||||
End If
|
||||
|
||||
If Not TypeOf oReplaceValue Is String Then
|
||||
LOGGER.Warn($"⚠️ oReplaceValue is not a String for control [{oControlName}]! Type: [{oReplaceValue.GetType().Name}]. Converting to String.")
|
||||
oReplaceValue = oReplaceValue.ToString()
|
||||
End If
|
||||
If oIsSQL = True Then
|
||||
'LOGGER.Debug($"IS_SQL = True - oReplaceValue = {oReplaceValue}")
|
||||
'LOGGER.Debug($"oReplaceValue = {oReplaceValue}")
|
||||
oReplaceValue = oReplaceValue.Replace("'", "''")
|
||||
oReplaceValue = SafeSqlEscape(oReplaceValue)
|
||||
End If
|
||||
oResult = ReplacePattern(oResult, PATTERN_CTRL, oReplaceValue)
|
||||
Else
|
||||
@@ -420,19 +467,52 @@ Public Class clsPatterns
|
||||
Return oResult
|
||||
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 value Is Nothing Then
|
||||
LOGGER.Warn("[SafeSqlEscape] Value is Nothing → returning ERROR_REPLACE_VALUE")
|
||||
Return ERROR_REPLACE_VALUE
|
||||
End If
|
||||
|
||||
Dim strValue As String
|
||||
Try
|
||||
strValue = value.ToString()
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
LOGGER.Warn($"[SafeSqlEscape] ToString() failed: {ex.Message} → returning ERROR_REPLACE_VALUE")
|
||||
Return ERROR_REPLACE_VALUE
|
||||
End Try
|
||||
|
||||
If String.IsNullOrEmpty(strValue) Then
|
||||
LOGGER.Warn("[SafeSqlEscape] String is empty → returning ERROR_REPLACE_VALUE")
|
||||
Return ERROR_REPLACE_VALUE
|
||||
End If
|
||||
|
||||
Dim escaped = strValue.Replace("'", "''")
|
||||
LOGGER.Debug($"[SafeSqlEscape] Output: [{escaped}]")
|
||||
Return escaped
|
||||
End Function
|
||||
Public Shared Function ReplaceWindreamIndicies(pInput As String, pDocument As WMObject, pIsSQL As Boolean) As String
|
||||
Try
|
||||
Dim oResult = pInput
|
||||
Dim oTryCounter As Integer = 0
|
||||
|
||||
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
|
||||
Dim oWMValue As String = pDocument.GetVariableValue(oIndexName)
|
||||
|
||||
If IsNothing(oWMValue) And oTryCounter = MAX_TRY_COUNT Then
|
||||
Throw New Exception("Max tries in ReplaceWindreamIndicies exceeded.")
|
||||
If oIndexName = "@@DISPLAY_ONLY" Then
|
||||
oWMValue = String.Empty
|
||||
Else
|
||||
oWMValue = pDocument.GetVariableValue(oIndexName)
|
||||
End If
|
||||
|
||||
' FIX 1: >= statt = → Counter springt in 10er-Schritten, trifft niemals genau 5
|
||||
If IsNothing(oWMValue) AndAlso oTryCounter >= MAX_TRY_COUNT Then
|
||||
LOGGER.Warn($"[ReplaceWindreamIndicies] Max tries for [{oIndexName}] exceeded → replacing with empty string")
|
||||
oResult = ReplacePattern(oResult, PATTERN_WMI, String.Empty)
|
||||
Continue While
|
||||
End If
|
||||
|
||||
If oWMValue IsNot Nothing Then
|
||||
@@ -442,6 +522,11 @@ Public Class clsPatterns
|
||||
LOGGER.Debug($"oReplaceValue = {oWMValue}")
|
||||
End If
|
||||
oResult = ReplacePattern(oResult, PATTERN_WMI, oWMValue)
|
||||
Else
|
||||
' FIX 2: Else-Branch — Nothing-Wert ersetzt den Placeholder mit leerem String
|
||||
' verhindert Endless Loop wenn Windream-Index keinen Wert hat
|
||||
LOGGER.Warn($"[ReplaceWindreamIndicies] WMI value for [{oIndexName}] is Nothing → replacing with empty string (counter: {oTryCounter})")
|
||||
oResult = ReplacePattern(oResult, PATTERN_WMI, String.Empty)
|
||||
End If
|
||||
|
||||
' Increase counter by 10 to avoid DDOSing the Windream Service
|
||||
@@ -458,6 +543,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}")
|
||||
While ContainsPattern(result, PATTERN_IDBA)
|
||||
|
||||
Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value
|
||||
@@ -509,6 +595,7 @@ Public Class clsPatterns
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
LOGGER.Info("Error in ReplaceIDBAttributes:" & ex.Message)
|
||||
Return input ' FIX: Originalwert zurückgeben statt implizit Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
143
app/TaskFlow/frmColumn_Detail.Designer.vb
generated
143
app/TaskFlow/frmColumn_Detail.Designer.vb
generated
@@ -37,7 +37,9 @@ Partial Class frmColumn_Detail
|
||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
||||
Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.SimpleButton4 = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.FORMULA_SQLTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.SimpleButton3 = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.FORMULA_EXPRESSIONTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.LU_CAPTIONTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.GUIDTextBox = New DevExpress.XtraEditors.TextEdit()
|
||||
@@ -88,6 +90,8 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem23 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.LayoutControlItem21 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.LayoutControlItem24 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.LayoutControlItem26 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.LayoutControlItem27 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.LayoutControlItem15 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -140,6 +144,8 @@ Partial Class frmColumn_Detail
|
||||
CType(Me.LayoutControlItem23, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlItem27, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
@@ -237,7 +243,9 @@ Partial Class frmColumn_Detail
|
||||
'
|
||||
'LayoutControl1
|
||||
'
|
||||
Me.LayoutControl1.Controls.Add(Me.LabelControl1)
|
||||
Me.LayoutControl1.Controls.Add(Me.SimpleButton4)
|
||||
Me.LayoutControl1.Controls.Add(Me.FORMULA_SQLTextBox)
|
||||
Me.LayoutControl1.Controls.Add(Me.SimpleButton3)
|
||||
Me.LayoutControl1.Controls.Add(Me.FORMULA_EXPRESSIONTextBox)
|
||||
Me.LayoutControl1.Controls.Add(Me.LU_CAPTIONTextBox)
|
||||
Me.LayoutControl1.Controls.Add(Me.GUIDTextBox)
|
||||
@@ -266,21 +274,31 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControl1.Name = "LayoutControl1"
|
||||
Me.LayoutControl1.Root = Me.Root
|
||||
'
|
||||
'LabelControl1
|
||||
'SimpleButton4
|
||||
'
|
||||
Me.LabelControl1.Appearance.Font = CType(resources.GetObject("LabelControl1.Appearance.Font"), System.Drawing.Font)
|
||||
Me.LabelControl1.Appearance.Options.UseFont = True
|
||||
Me.LabelControl1.Appearance.Options.UseTextOptions = True
|
||||
Me.LabelControl1.Appearance.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap
|
||||
resources.ApplyResources(Me.LabelControl1, "LabelControl1")
|
||||
Me.LabelControl1.Name = "LabelControl1"
|
||||
Me.LabelControl1.StyleController = Me.LayoutControl1
|
||||
resources.ApplyResources(Me.SimpleButton4, "SimpleButton4")
|
||||
Me.SimpleButton4.Name = "SimpleButton4"
|
||||
Me.SimpleButton4.StyleController = Me.LayoutControl1
|
||||
'
|
||||
'FORMULA_SQLTextBox
|
||||
'
|
||||
Me.FORMULA_SQLTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "FORMULA_SQL", True))
|
||||
resources.ApplyResources(Me.FORMULA_SQLTextBox, "FORMULA_SQLTextBox")
|
||||
Me.FORMULA_SQLTextBox.Name = "FORMULA_SQLTextBox"
|
||||
Me.FORMULA_SQLTextBox.ReadOnly = True
|
||||
'
|
||||
'SimpleButton3
|
||||
'
|
||||
resources.ApplyResources(Me.SimpleButton3, "SimpleButton3")
|
||||
Me.SimpleButton3.Name = "SimpleButton3"
|
||||
Me.SimpleButton3.StyleController = Me.LayoutControl1
|
||||
'
|
||||
'FORMULA_EXPRESSIONTextBox
|
||||
'
|
||||
Me.FORMULA_EXPRESSIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "FORMULA_EXPRESSION", True))
|
||||
resources.ApplyResources(Me.FORMULA_EXPRESSIONTextBox, "FORMULA_EXPRESSIONTextBox")
|
||||
Me.FORMULA_EXPRESSIONTextBox.Name = "FORMULA_EXPRESSIONTextBox"
|
||||
Me.FORMULA_EXPRESSIONTextBox.ReadOnly = True
|
||||
'
|
||||
'LU_CAPTIONTextBox
|
||||
'
|
||||
@@ -482,9 +500,9 @@ Partial Class frmColumn_Detail
|
||||
'
|
||||
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
|
||||
Me.Root.GroupBordersVisible = False
|
||||
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem12, Me.LayoutControlItem11, Me.LayoutControlItem13, Me.LayoutControlGroup1, Me.LayoutControlItem18, Me.LayoutControlItem19, Me.LayoutControlItem23, Me.LayoutControlItem21, Me.LayoutControlItem24, Me.LayoutControlItem15})
|
||||
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem12, Me.LayoutControlItem11, Me.LayoutControlItem13, Me.LayoutControlGroup1, Me.LayoutControlItem18, Me.LayoutControlItem19, Me.LayoutControlItem23, Me.LayoutControlItem21, Me.LayoutControlItem24, Me.LayoutControlItem26, Me.LayoutControlItem27, Me.LayoutControlItem15})
|
||||
Me.Root.Name = "Root"
|
||||
Me.Root.Size = New System.Drawing.Size(593, 816)
|
||||
Me.Root.Size = New System.Drawing.Size(630, 853)
|
||||
Me.Root.TextVisible = False
|
||||
'
|
||||
'LayoutControlItem1
|
||||
@@ -493,7 +511,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.LayoutControlItem1.Name = "LayoutControlItem1"
|
||||
Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem1.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem1.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
|
||||
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -503,7 +521,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 40)
|
||||
Me.LayoutControlItem2.Name = "LayoutControlItem2"
|
||||
Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem2.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem2.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
|
||||
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -513,7 +531,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 80)
|
||||
Me.LayoutControlItem3.Name = "LayoutControlItem3"
|
||||
Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem3.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem3.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
|
||||
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -523,7 +541,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 120)
|
||||
Me.LayoutControlItem4.Name = "LayoutControlItem4"
|
||||
Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem4.Size = New System.Drawing.Size(286, 40)
|
||||
Me.LayoutControlItem4.Size = New System.Drawing.Size(304, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4")
|
||||
Me.LayoutControlItem4.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -533,16 +551,16 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 200)
|
||||
Me.LayoutControlItem5.Name = "LayoutControlItem5"
|
||||
Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem5.Size = New System.Drawing.Size(488, 46)
|
||||
Me.LayoutControlItem5.Size = New System.Drawing.Size(520, 46)
|
||||
resources.ApplyResources(Me.LayoutControlItem5, "LayoutControlItem5")
|
||||
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem6
|
||||
'
|
||||
Me.LayoutControlItem6.Control = Me.SimpleButton1
|
||||
Me.LayoutControlItem6.Location = New System.Drawing.Point(488, 200)
|
||||
Me.LayoutControlItem6.Location = New System.Drawing.Point(520, 200)
|
||||
Me.LayoutControlItem6.Name = "LayoutControlItem6"
|
||||
Me.LayoutControlItem6.Size = New System.Drawing.Size(85, 46)
|
||||
Me.LayoutControlItem6.Size = New System.Drawing.Size(90, 46)
|
||||
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem6.TextVisible = False
|
||||
'
|
||||
@@ -552,7 +570,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 326)
|
||||
Me.LayoutControlItem8.Name = "LayoutControlItem8"
|
||||
Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem8.Size = New System.Drawing.Size(488, 46)
|
||||
Me.LayoutControlItem8.Size = New System.Drawing.Size(520, 46)
|
||||
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
|
||||
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -562,65 +580,65 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 246)
|
||||
Me.LayoutControlItem7.Name = "LayoutControlItem7"
|
||||
Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem7.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem7.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem7, "LayoutControlItem7")
|
||||
Me.LayoutControlItem7.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem9
|
||||
'
|
||||
Me.LayoutControlItem9.Control = Me.SimpleButton2
|
||||
Me.LayoutControlItem9.Location = New System.Drawing.Point(488, 326)
|
||||
Me.LayoutControlItem9.Location = New System.Drawing.Point(520, 326)
|
||||
Me.LayoutControlItem9.Name = "LayoutControlItem9"
|
||||
Me.LayoutControlItem9.Size = New System.Drawing.Size(85, 46)
|
||||
Me.LayoutControlItem9.Size = New System.Drawing.Size(90, 46)
|
||||
Me.LayoutControlItem9.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem9.TextVisible = False
|
||||
'
|
||||
'LayoutControlItem10
|
||||
'
|
||||
Me.LayoutControlItem10.Control = Me.TextEdit7
|
||||
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 547)
|
||||
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 504)
|
||||
Me.LayoutControlItem10.Name = "LayoutControlItem10"
|
||||
Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem10.Size = New System.Drawing.Size(286, 40)
|
||||
Me.LayoutControlItem10.Size = New System.Drawing.Size(304, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem10, "LayoutControlItem10")
|
||||
Me.LayoutControlItem10.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem12
|
||||
'
|
||||
Me.LayoutControlItem12.Control = Me.CHANGED_WHOTextBox
|
||||
Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 587)
|
||||
Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 544)
|
||||
Me.LayoutControlItem12.Name = "LayoutControlItem12"
|
||||
Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem12.Size = New System.Drawing.Size(286, 40)
|
||||
Me.LayoutControlItem12.Size = New System.Drawing.Size(304, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem12, "LayoutControlItem12")
|
||||
Me.LayoutControlItem12.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem11
|
||||
'
|
||||
Me.LayoutControlItem11.Control = Me.TextEdit8
|
||||
Me.LayoutControlItem11.Location = New System.Drawing.Point(286, 547)
|
||||
Me.LayoutControlItem11.Location = New System.Drawing.Point(304, 504)
|
||||
Me.LayoutControlItem11.Name = "LayoutControlItem11"
|
||||
Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem11.Size = New System.Drawing.Size(287, 40)
|
||||
Me.LayoutControlItem11.Size = New System.Drawing.Size(306, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem11, "LayoutControlItem11")
|
||||
Me.LayoutControlItem11.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem13
|
||||
'
|
||||
Me.LayoutControlItem13.Control = Me.TextEdit10
|
||||
Me.LayoutControlItem13.Location = New System.Drawing.Point(286, 587)
|
||||
Me.LayoutControlItem13.Location = New System.Drawing.Point(304, 544)
|
||||
Me.LayoutControlItem13.Name = "LayoutControlItem13"
|
||||
Me.LayoutControlItem13.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem13.Size = New System.Drawing.Size(287, 40)
|
||||
Me.LayoutControlItem13.Size = New System.Drawing.Size(306, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem13, "LayoutControlItem13")
|
||||
Me.LayoutControlItem13.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlGroup1
|
||||
'
|
||||
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem16, Me.LayoutControlItem14, Me.LayoutControlItem17, Me.LayoutControlItem25, Me.LayoutControlItem20, Me.LayoutControlItem22})
|
||||
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 627)
|
||||
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 584)
|
||||
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
|
||||
Me.LayoutControlGroup1.Size = New System.Drawing.Size(573, 169)
|
||||
Me.LayoutControlGroup1.Size = New System.Drawing.Size(610, 249)
|
||||
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
|
||||
'
|
||||
'LayoutControlItem16
|
||||
@@ -628,7 +646,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem16.Control = Me.VALIDATIONCheckbox
|
||||
Me.LayoutControlItem16.Location = New System.Drawing.Point(0, 0)
|
||||
Me.LayoutControlItem16.Name = "LayoutControlItem16"
|
||||
Me.LayoutControlItem16.Size = New System.Drawing.Size(274, 24)
|
||||
Me.LayoutControlItem16.Size = New System.Drawing.Size(292, 24)
|
||||
Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem16.TextVisible = False
|
||||
'
|
||||
@@ -637,7 +655,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem14.Control = Me.READ_ONLYCheckBox
|
||||
Me.LayoutControlItem14.Location = New System.Drawing.Point(0, 24)
|
||||
Me.LayoutControlItem14.Name = "LayoutControlItem14"
|
||||
Me.LayoutControlItem14.Size = New System.Drawing.Size(549, 22)
|
||||
Me.LayoutControlItem14.Size = New System.Drawing.Size(586, 22)
|
||||
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem14.TextVisible = False
|
||||
'
|
||||
@@ -646,7 +664,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem17.Control = Me.ADVANCED_LOOKUPCheckbox
|
||||
Me.LayoutControlItem17.Location = New System.Drawing.Point(0, 46)
|
||||
Me.LayoutControlItem17.Name = "LayoutControlItem17"
|
||||
Me.LayoutControlItem17.Size = New System.Drawing.Size(549, 22)
|
||||
Me.LayoutControlItem17.Size = New System.Drawing.Size(586, 22)
|
||||
Me.LayoutControlItem17.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem17.TextVisible = False
|
||||
'
|
||||
@@ -655,16 +673,16 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem25.Control = Me.LOAD_IDX_VALUECheckBox
|
||||
Me.LayoutControlItem25.Location = New System.Drawing.Point(0, 68)
|
||||
Me.LayoutControlItem25.Name = "LayoutControlItem25"
|
||||
Me.LayoutControlItem25.Size = New System.Drawing.Size(549, 22)
|
||||
Me.LayoutControlItem25.Size = New System.Drawing.Size(586, 22)
|
||||
Me.LayoutControlItem25.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem25.TextVisible = False
|
||||
'
|
||||
'LayoutControlItem20
|
||||
'
|
||||
Me.LayoutControlItem20.Control = Me.SUMMARY_FUNCTIONCombobox
|
||||
Me.LayoutControlItem20.Location = New System.Drawing.Point(274, 0)
|
||||
Me.LayoutControlItem20.Location = New System.Drawing.Point(292, 0)
|
||||
Me.LayoutControlItem20.Name = "LayoutControlItem20"
|
||||
Me.LayoutControlItem20.Size = New System.Drawing.Size(275, 24)
|
||||
Me.LayoutControlItem20.Size = New System.Drawing.Size(294, 24)
|
||||
resources.ApplyResources(Me.LayoutControlItem20, "LayoutControlItem20")
|
||||
Me.LayoutControlItem20.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -674,7 +692,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem22.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "INHERIT_VALUE", True))
|
||||
Me.LayoutControlItem22.Location = New System.Drawing.Point(0, 90)
|
||||
Me.LayoutControlItem22.Name = "LayoutControlItem22"
|
||||
Me.LayoutControlItem22.Size = New System.Drawing.Size(549, 34)
|
||||
Me.LayoutControlItem22.Size = New System.Drawing.Size(586, 114)
|
||||
Me.LayoutControlItem22.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem22.TextVisible = False
|
||||
'
|
||||
@@ -684,17 +702,17 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem18.Location = New System.Drawing.Point(0, 372)
|
||||
Me.LayoutControlItem18.Name = "LayoutControlItem18"
|
||||
Me.LayoutControlItem18.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem18.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem18.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem18, "LayoutControlItem18")
|
||||
Me.LayoutControlItem18.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem19
|
||||
'
|
||||
Me.LayoutControlItem19.Control = Me.SEQUENCETextBox
|
||||
Me.LayoutControlItem19.Location = New System.Drawing.Point(286, 120)
|
||||
Me.LayoutControlItem19.Location = New System.Drawing.Point(304, 120)
|
||||
Me.LayoutControlItem19.Name = "LayoutControlItem19"
|
||||
Me.LayoutControlItem19.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem19.Size = New System.Drawing.Size(287, 40)
|
||||
Me.LayoutControlItem19.Size = New System.Drawing.Size(306, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem19, "LayoutControlItem19")
|
||||
Me.LayoutControlItem19.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -705,7 +723,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem23.Location = New System.Drawing.Point(0, 286)
|
||||
Me.LayoutControlItem23.Name = "LayoutControlItem23"
|
||||
Me.LayoutControlItem23.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem23.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem23.Size = New System.Drawing.Size(610, 40)
|
||||
Me.LayoutControlItem23.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem21
|
||||
@@ -714,7 +732,7 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem21.Location = New System.Drawing.Point(0, 160)
|
||||
Me.LayoutControlItem21.Name = "LayoutControlItem21"
|
||||
Me.LayoutControlItem21.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem21.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem21.Size = New System.Drawing.Size(610, 40)
|
||||
resources.ApplyResources(Me.LayoutControlItem21, "LayoutControlItem21")
|
||||
Me.LayoutControlItem21.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
@@ -724,16 +742,35 @@ Partial Class frmColumn_Detail
|
||||
Me.LayoutControlItem24.Location = New System.Drawing.Point(0, 412)
|
||||
Me.LayoutControlItem24.Name = "LayoutControlItem24"
|
||||
Me.LayoutControlItem24.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem24.Size = New System.Drawing.Size(573, 40)
|
||||
Me.LayoutControlItem24.Size = New System.Drawing.Size(520, 46)
|
||||
resources.ApplyResources(Me.LayoutControlItem24, "LayoutControlItem24")
|
||||
Me.LayoutControlItem24.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem26
|
||||
'
|
||||
Me.LayoutControlItem26.Control = Me.SimpleButton3
|
||||
Me.LayoutControlItem26.Location = New System.Drawing.Point(520, 412)
|
||||
Me.LayoutControlItem26.Name = "LayoutControlItem26"
|
||||
Me.LayoutControlItem26.Size = New System.Drawing.Size(90, 46)
|
||||
Me.LayoutControlItem26.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem26.TextVisible = False
|
||||
'
|
||||
'LayoutControlItem27
|
||||
'
|
||||
Me.LayoutControlItem27.Control = Me.FORMULA_SQLTextBox
|
||||
Me.LayoutControlItem27.Location = New System.Drawing.Point(0, 458)
|
||||
Me.LayoutControlItem27.Name = "LayoutControlItem27"
|
||||
Me.LayoutControlItem27.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
|
||||
Me.LayoutControlItem27.Size = New System.Drawing.Size(520, 46)
|
||||
resources.ApplyResources(Me.LayoutControlItem27, "LayoutControlItem27")
|
||||
Me.LayoutControlItem27.TextSize = New System.Drawing.Size(110, 13)
|
||||
'
|
||||
'LayoutControlItem15
|
||||
'
|
||||
Me.LayoutControlItem15.Control = Me.LabelControl1
|
||||
Me.LayoutControlItem15.Location = New System.Drawing.Point(0, 452)
|
||||
Me.LayoutControlItem15.Control = Me.SimpleButton4
|
||||
Me.LayoutControlItem15.Location = New System.Drawing.Point(520, 458)
|
||||
Me.LayoutControlItem15.Name = "LayoutControlItem15"
|
||||
Me.LayoutControlItem15.Size = New System.Drawing.Size(573, 95)
|
||||
Me.LayoutControlItem15.Size = New System.Drawing.Size(90, 46)
|
||||
Me.LayoutControlItem15.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.LayoutControlItem15.TextVisible = False
|
||||
'
|
||||
@@ -802,6 +839,8 @@ Partial Class frmColumn_Detail
|
||||
CType(Me.LayoutControlItem23, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlItem21, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlItem24, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlItem26, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlItem27, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout
|
||||
@@ -870,6 +909,10 @@ End Sub
|
||||
Friend WithEvents FORMULA_EXPRESSIONTextBox As TextBox
|
||||
Friend WithEvents LayoutControlItem24 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents LayoutControlItem25 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents SimpleButton3 As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents LayoutControlItem26 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents SimpleButton4 As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents FORMULA_SQLTextBox As TextBox
|
||||
Friend WithEvents LayoutControlItem27 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents LayoutControlItem15 As DevExpress.XtraLayout.LayoutControlItem
|
||||
End Class
|
||||
|
||||
@@ -149,13 +149,13 @@
|
||||
<value>RibbonPage1</value>
|
||||
</data>
|
||||
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>593, 67</value>
|
||||
<value>630, 67</value>
|
||||
</data>
|
||||
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 883</value>
|
||||
<value>0, 920</value>
|
||||
</data>
|
||||
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>593, 22</value>
|
||||
<value>630, 22</value>
|
||||
</data>
|
||||
<data name=">>RibbonStatusBar1.Name" xml:space="preserve">
|
||||
<value>RibbonStatusBar1</value>
|
||||
@@ -184,50 +184,88 @@
|
||||
<data name="RibbonPage2.Text" xml:space="preserve">
|
||||
<value>RibbonPage2</value>
|
||||
</data>
|
||||
<data name="LabelControl1.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 8.25pt</value>
|
||||
<data name="SimpleButton4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>532, 470</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v21.2" name="DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="LabelControl1.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v21.2">
|
||||
<value>None</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="SimpleButton4.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>10, 10, 10, 10</value>
|
||||
</data>
|
||||
<data name="LabelControl1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 464</value>
|
||||
</data>
|
||||
<data name="LabelControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>569, 91</value>
|
||||
<data name="SimpleButton4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 42</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="LabelControl1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>30</value>
|
||||
<data name="SimpleButton4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>33</value>
|
||||
</data>
|
||||
<data name="LabelControl1.Text" xml:space="preserve">
|
||||
<value>In der Formel nutzen wir die DataColumn.Expression‑Ausdruckssprache von ADO.NET
|
||||
Kurz: ADO.NET DataColumn Expression Language.
|
||||
Die Spaltennamen sind hier relevant.
|
||||
Beispiele:
|
||||
Multiplikation: [colMENGE] * [colPREIS]
|
||||
Verkettung: [colVORNAME] + ' - ' [colNACHNAME]
|
||||
IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
</value>
|
||||
<data name="SimpleButton4.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name=">>LabelControl1.Name" xml:space="preserve">
|
||||
<value>LabelControl1</value>
|
||||
<data name=">>SimpleButton4.Name" xml:space="preserve">
|
||||
<value>SimpleButton4</value>
|
||||
</data>
|
||||
<data name=">>LabelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<data name=">>SimpleButton4.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>LabelControl1.Parent" xml:space="preserve">
|
||||
<data name=">>SimpleButton4.Parent" xml:space="preserve">
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>LabelControl1.ZOrder" xml:space="preserve">
|
||||
<data name=">>SimpleButton4.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="FORMULA_SQLTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 478</value>
|
||||
</data>
|
||||
<data name="FORMULA_SQLTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>378, 20</value>
|
||||
</data>
|
||||
<data name="FORMULA_SQLTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>32</value>
|
||||
</data>
|
||||
<data name=">>FORMULA_SQLTextBox.Name" xml:space="preserve">
|
||||
<value>FORMULA_SQLTextBox</value>
|
||||
</data>
|
||||
<data name=">>FORMULA_SQLTextBox.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>FORMULA_SQLTextBox.Parent" xml:space="preserve">
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>FORMULA_SQLTextBox.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="SimpleButton3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>532, 424</value>
|
||||
</data>
|
||||
<data name="SimpleButton3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>10, 10, 10, 10</value>
|
||||
</data>
|
||||
<data name="SimpleButton3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 42</value>
|
||||
</data>
|
||||
<data name="SimpleButton3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>31</value>
|
||||
</data>
|
||||
<data name="SimpleButton3.Text" xml:space="preserve">
|
||||
<value>...</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton3.Name" xml:space="preserve">
|
||||
<value>SimpleButton3</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton3.Parent" xml:space="preserve">
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton3.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="FORMULA_EXPRESSIONTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 432</value>
|
||||
</data>
|
||||
<data name="FORMULA_EXPRESSIONTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>378, 20</value>
|
||||
</data>
|
||||
<data name="FORMULA_EXPRESSIONTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>29</value>
|
||||
@@ -242,13 +280,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>FORMULA_EXPRESSIONTextBox.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="LU_CAPTIONTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 306</value>
|
||||
</data>
|
||||
<data name="LU_CAPTIONTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="LU_CAPTIONTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>26</value>
|
||||
@@ -263,13 +301,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>LU_CAPTIONTextBox.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="GUIDTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 20</value>
|
||||
</data>
|
||||
<data name="GUIDTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="GUIDTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@@ -284,13 +322,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>GUIDTextBox.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="SPALTENNAMETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 60</value>
|
||||
</data>
|
||||
<data name="SPALTENNAMETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="SPALTENNAMETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
@@ -305,13 +343,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SPALTENNAMETextBox.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="SPALTEN_HEADERTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 100</value>
|
||||
</data>
|
||||
<data name="SPALTEN_HEADERTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="SPALTEN_HEADERTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
@@ -326,7 +364,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SPALTEN_HEADERTextBox.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="SPALTENBREITETextBox.EditValue" type="System.Decimal, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -339,7 +377,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="SPALTENBREITETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>144, 20</value>
|
||||
<value>162, 20</value>
|
||||
</data>
|
||||
<data name="SPALTENBREITETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
@@ -354,13 +392,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SPALTENBREITETextBox.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="REGEX_MATCHTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 220</value>
|
||||
</data>
|
||||
<data name="REGEX_MATCHTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>346, 20</value>
|
||||
<value>378, 20</value>
|
||||
</data>
|
||||
<data name="REGEX_MATCHTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
@@ -375,12 +413,11 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>REGEX_MATCHTextBox.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="SimpleButton1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>500, 212</value>
|
||||
<value>532, 212</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="SimpleButton1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>10, 10, 10, 10</value>
|
||||
</data>
|
||||
@@ -388,7 +425,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>10, 10, 10, 10</value>
|
||||
</data>
|
||||
<data name="SimpleButton1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>81, 42</value>
|
||||
<value>86, 42</value>
|
||||
</data>
|
||||
<data name="SimpleButton1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
@@ -406,13 +443,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton1.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="REGEX_MESSAGE_DETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 266</value>
|
||||
</data>
|
||||
<data name="REGEX_MESSAGE_DETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="REGEX_MESSAGE_DETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
@@ -427,13 +464,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>REGEX_MESSAGE_DETextBox.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="SQL_COMMANDTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 346</value>
|
||||
</data>
|
||||
<data name="SQL_COMMANDTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>346, 20</value>
|
||||
<value>378, 20</value>
|
||||
</data>
|
||||
<data name="SQL_COMMANDTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
@@ -448,16 +485,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SQL_COMMANDTextBox.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="SimpleButton2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>500, 338</value>
|
||||
<value>532, 338</value>
|
||||
</data>
|
||||
<data name="SimpleButton2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>10, 10, 10, 10</value>
|
||||
</data>
|
||||
<data name="SimpleButton2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>81, 42</value>
|
||||
<value>86, 42</value>
|
||||
</data>
|
||||
<data name="SimpleButton2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
@@ -475,13 +512,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SimpleButton2.ZOrder" xml:space="preserve">
|
||||
<value>15</value>
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="TextEdit7.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 567</value>
|
||||
<value>142, 524</value>
|
||||
</data>
|
||||
<data name="TextEdit7.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>144, 20</value>
|
||||
<value>162, 20</value>
|
||||
</data>
|
||||
<data name="TextEdit7.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
@@ -496,13 +533,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>TextEdit7.ZOrder" xml:space="preserve">
|
||||
<value>16</value>
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name="TextEdit8.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>428, 567</value>
|
||||
<value>446, 524</value>
|
||||
</data>
|
||||
<data name="TextEdit8.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 20</value>
|
||||
<value>164, 20</value>
|
||||
</data>
|
||||
<data name="TextEdit8.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
@@ -517,13 +554,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>TextEdit8.ZOrder" xml:space="preserve">
|
||||
<value>17</value>
|
||||
<value>19</value>
|
||||
</data>
|
||||
<data name="CHANGED_WHOTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 607</value>
|
||||
<value>142, 564</value>
|
||||
</data>
|
||||
<data name="CHANGED_WHOTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>144, 20</value>
|
||||
<value>162, 20</value>
|
||||
</data>
|
||||
<data name="CHANGED_WHOTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
@@ -538,13 +575,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>CHANGED_WHOTextBox.ZOrder" xml:space="preserve">
|
||||
<value>18</value>
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name="TextEdit10.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>428, 607</value>
|
||||
<value>446, 564</value>
|
||||
</data>
|
||||
<data name="TextEdit10.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 20</value>
|
||||
<value>164, 20</value>
|
||||
</data>
|
||||
<data name="TextEdit10.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
@@ -559,16 +596,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>TextEdit10.ZOrder" xml:space="preserve">
|
||||
<value>19</value>
|
||||
<value>21</value>
|
||||
</data>
|
||||
<data name="READ_ONLYCheckBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>24, 696</value>
|
||||
<value>24, 653</value>
|
||||
</data>
|
||||
<data name="READ_ONLYCheckBox.Properties.Caption" xml:space="preserve">
|
||||
<value>Read Only</value>
|
||||
</data>
|
||||
<data name="READ_ONLYCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>545, 18</value>
|
||||
<value>582, 18</value>
|
||||
</data>
|
||||
<data name="READ_ONLYCheckBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
@@ -583,16 +620,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>READ_ONLYCheckBox.ZOrder" xml:space="preserve">
|
||||
<value>20</value>
|
||||
<value>22</value>
|
||||
</data>
|
||||
<data name="LOAD_IDX_VALUECheckBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>24, 740</value>
|
||||
<value>24, 697</value>
|
||||
</data>
|
||||
<data name="LOAD_IDX_VALUECheckBox.Properties.Caption" xml:space="preserve">
|
||||
<value>Lade Indexdaten</value>
|
||||
</data>
|
||||
<data name="LOAD_IDX_VALUECheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>545, 18</value>
|
||||
<value>582, 18</value>
|
||||
</data>
|
||||
<data name="LOAD_IDX_VALUECheckBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>18</value>
|
||||
@@ -607,16 +644,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>LOAD_IDX_VALUECheckBox.ZOrder" xml:space="preserve">
|
||||
<value>21</value>
|
||||
<value>23</value>
|
||||
</data>
|
||||
<data name="VALIDATIONCheckbox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>24, 672</value>
|
||||
<value>24, 629</value>
|
||||
</data>
|
||||
<data name="VALIDATIONCheckbox.Properties.Caption" xml:space="preserve">
|
||||
<value>Muss ausgefüllt werden</value>
|
||||
</data>
|
||||
<data name="VALIDATIONCheckbox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>270, 18</value>
|
||||
<value>288, 18</value>
|
||||
</data>
|
||||
<data name="VALIDATIONCheckbox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>19</value>
|
||||
@@ -631,16 +668,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>VALIDATIONCheckbox.ZOrder" xml:space="preserve">
|
||||
<value>22</value>
|
||||
<value>24</value>
|
||||
</data>
|
||||
<data name="ADVANCED_LOOKUPCheckbox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>24, 718</value>
|
||||
<value>24, 675</value>
|
||||
</data>
|
||||
<data name="ADVANCED_LOOKUPCheckbox.Properties.Caption" xml:space="preserve">
|
||||
<value>Erweitertes Auswahl Control (für lange Listen)</value>
|
||||
</data>
|
||||
<data name="ADVANCED_LOOKUPCheckbox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>545, 18</value>
|
||||
<value>582, 18</value>
|
||||
</data>
|
||||
<data name="ADVANCED_LOOKUPCheckbox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>20</value>
|
||||
@@ -655,13 +692,13 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>ADVANCED_LOOKUPCheckbox.ZOrder" xml:space="preserve">
|
||||
<value>23</value>
|
||||
<value>25</value>
|
||||
</data>
|
||||
<data name="DEFAULTVALUETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 392</value>
|
||||
</data>
|
||||
<data name="DEFAULTVALUETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="DEFAULTVALUETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>21</value>
|
||||
@@ -676,19 +713,19 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>DEFAULTVALUETextBox.ZOrder" xml:space="preserve">
|
||||
<value>24</value>
|
||||
<value>26</value>
|
||||
</data>
|
||||
<data name="SEQUENCETextBox.EditValue" type="System.Decimal, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="SEQUENCETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>428, 140</value>
|
||||
<value>446, 140</value>
|
||||
</data>
|
||||
<data name="SEQUENCETextBox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="SEQUENCETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 20</value>
|
||||
<value>164, 20</value>
|
||||
</data>
|
||||
<data name="SEQUENCETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>22</value>
|
||||
@@ -703,10 +740,10 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SEQUENCETextBox.ZOrder" xml:space="preserve">
|
||||
<value>25</value>
|
||||
<value>27</value>
|
||||
</data>
|
||||
<data name="SUMMARY_FUNCTIONCombobox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 672</value>
|
||||
<value>438, 629</value>
|
||||
</data>
|
||||
<data name="SUMMARY_FUNCTIONCombobox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
|
||||
<value>Combo</value>
|
||||
@@ -715,7 +752,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value />
|
||||
</data>
|
||||
<data name="SUMMARY_FUNCTIONCombobox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 20</value>
|
||||
<value>168, 20</value>
|
||||
</data>
|
||||
<data name="SUMMARY_FUNCTIONCombobox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>23</value>
|
||||
@@ -730,7 +767,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>SUMMARY_FUNCTIONCombobox.ZOrder" xml:space="preserve">
|
||||
<value>26</value>
|
||||
<value>28</value>
|
||||
</data>
|
||||
<data name="TYPE_COLUMNComboBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 180</value>
|
||||
@@ -742,7 +779,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value />
|
||||
</data>
|
||||
<data name="TYPE_COLUMNComboBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>431, 20</value>
|
||||
<value>468, 20</value>
|
||||
</data>
|
||||
<data name="TYPE_COLUMNComboBox2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>27</value>
|
||||
@@ -757,16 +794,16 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>TYPE_COLUMNComboBox2.ZOrder" xml:space="preserve">
|
||||
<value>27</value>
|
||||
<value>29</value>
|
||||
</data>
|
||||
<data name="CheckEditInheritValue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>24, 762</value>
|
||||
<value>24, 719</value>
|
||||
</data>
|
||||
<data name="CheckEditInheritValue.Properties.Caption" xml:space="preserve">
|
||||
<value>Inherit Value (Vererbt den Wert der aktuellen Zelle auf alle nachfolgenden)</value>
|
||||
</data>
|
||||
<data name="CheckEditInheritValue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>545, 18</value>
|
||||
<value>582, 18</value>
|
||||
</data>
|
||||
<data name="CheckEditInheritValue.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>28</value>
|
||||
@@ -781,7 +818,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>LayoutControl1</value>
|
||||
</data>
|
||||
<data name=">>CheckEditInheritValue.ZOrder" xml:space="preserve">
|
||||
<value>28</value>
|
||||
<value>30</value>
|
||||
</data>
|
||||
<data name="LayoutControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
@@ -846,8 +883,11 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<data name="LayoutControlItem24.Text" xml:space="preserve">
|
||||
<value>Formel:</value>
|
||||
</data>
|
||||
<data name="LayoutControlItem27.Text" xml:space="preserve">
|
||||
<value>Formel SQL:</value>
|
||||
</data>
|
||||
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>593, 816</value>
|
||||
<value>630, 853</value>
|
||||
</data>
|
||||
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>33</value>
|
||||
@@ -874,7 +914,7 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>593, 905</value>
|
||||
<value>630, 942</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Segoe UI, 8.25pt</value>
|
||||
@@ -1098,6 +1138,18 @@ IIF([colSTATUS] = 'X', 'OK', 'NOK')
|
||||
<data name=">>LayoutControlItem24.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>LayoutControlItem26.Name" xml:space="preserve">
|
||||
<value>LayoutControlItem26</value>
|
||||
</data>
|
||||
<data name=">>LayoutControlItem26.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>LayoutControlItem27.Name" xml:space="preserve">
|
||||
<value>LayoutControlItem27</value>
|
||||
</data>
|
||||
<data name=">>LayoutControlItem27.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>LayoutControlItem15.Name" xml:space="preserve">
|
||||
<value>LayoutControlItem15</value>
|
||||
</data>
|
||||
|
||||
@@ -100,6 +100,7 @@ Public Class frmColumn_Detail
|
||||
LU_CAPTIONTextBox.Text,
|
||||
CheckEditInheritValue.Checked,
|
||||
FORMULA_EXPRESSIONTextBox.Text,
|
||||
FORMULA_SQLTextBox.Text,
|
||||
GUIDTextBox.Text
|
||||
)
|
||||
tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
@@ -206,4 +207,70 @@ Public Class frmColumn_Detail
|
||||
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SimpleButton3_Click(sender As Object, e As EventArgs) Handles SimpleButton3.Click
|
||||
' Alle verfügbaren Spalten für dieses Control laden
|
||||
Dim availableColumns As DataTable = GetAvailableColumnsForControl()
|
||||
|
||||
' Expression Designer öffnen
|
||||
Using designer As New frmExpression_Designer(availableColumns, FORMULA_EXPRESSIONTextBox.Text)
|
||||
If designer.ShowDialog() = DialogResult.OK Then
|
||||
FORMULA_EXPRESSIONTextBox.Text = designer.Expression
|
||||
End If
|
||||
End Using
|
||||
End Sub
|
||||
Private Function GetAvailableColumnsForControl() As DataTable
|
||||
' Spalten aus der aktuellen Control-Definition laden
|
||||
Dim oSQL = "SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & CURRENT_CONTROL_ID & " ORDER BY SEQUENCE"
|
||||
Dim dt As DataTable = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
Return dt
|
||||
End Function
|
||||
|
||||
Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles SimpleButton4.Click
|
||||
Dim oldSQL = FORMULA_SQLTextBox.Text
|
||||
CURRENT_DESIGN_TYPE = "SQL_SOURCE_TABLE_COLUMN"
|
||||
CURRENT_INDEX_ID = GUIDTextBox.Text
|
||||
Dim oForm2 As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {
|
||||
.SQLCommand = FORMULA_SQLTextBox.Text,
|
||||
.SQLConnection = 0
|
||||
}
|
||||
oForm2.ShowDialog()
|
||||
|
||||
If oForm2.DialogResult = DialogResult.OK Then
|
||||
If oldSQL <> oForm2.SQLCommand Then
|
||||
Dim oUpdate As String = $"Update TBPM_CONTROL_TABLE SET CHANGED_WHO = '{USER_USERNAME}', FORMULA_SQL = '{oForm2.SQLCommand.Replace("'", "''")}'
|
||||
, CONNECTION_ID = {oForm2.SQLConnection} WHERE GUID = {GUIDTextBox.Text}"
|
||||
If DatabaseFallback.ExecuteNonQueryECM(oUpdate) = True Then
|
||||
tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
tslblAenderungen.Caption = "Changes saved - " & Now
|
||||
FORMULA_SQLTextBox.Text = oForm2.SQLCommand
|
||||
Else
|
||||
MsgBox("Fehler beim Speichern des SQL Befehls. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut.", MsgBoxStyle.Critical, "Fehler")
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub FORMULA_EXPRESSIONTextBox_TextChanged(sender As Object, e As EventArgs) Handles FORMULA_EXPRESSIONTextBox.TextChanged, FORMULA_SQLTextBox.TextChanged
|
||||
Dim oHasFormulaExpression As Boolean = FORMULA_EXPRESSIONTextBox.Text.Trim() <> String.Empty
|
||||
Dim oHasFormulaSql As Boolean = FORMULA_SQLTextBox.Text.Trim() <> String.Empty
|
||||
|
||||
' Entweder/Oder-Validierung: Beide gleichzeitig ist nicht erlaubt
|
||||
If oHasFormulaExpression AndAlso oHasFormulaSql Then
|
||||
MsgBox("Es darf nur FORMULA_EXPRESSION oder FORMULA_SQL gesetzt sein, nicht beides." & vbCrLf &
|
||||
"Bitte leeren Sie eines der beiden Felder.",
|
||||
MsgBoxStyle.Exclamation, "Ungültige Konfiguration")
|
||||
End If
|
||||
|
||||
' Wenn eine Formel gesetzt ist → ReadOnly aktivieren und sperren
|
||||
If oHasFormulaExpression OrElse oHasFormulaSql Then
|
||||
READ_ONLYCheckBox.Checked = True
|
||||
'READ_ONLYCheckBox.Enabled = False
|
||||
Else
|
||||
READ_ONLYCheckBox.Checked = False
|
||||
'READ_ONLYCheckBox.Enabled = True
|
||||
End If
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
@@ -2,8 +2,21 @@
|
||||
|
||||
Public Class frmError
|
||||
Public ValidatorError As String = ""
|
||||
Private _isClosing As Boolean = False
|
||||
|
||||
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
|
||||
Me.Close()
|
||||
' ========== FIX 1: Event-Handler SOFORT deregistrieren ==========
|
||||
RemoveHandler OK_Button.Click, AddressOf OK_Button_Click
|
||||
|
||||
' ========== DIAGNOSE: StackTrace ausgeben ==========
|
||||
Dim st As New StackTrace(True)
|
||||
LOGGER.Debug($"[frmError] OK_Button_Click aufgerufen von:")
|
||||
For Each frame As StackFrame In st.GetFrames()
|
||||
LOGGER.Debug($" {frame.GetMethod()?.DeclaringType?.Name}.{frame.GetMethod()?.Name} (Zeile {frame.GetFileLineNumber()})")
|
||||
Next
|
||||
' ========== ENDE DIAGNOSE ==========
|
||||
|
||||
CloseDialog()
|
||||
End Sub
|
||||
|
||||
Private Sub frmError_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
@@ -27,7 +40,45 @@ Public Class frmError
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmError_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
|
||||
Me.Label1.Focus()
|
||||
Private Sub CloseDialog()
|
||||
' ========== FIX 2: Guard mit Dispose-Check ==========
|
||||
If _isClosing OrElse Me.IsDisposed Then
|
||||
LOGGER.Debug($"[frmError] CloseDialog blockiert (isClosing={_isClosing}, IsDisposed={Me.IsDisposed})")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
_isClosing = True
|
||||
LOGGER.Debug($"[frmError] CloseDialog: Flag gesetzt, starte verzögerten Close")
|
||||
|
||||
' ========== FIX 3: VERZÖGERTER Close via BeginInvoke ==========
|
||||
' KRITISCH: Close wird NACH Abschluss des aktuellen Event-Handlers ausgeführt
|
||||
Me.BeginInvoke(New Action(Sub()
|
||||
If Not Me.IsDisposed Then
|
||||
Me.DialogResult = DialogResult.OK
|
||||
Me.Close()
|
||||
LOGGER.Debug($"[frmError] Dialog geschlossen via BeginInvoke")
|
||||
End If
|
||||
End Sub))
|
||||
' ========== ENDE FIX 3 ==========
|
||||
End Sub
|
||||
Private Sub frmError_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
Me.Label1.Focus()
|
||||
LOGGER.Debug($"[frmError] Dialog angezeigt - Enabled: {Me.Enabled}")
|
||||
End Sub
|
||||
|
||||
Private Sub frmError_Activated(sender As Object, e As EventArgs) Handles Me.Activated
|
||||
LOGGER.Debug($"[frmError] Dialog aktiviert")
|
||||
End Sub
|
||||
' ========== FIX 4: FormClosing-Handler hinzufügen ==========
|
||||
Private Sub frmError_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||
If _isClosing Then
|
||||
LOGGER.Debug($"[frmError] FormClosing: Close bereits aktiv, erlauben")
|
||||
Return
|
||||
End If
|
||||
|
||||
' Falls Close von außen (z.B. [X]-Button) ausgelöst wurde
|
||||
_isClosing = True
|
||||
LOGGER.Debug($"[frmError] FormClosing: Flag gesetzt via FormClosing")
|
||||
End Sub
|
||||
' ========== ENDE FIX 4 ==========
|
||||
End Class
|
||||
|
||||
465
app/TaskFlow/frmExpression_Designer.Designer.vb
generated
Normal file
465
app/TaskFlow/frmExpression_Designer.Designer.vb
generated
Normal file
@@ -0,0 +1,465 @@
|
||||
Imports DevExpress.XtraEditors
|
||||
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class frmExpression_Designer
|
||||
Inherits DevExpress.XtraEditors.XtraForm
|
||||
|
||||
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||
<System.Diagnostics.DebuggerNonUserCode()>
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Wird vom Windows Form-Designer benötigt.
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.layoutControl1 = New DevExpress.XtraLayout.LayoutControl()
|
||||
Me.btnClear = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnCancel = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnOK = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.lblColumnCount = New System.Windows.Forms.Label()
|
||||
Me.lblValidation = New System.Windows.Forms.Label()
|
||||
Me.btnValidate = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.panelOperators = New System.Windows.Forms.Panel()
|
||||
Me.lstFunctions = New System.Windows.Forms.ListBox()
|
||||
Me.lstColumns = New System.Windows.Forms.ListBox()
|
||||
Me.txtExpression = New DevExpress.XtraEditors.MemoEdit()
|
||||
Me.Root = New DevExpress.XtraLayout.LayoutControlGroup()
|
||||
Me.layoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.emptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem()
|
||||
Me.layoutControlItem8 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem9 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.layoutControlItem10 = New DevExpress.XtraLayout.LayoutControlItem()
|
||||
Me.btnAdd = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnSubtract = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnMultiply = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnDivide = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnEquals = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnNotEquals = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnGreater = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnLess = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnAnd = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnOr = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnNot = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnOpenBracket = New DevExpress.XtraEditors.SimpleButton()
|
||||
Me.btnCloseBracket = New DevExpress.XtraEditors.SimpleButton()
|
||||
CType(Me.layoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.layoutControl1.SuspendLayout()
|
||||
CType(Me.txtExpression.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.emptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem8, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem9, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.layoutControlItem10, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'layoutControl1
|
||||
'
|
||||
Me.layoutControl1.Controls.Add(Me.btnClear)
|
||||
Me.layoutControl1.Controls.Add(Me.btnCancel)
|
||||
Me.layoutControl1.Controls.Add(Me.btnOK)
|
||||
Me.layoutControl1.Controls.Add(Me.lblColumnCount)
|
||||
Me.layoutControl1.Controls.Add(Me.lblValidation)
|
||||
Me.layoutControl1.Controls.Add(Me.btnValidate)
|
||||
Me.layoutControl1.Controls.Add(Me.panelOperators)
|
||||
Me.layoutControl1.Controls.Add(Me.lstFunctions)
|
||||
Me.layoutControl1.Controls.Add(Me.lstColumns)
|
||||
Me.layoutControl1.Controls.Add(Me.txtExpression)
|
||||
Me.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.layoutControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.layoutControl1.Name = "layoutControl1"
|
||||
Me.layoutControl1.Root = Me.Root
|
||||
Me.layoutControl1.Size = New System.Drawing.Size(900, 600)
|
||||
Me.layoutControl1.TabIndex = 0
|
||||
Me.layoutControl1.Text = "LayoutControl1"
|
||||
'
|
||||
'btnClear
|
||||
'
|
||||
Me.btnClear.Location = New System.Drawing.Point(809, 558)
|
||||
Me.btnClear.Name = "btnClear"
|
||||
Me.btnClear.Size = New System.Drawing.Size(79, 30)
|
||||
Me.btnClear.StyleController = Me.layoutControl1
|
||||
Me.btnClear.TabIndex = 13
|
||||
Me.btnClear.Text = "Löschen"
|
||||
'
|
||||
'btnCancel
|
||||
'
|
||||
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.btnCancel.Location = New System.Drawing.Point(724, 558)
|
||||
Me.btnCancel.Name = "btnCancel"
|
||||
Me.btnCancel.Size = New System.Drawing.Size(81, 30)
|
||||
Me.btnCancel.StyleController = Me.layoutControl1
|
||||
Me.btnCancel.TabIndex = 12
|
||||
Me.btnCancel.Text = "Abbrechen"
|
||||
'
|
||||
'btnOK
|
||||
'
|
||||
Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
Me.btnOK.Location = New System.Drawing.Point(644, 558)
|
||||
Me.btnOK.Name = "btnOK"
|
||||
Me.btnOK.Size = New System.Drawing.Size(76, 30)
|
||||
Me.btnOK.StyleController = Me.layoutControl1
|
||||
Me.btnOK.TabIndex = 11
|
||||
Me.btnOK.Text = "OK"
|
||||
'
|
||||
'lblColumnCount
|
||||
'
|
||||
Me.lblColumnCount.Location = New System.Drawing.Point(12, 472)
|
||||
Me.lblColumnCount.Name = "lblColumnCount"
|
||||
Me.lblColumnCount.Size = New System.Drawing.Size(876, 20)
|
||||
Me.lblColumnCount.TabIndex = 10
|
||||
Me.lblColumnCount.Text = "Referenzierte Spalten: 0"
|
||||
'
|
||||
'lblValidation
|
||||
'
|
||||
Me.lblValidation.Location = New System.Drawing.Point(116, 438)
|
||||
Me.lblValidation.Name = "lblValidation"
|
||||
Me.lblValidation.Size = New System.Drawing.Size(772, 30)
|
||||
Me.lblValidation.TabIndex = 9
|
||||
'
|
||||
'btnValidate
|
||||
'
|
||||
Me.btnValidate.Location = New System.Drawing.Point(12, 438)
|
||||
Me.btnValidate.Name = "btnValidate"
|
||||
Me.btnValidate.Size = New System.Drawing.Size(100, 30)
|
||||
Me.btnValidate.StyleController = Me.layoutControl1
|
||||
Me.btnValidate.TabIndex = 8
|
||||
Me.btnValidate.Text = "Validieren"
|
||||
'
|
||||
'panelOperators
|
||||
'
|
||||
Me.panelOperators.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.panelOperators.Location = New System.Drawing.Point(602, 161)
|
||||
Me.panelOperators.Name = "panelOperators"
|
||||
Me.panelOperators.Size = New System.Drawing.Size(286, 273)
|
||||
Me.panelOperators.TabIndex = 7
|
||||
'
|
||||
'lstFunctions
|
||||
'
|
||||
Me.lstFunctions.FormattingEnabled = True
|
||||
Me.lstFunctions.Location = New System.Drawing.Point(307, 161)
|
||||
Me.lstFunctions.Name = "lstFunctions"
|
||||
Me.lstFunctions.Size = New System.Drawing.Size(291, 273)
|
||||
Me.lstFunctions.TabIndex = 6
|
||||
'
|
||||
'lstColumns
|
||||
'
|
||||
Me.lstColumns.FormattingEnabled = True
|
||||
Me.lstColumns.Location = New System.Drawing.Point(12, 161)
|
||||
Me.lstColumns.Name = "lstColumns"
|
||||
Me.lstColumns.Size = New System.Drawing.Size(291, 273)
|
||||
Me.lstColumns.TabIndex = 5
|
||||
'
|
||||
'txtExpression
|
||||
'
|
||||
Me.txtExpression.Location = New System.Drawing.Point(12, 28)
|
||||
Me.txtExpression.Name = "txtExpression"
|
||||
Me.txtExpression.Properties.ScrollBars = System.Windows.Forms.ScrollBars.Both
|
||||
Me.txtExpression.Properties.WordWrap = False
|
||||
Me.txtExpression.Size = New System.Drawing.Size(876, 113)
|
||||
Me.txtExpression.StyleController = Me.layoutControl1
|
||||
Me.txtExpression.TabIndex = 4
|
||||
'
|
||||
'Root
|
||||
'
|
||||
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
|
||||
Me.Root.GroupBordersVisible = False
|
||||
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.layoutControlItem1, Me.layoutControlItem2, Me.layoutControlItem3, Me.layoutControlItem4, Me.layoutControlItem5, Me.layoutControlItem6, Me.layoutControlItem7, Me.emptySpaceItem1, Me.layoutControlItem8, Me.layoutControlItem9, Me.layoutControlItem10})
|
||||
Me.Root.Name = "Root"
|
||||
Me.Root.Size = New System.Drawing.Size(900, 600)
|
||||
Me.Root.TextVisible = False
|
||||
'
|
||||
'layoutControlItem1
|
||||
'
|
||||
Me.layoutControlItem1.Control = Me.txtExpression
|
||||
Me.layoutControlItem1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.layoutControlItem1.Name = "layoutControlItem1"
|
||||
Me.layoutControlItem1.Size = New System.Drawing.Size(880, 133)
|
||||
Me.layoutControlItem1.Text = "Expression:"
|
||||
Me.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top
|
||||
Me.layoutControlItem1.TextSize = New System.Drawing.Size(61, 13)
|
||||
'
|
||||
'layoutControlItem2
|
||||
'
|
||||
Me.layoutControlItem2.Control = Me.lstColumns
|
||||
Me.layoutControlItem2.Location = New System.Drawing.Point(0, 133)
|
||||
Me.layoutControlItem2.Name = "layoutControlItem2"
|
||||
Me.layoutControlItem2.Size = New System.Drawing.Size(295, 293)
|
||||
Me.layoutControlItem2.Text = "Verfügbare Spalten:"
|
||||
Me.layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top
|
||||
Me.layoutControlItem2.TextSize = New System.Drawing.Size(61, 13)
|
||||
'
|
||||
'layoutControlItem3
|
||||
'
|
||||
Me.layoutControlItem3.Control = Me.lstFunctions
|
||||
Me.layoutControlItem3.Location = New System.Drawing.Point(295, 133)
|
||||
Me.layoutControlItem3.Name = "layoutControlItem3"
|
||||
Me.layoutControlItem3.Size = New System.Drawing.Size(295, 293)
|
||||
Me.layoutControlItem3.Text = "Funktionen:"
|
||||
Me.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top
|
||||
Me.layoutControlItem3.TextSize = New System.Drawing.Size(61, 13)
|
||||
'
|
||||
'layoutControlItem4
|
||||
'
|
||||
Me.layoutControlItem4.Control = Me.panelOperators
|
||||
Me.layoutControlItem4.Location = New System.Drawing.Point(590, 133)
|
||||
Me.layoutControlItem4.Name = "layoutControlItem4"
|
||||
Me.layoutControlItem4.Size = New System.Drawing.Size(290, 293)
|
||||
Me.layoutControlItem4.Text = "Operatoren:"
|
||||
Me.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top
|
||||
Me.layoutControlItem4.TextSize = New System.Drawing.Size(61, 13)
|
||||
'
|
||||
'layoutControlItem5
|
||||
'
|
||||
Me.layoutControlItem5.Control = Me.btnValidate
|
||||
Me.layoutControlItem5.Location = New System.Drawing.Point(0, 426)
|
||||
Me.layoutControlItem5.MaxSize = New System.Drawing.Size(104, 34)
|
||||
Me.layoutControlItem5.MinSize = New System.Drawing.Size(104, 34)
|
||||
Me.layoutControlItem5.Name = "layoutControlItem5"
|
||||
Me.layoutControlItem5.Size = New System.Drawing.Size(104, 34)
|
||||
Me.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom
|
||||
Me.layoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem5.TextVisible = False
|
||||
'
|
||||
'layoutControlItem6
|
||||
'
|
||||
Me.layoutControlItem6.Control = Me.lblValidation
|
||||
Me.layoutControlItem6.Location = New System.Drawing.Point(104, 426)
|
||||
Me.layoutControlItem6.Name = "layoutControlItem6"
|
||||
Me.layoutControlItem6.Size = New System.Drawing.Size(776, 34)
|
||||
Me.layoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem6.TextVisible = False
|
||||
'
|
||||
'layoutControlItem7
|
||||
'
|
||||
Me.layoutControlItem7.Control = Me.lblColumnCount
|
||||
Me.layoutControlItem7.Location = New System.Drawing.Point(0, 460)
|
||||
Me.layoutControlItem7.Name = "layoutControlItem7"
|
||||
Me.layoutControlItem7.Size = New System.Drawing.Size(880, 24)
|
||||
Me.layoutControlItem7.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem7.TextVisible = False
|
||||
'
|
||||
'emptySpaceItem1
|
||||
'
|
||||
Me.emptySpaceItem1.AllowHotTrack = False
|
||||
Me.emptySpaceItem1.Location = New System.Drawing.Point(0, 484)
|
||||
Me.emptySpaceItem1.Name = "emptySpaceItem1"
|
||||
Me.emptySpaceItem1.Size = New System.Drawing.Size(632, 62)
|
||||
Me.emptySpaceItem1.TextSize = New System.Drawing.Size(0, 0)
|
||||
'
|
||||
'layoutControlItem8
|
||||
'
|
||||
Me.layoutControlItem8.Control = Me.btnOK
|
||||
Me.layoutControlItem8.Location = New System.Drawing.Point(632, 546)
|
||||
Me.layoutControlItem8.MaxSize = New System.Drawing.Size(80, 34)
|
||||
Me.layoutControlItem8.MinSize = New System.Drawing.Size(80, 34)
|
||||
Me.layoutControlItem8.Name = "layoutControlItem8"
|
||||
Me.layoutControlItem8.Size = New System.Drawing.Size(80, 34)
|
||||
Me.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom
|
||||
Me.layoutControlItem8.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem8.TextVisible = False
|
||||
'
|
||||
'layoutControlItem9
|
||||
'
|
||||
Me.layoutControlItem9.Control = Me.btnCancel
|
||||
Me.layoutControlItem9.Location = New System.Drawing.Point(712, 546)
|
||||
Me.layoutControlItem9.MaxSize = New System.Drawing.Size(85, 34)
|
||||
Me.layoutControlItem9.MinSize = New System.Drawing.Size(85, 34)
|
||||
Me.layoutControlItem9.Name = "layoutControlItem9"
|
||||
Me.layoutControlItem9.Size = New System.Drawing.Size(85, 34)
|
||||
Me.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom
|
||||
Me.layoutControlItem9.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem9.TextVisible = False
|
||||
'
|
||||
'layoutControlItem10
|
||||
'
|
||||
Me.layoutControlItem10.Control = Me.btnClear
|
||||
Me.layoutControlItem10.Location = New System.Drawing.Point(797, 546)
|
||||
Me.layoutControlItem10.MaxSize = New System.Drawing.Size(83, 34)
|
||||
Me.layoutControlItem10.MinSize = New System.Drawing.Size(83, 34)
|
||||
Me.layoutControlItem10.Name = "layoutControlItem10"
|
||||
Me.layoutControlItem10.Size = New System.Drawing.Size(83, 34)
|
||||
Me.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom
|
||||
Me.layoutControlItem10.TextSize = New System.Drawing.Size(0, 0)
|
||||
Me.layoutControlItem10.TextVisible = False
|
||||
'
|
||||
'btnAdd
|
||||
'
|
||||
Me.btnAdd.Name = "btnAdd"
|
||||
Me.btnAdd.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnAdd.TabIndex = 0
|
||||
Me.btnAdd.Text = "+"
|
||||
'
|
||||
'btnSubtract
|
||||
'
|
||||
Me.btnSubtract.Name = "btnSubtract"
|
||||
Me.btnSubtract.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnSubtract.TabIndex = 1
|
||||
Me.btnSubtract.Text = "-"
|
||||
'
|
||||
'btnMultiply
|
||||
'
|
||||
Me.btnMultiply.Name = "btnMultiply"
|
||||
Me.btnMultiply.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnMultiply.TabIndex = 2
|
||||
Me.btnMultiply.Text = "*"
|
||||
'
|
||||
'btnDivide
|
||||
'
|
||||
Me.btnDivide.Name = "btnDivide"
|
||||
Me.btnDivide.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnDivide.TabIndex = 3
|
||||
Me.btnDivide.Text = "/"
|
||||
'
|
||||
'btnEquals
|
||||
'
|
||||
Me.btnEquals.Name = "btnEquals"
|
||||
Me.btnEquals.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnEquals.TabIndex = 4
|
||||
Me.btnEquals.Text = "="
|
||||
'
|
||||
'btnNotEquals
|
||||
'
|
||||
Me.btnNotEquals.Name = "btnNotEquals"
|
||||
Me.btnNotEquals.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnNotEquals.TabIndex = 5
|
||||
Me.btnNotEquals.Text = "<>"
|
||||
'
|
||||
'btnGreater
|
||||
'
|
||||
Me.btnGreater.Name = "btnGreater"
|
||||
Me.btnGreater.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnGreater.TabIndex = 6
|
||||
Me.btnGreater.Text = ">"
|
||||
'
|
||||
'btnLess
|
||||
'
|
||||
Me.btnLess.Name = "btnLess"
|
||||
Me.btnLess.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnLess.TabIndex = 7
|
||||
Me.btnLess.Text = "<"
|
||||
'
|
||||
'btnAnd
|
||||
'
|
||||
Me.btnAnd.Name = "btnAnd"
|
||||
Me.btnAnd.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnAnd.TabIndex = 8
|
||||
Me.btnAnd.Text = "AND"
|
||||
'
|
||||
'btnOr
|
||||
'
|
||||
Me.btnOr.Name = "btnOr"
|
||||
Me.btnOr.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnOr.TabIndex = 9
|
||||
Me.btnOr.Text = "OR"
|
||||
'
|
||||
'btnNot
|
||||
'
|
||||
Me.btnNot.Name = "btnNot"
|
||||
Me.btnNot.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnNot.TabIndex = 10
|
||||
Me.btnNot.Text = "NOT"
|
||||
'
|
||||
'btnOpenBracket
|
||||
'
|
||||
Me.btnOpenBracket.Name = "btnOpenBracket"
|
||||
Me.btnOpenBracket.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnOpenBracket.TabIndex = 11
|
||||
Me.btnOpenBracket.Text = "("
|
||||
'
|
||||
'btnCloseBracket
|
||||
'
|
||||
Me.btnCloseBracket.Name = "btnCloseBracket"
|
||||
Me.btnCloseBracket.Size = New System.Drawing.Size(50, 30)
|
||||
Me.btnCloseBracket.TabIndex = 12
|
||||
Me.btnCloseBracket.Text = ")"
|
||||
'
|
||||
'frmExpression_Designer
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(900, 600)
|
||||
Me.Controls.Add(Me.layoutControl1)
|
||||
Me.Name = "frmExpression_Designer"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "Expression Designer"
|
||||
CType(Me.layoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.layoutControl1.ResumeLayout(False)
|
||||
CType(Me.txtExpression.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.emptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem8, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem9, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.layoutControlItem10, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents layoutControl1 As DevExpress.XtraLayout.LayoutControl
|
||||
Friend WithEvents btnClear As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnCancel As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnOK As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents lblColumnCount As Label
|
||||
Friend WithEvents lblValidation As Label
|
||||
Friend WithEvents btnValidate As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents panelOperators As Panel
|
||||
Friend WithEvents lstFunctions As ListBox
|
||||
Friend WithEvents lstColumns As ListBox
|
||||
Friend WithEvents txtExpression As DevExpress.XtraEditors.MemoEdit
|
||||
Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
|
||||
Friend WithEvents layoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem6 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents emptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem
|
||||
Friend WithEvents layoutControlItem8 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem9 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents layoutControlItem10 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents btnAdd As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnSubtract As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnMultiply As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnDivide As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnEquals As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnNotEquals As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnGreater As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnLess As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnAnd As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnOr As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnNot As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnOpenBracket As DevExpress.XtraEditors.SimpleButton
|
||||
Friend WithEvents btnCloseBracket As DevExpress.XtraEditors.SimpleButton
|
||||
End Class
|
||||
120
app/TaskFlow/frmExpression_Designer.resx
Normal file
120
app/TaskFlow/frmExpression_Designer.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
284
app/TaskFlow/frmExpression_Designer.vb
Normal file
284
app/TaskFlow/frmExpression_Designer.vb
Normal file
@@ -0,0 +1,284 @@
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DevExpress.XtraEditors
|
||||
|
||||
Public Class frmExpression_Designer
|
||||
Private _availableColumns As DataTable
|
||||
Private _currentExpression As String = ""
|
||||
|
||||
Public Property Expression As String
|
||||
Get
|
||||
Return _currentExpression
|
||||
End Get
|
||||
Set(value As String)
|
||||
_currentExpression = value
|
||||
txtExpression.Text = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub New(pAvailableColumns As DataTable, pCurrentExpression As String)
|
||||
InitializeComponent()
|
||||
|
||||
_availableColumns = pAvailableColumns
|
||||
_currentExpression = pCurrentExpression
|
||||
End Sub
|
||||
Private Sub ConfigureOperatorButtons()
|
||||
Dim yPos As Integer = 10
|
||||
|
||||
' Arithmetische Operatoren
|
||||
AddOperatorButton(btnAdd, "+", 10, yPos, "Addition")
|
||||
AddOperatorButton(btnSubtract, "-", 70, yPos, "Subtraktion")
|
||||
AddOperatorButton(btnMultiply, "*", 130, yPos, "Multiplikation")
|
||||
AddOperatorButton(btnDivide, "/", 190, yPos, "Division")
|
||||
|
||||
yPos += 40
|
||||
|
||||
' Vergleichsoperatoren
|
||||
AddOperatorButton(btnEquals, "=", 10, yPos, "Gleich")
|
||||
AddOperatorButton(btnNotEquals, "<>", 70, yPos, "Ungleich")
|
||||
AddOperatorButton(btnGreater, ">", 130, yPos, "Größer")
|
||||
AddOperatorButton(btnLess, "<", 190, yPos, "Kleiner")
|
||||
|
||||
yPos += 40
|
||||
|
||||
' Logische Operatoren
|
||||
AddOperatorButton(btnAnd, "AND", 10, yPos, "Und")
|
||||
AddOperatorButton(btnOr, "OR", 70, yPos, "Oder")
|
||||
AddOperatorButton(btnNot, "NOT", 130, yPos, "Nicht")
|
||||
|
||||
yPos += 40
|
||||
|
||||
' Klammern
|
||||
AddOperatorButton(btnOpenBracket, "(", 10, yPos, "Öffnende Klammer")
|
||||
AddOperatorButton(btnCloseBracket, ")", 70, yPos, "Schließende Klammer")
|
||||
End Sub
|
||||
|
||||
Private Sub AddOperatorButton(btn As SimpleButton, text As String, x As Integer, y As Integer, tooltip As String)
|
||||
btn.Text = text
|
||||
btn.Location = New Point(x, y)
|
||||
btn.Size = New Size(50, 30)
|
||||
btn.ToolTip = tooltip
|
||||
Me.panelOperators.Controls.Add(btn)
|
||||
End Sub
|
||||
Private Sub frmExpressionDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
' ZUERST Operatoren-Buttons erstellen
|
||||
ConfigureOperatorButtons()
|
||||
|
||||
' Spalten laden
|
||||
LoadAvailableColumns()
|
||||
|
||||
' Funktionen laden
|
||||
LoadFunctions()
|
||||
|
||||
' Operatoren laden
|
||||
LoadOperators()
|
||||
|
||||
' Aktuelle Expression anzeigen
|
||||
txtExpression.Text = _currentExpression
|
||||
|
||||
' Syntax-Highlighting aktivieren (optional)
|
||||
UpdateSyntaxHighlighting()
|
||||
' Event-Handler für Text-Änderungen hinzufügen
|
||||
AddHandler txtExpression.EditValueChanged, AddressOf txtExpression_EditValueChanged
|
||||
End Sub
|
||||
|
||||
Private Sub txtExpression_EditValueChanged(sender As Object, e As EventArgs)
|
||||
' Validierungsmeldung zurücksetzen
|
||||
lblValidation.Text = String.Empty
|
||||
lblValidation.ForeColor = Color.Black
|
||||
|
||||
' Syntax-Highlighting aktualisieren
|
||||
UpdateSyntaxHighlighting()
|
||||
|
||||
' Aktuellen Wert speichern
|
||||
_currentExpression = txtExpression.Text
|
||||
End Sub
|
||||
Private Sub LoadAvailableColumns()
|
||||
lstColumns.Items.Clear()
|
||||
|
||||
For Each row As DataRow In _availableColumns.Rows
|
||||
Dim columnName As String = row.Item("SPALTENNAME").ToString()
|
||||
Dim columnType As String = row.Item("TYPE_COLUMN").ToString()
|
||||
Dim displayText As String = $"{columnName} ({columnType})"
|
||||
|
||||
lstColumns.Items.Add(New ListBoxItem With {
|
||||
.DisplayText = displayText,
|
||||
.ColumnName = columnName,
|
||||
.DataType = columnType
|
||||
})
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub LoadFunctions()
|
||||
lstFunctions.Items.Clear()
|
||||
|
||||
' Mathematische Funktionen
|
||||
lstFunctions.Items.Add(New FunctionItem("IIF", "IIF([Bedingung], Wahr, Falsch)", "Bedingte Verzweigung"))
|
||||
lstFunctions.Items.Add(New FunctionItem("IsNull", "IsNull([Spalte], Ersatzwert)", "Null-Behandlung"))
|
||||
lstFunctions.Items.Add(New FunctionItem("Convert", "Convert([Spalte], 'System.Double')", "Typkonvertierung"))
|
||||
|
||||
' String-Funktionen
|
||||
lstFunctions.Items.Add(New FunctionItem("Len", "Len([Text])", "Länge eines Textes"))
|
||||
lstFunctions.Items.Add(New FunctionItem("Trim", "Trim([Text])", "Leerzeichen entfernen"))
|
||||
lstFunctions.Items.Add(New FunctionItem("Substring", "Substring([Text], Start, Länge)", "Teilstring extrahieren"))
|
||||
End Sub
|
||||
|
||||
Private Sub LoadOperators()
|
||||
' Arithmetische Operatoren
|
||||
btnAdd.Tag = " + "
|
||||
btnSubtract.Tag = " - "
|
||||
btnMultiply.Tag = " * "
|
||||
btnDivide.Tag = " / "
|
||||
|
||||
' Vergleichsoperatoren
|
||||
btnEquals.Tag = " = "
|
||||
btnNotEquals.Tag = " <> "
|
||||
btnGreater.Tag = " > "
|
||||
btnLess.Tag = " < "
|
||||
|
||||
' Logische Operatoren
|
||||
btnAnd.Tag = " AND "
|
||||
btnOr.Tag = " OR "
|
||||
btnNot.Tag = " NOT "
|
||||
|
||||
' Klammern
|
||||
btnOpenBracket.Tag = "("
|
||||
btnCloseBracket.Tag = ")"
|
||||
End Sub
|
||||
|
||||
Private Sub lstColumns_DoubleClick(sender As Object, e As EventArgs) Handles lstColumns.DoubleClick
|
||||
If lstColumns.SelectedItem IsNot Nothing Then
|
||||
Dim item As ListBoxItem = CType(lstColumns.SelectedItem, ListBoxItem)
|
||||
InsertText($"[{item.ColumnName}]")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub lstFunctions_DoubleClick(sender As Object, e As EventArgs) Handles lstFunctions.DoubleClick
|
||||
If lstFunctions.SelectedItem IsNot Nothing Then
|
||||
Dim item As FunctionItem = CType(lstFunctions.SelectedItem, FunctionItem)
|
||||
InsertText(item.Template)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Operator_Click(sender As Object, e As EventArgs) Handles btnAdd.Click, btnSubtract.Click, btnMultiply.Click, btnDivide.Click,
|
||||
btnEquals.Click, btnNotEquals.Click, btnGreater.Click, btnLess.Click,
|
||||
btnAnd.Click, btnOr.Click, btnNot.Click,
|
||||
btnOpenBracket.Click, btnCloseBracket.Click
|
||||
Dim btn As SimpleButton = CType(sender, SimpleButton)
|
||||
InsertText(btn.Tag.ToString())
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub InsertText(text As String)
|
||||
Dim selectionStart As Integer = txtExpression.SelectionStart
|
||||
|
||||
txtExpression.Text = txtExpression.Text.Insert(selectionStart, text)
|
||||
txtExpression.SelectionStart = selectionStart + text.Length
|
||||
txtExpression.Focus()
|
||||
|
||||
_currentExpression = txtExpression.Text
|
||||
' UpdateSyntaxHighlighting() wird jetzt im Event-Handler aufgerufen
|
||||
End Sub
|
||||
|
||||
Private Sub btnValidate_Click(sender As Object, e As EventArgs) Handles btnValidate.Click
|
||||
ValidateExpression()
|
||||
End Sub
|
||||
|
||||
Private Sub ValidateExpression()
|
||||
Try
|
||||
' Testdatatable erstellen
|
||||
Dim testTable As New DataTable()
|
||||
|
||||
' Spalten hinzufügen
|
||||
For Each row As DataRow In _availableColumns.Rows
|
||||
Dim colName As String = row.Item("SPALTENNAME").ToString()
|
||||
Dim colType As String = row.Item("TYPE_COLUMN").ToString()
|
||||
|
||||
Dim dataType As Type = GetType(String)
|
||||
Select Case colType
|
||||
Case "INTEGER"
|
||||
dataType = GetType(Integer)
|
||||
Case "DOUBLE", "CURRENCY"
|
||||
dataType = GetType(Double)
|
||||
Case "BOOLEAN"
|
||||
dataType = GetType(Boolean)
|
||||
End Select
|
||||
|
||||
testTable.Columns.Add(colName, dataType)
|
||||
Next
|
||||
|
||||
' Test-Spalte mit Expression erstellen
|
||||
Dim testColumn As New DataColumn("TEST_EXPRESSION") With {
|
||||
.Expression = txtExpression.Text
|
||||
}
|
||||
testTable.Columns.Add(testColumn)
|
||||
|
||||
' Erfolg!
|
||||
lblValidation.Text = "✓ Expression ist gültig!"
|
||||
lblValidation.ForeColor = Color.Green
|
||||
|
||||
Catch ex As Exception
|
||||
lblValidation.Text = $"⚠️ Fehler: {ex.Message}"
|
||||
lblValidation.ForeColor = Color.Red
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateSyntaxHighlighting()
|
||||
' Optional: Einfaches Syntax-Highlighting
|
||||
' Spalten-Referenzen markieren
|
||||
Dim pattern As String = "\[([^\]]+)\]"
|
||||
Dim matches = Regex.Matches(txtExpression.Text, pattern)
|
||||
|
||||
' Anzahl der referenzierten Spalten anzeigen
|
||||
lblColumnCount.Text = $"Referenzierte Spalten: {matches.Count}"
|
||||
End Sub
|
||||
|
||||
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
||||
' Finale Validierung
|
||||
ValidateExpression()
|
||||
|
||||
If lblValidation.ForeColor = Color.Green Then
|
||||
_currentExpression = txtExpression.Text
|
||||
Me.DialogResult = DialogResult.OK
|
||||
Me.Close()
|
||||
Else
|
||||
MessageBox.Show("Bitte korrigieren Sie die Expression zuerst!", "Validierung fehlgeschlagen", MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
|
||||
Me.DialogResult = DialogResult.Cancel
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
|
||||
txtExpression.EditValue = String.Empty
|
||||
_currentExpression = ""
|
||||
End Sub
|
||||
|
||||
' Hilfeklassen
|
||||
Private Class ListBoxItem
|
||||
Public Property DisplayText As String
|
||||
Public Property ColumnName As String
|
||||
Public Property DataType As String
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return DisplayText
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Private Class FunctionItem
|
||||
Public Property Name As String
|
||||
Public Property Template As String
|
||||
Public Property Description As String
|
||||
|
||||
Public Sub New(name As String, template As String, description As String)
|
||||
Me.Name = name
|
||||
Me.Template = template
|
||||
Me.Description = description
|
||||
End Sub
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return $"{Name} - {Description}"
|
||||
End Function
|
||||
End Class
|
||||
End Class
|
||||
@@ -291,20 +291,25 @@ Public Class frmFormDesigner
|
||||
SetMovementHandlers(dgv)
|
||||
|
||||
Case "TABLE"
|
||||
|
||||
Dim oSQL = $"Select IIF(LANG.CAPTION Is NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* FROM TBPM_CONTROL_TABLE T
|
||||
Try
|
||||
Dim oSQL = $"Select IIF(LANG.CAPTION Is NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* FROM TBPM_CONTROL_TABLE T
|
||||
INNER JOIN TBPM_PROFILE_CONTROLS T1 ON T.CONTROL_ID = T1.GUID LEFT JOIN (SELECT * FROM TBPM_CONTOL_TABLE_LANG WHERE LANG_CODE = '{USER_LANGUAGE}') LANG ON T.GUID = LANG.COL_ID
|
||||
WHERE T1.CONTROL_ACTIVE = 1 AND T.CONTROL_ID = T1.GUID AND T.CONTROL_ID = {guid} ORDER BY T.SEQUENCE"
|
||||
Dim oDTColumnsPerDevExGrid As DataTable = DatabaseFallback.GetDatatableECM(oSQL) ', "FDesignLaodControls")
|
||||
Dim oDTColumnsPerDevExGrid As DataTable = DatabaseFallback.GetDatatableECM(oSQL) ', "FDesignLaodControls")
|
||||
|
||||
|
||||
Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True, "EUR")
|
||||
Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True, "EUR")
|
||||
|
||||
AddHandler table.MouseClick, AddressOf gridControl_MouseClick
|
||||
' AddHandler table.ColumnHeaderMouseClick, AddressOf table_ColumnHeaderMouseClick
|
||||
AddHandler table.MouseClick, AddressOf gridControl_MouseClick
|
||||
' AddHandler table.ColumnHeaderMouseClick, AddressOf table_ColumnHeaderMouseClick
|
||||
|
||||
pnldesigner.Controls.Add(table)
|
||||
SetMovementHandlers(table)
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
MsgBox("Error while loading Table Control with Id " & guid & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:")
|
||||
End Try
|
||||
|
||||
pnldesigner.Controls.Add(table)
|
||||
SetMovementHandlers(table)
|
||||
|
||||
Case "LOOKUP"
|
||||
Dim lookup = ControlCreator.CreateExistingLookupControl(row, True)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Public Class frmGhostMode
|
||||
Private Sub frmGhostMode_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Dim oSQL = "SELECT [SQL_COMMAND] FROM TBDD_SQL_COMMANDS where TITLE = 'GHOST_SELECT'"
|
||||
Dim oSQL = "SELECT [SQL_COMMAND] FROM TBDD_SQL_COMMANDS WITH (NOLOCK) where TITLE = 'GHOST_SELECT'"
|
||||
Dim DT_USER = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
'
|
||||
If IsNothing(DT_USER) Then
|
||||
LOGGER.Info("GHOST Select 1 was nothing, now trying 2nd..")
|
||||
oSQL = "SELECT CONFIG_VALUE FROM TBIDB_BASE WHERE CONFIG_NAME = 'GHOST_SELECT'"
|
||||
oSQL = "SELECT CONFIG_VALUE FROM TBIDB_BASE WITH (NOLOCK) WHERE CONFIG_NAME = 'GHOST_SELECT'"
|
||||
If Not IsNothing(oSQL) Then
|
||||
oSQL = DatabaseFallback.GetScalarValueIDB(oSQL)
|
||||
DT_USER = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||
|
||||
@@ -124,46 +124,46 @@
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAbgBCwG4AQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0YAAQgEcgEICgABGgEc
|
||||
AnQBHAEaKQABcgFVAVoCWwFaAVUBTwgAAXQBeQF6AuUBegF5AXQnAAJVAVoBWwLkAVsBWgJVBgABdAJ6
|
||||
BOUBegF5AVIlAAFPAVUCWgRbAVoCVQFPBAABUgFZAXoG5QF6AlIjAAEIAlUIWgJVAQgCAAEaAVIBWQF6
|
||||
BuUBWQFYAVIBGiIAAU8CVQdaA1UBTwIAAUwBUgpZAVIBTCIAAU8BNApVATQBLgIAAUwBUgFTCFkBUwFS
|
||||
AUwiAAEtAzMHNAIzAS0CAAIrAjIGUwIyAisiAAFPAS0BMwhVATQCLQIAAUwCKwhTAVICKyIAAQgBLQFV
|
||||
CJcBVQEtAQgCAAEaASsBUgh1AVIBKwEaIwABAgGXCJgBlwEtBAABKgF0CJoBdAErJQABTwEIARsFwgHx
|
||||
AU8GAAFMARoBGwQaARsBGgFSJwABTwEIAfMC/wHzAQgBcggAAUwBGgT2ARoBdCkAAQgEcgEICgABGgR0
|
||||
ARplAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAE/wQAAfgBHwH4AR8EAAHw
|
||||
AQ8B8AEPBAAB4AEHAeABBwQAAcABAwHAAQMEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGA
|
||||
AQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAHAAQMBwAEDBAAB4AEHAeABBwQAAfABDwHwAQ8EAAH4
|
||||
AR8B+AEfBAAE/wQACw==
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADu
|
||||
CAAAAk1TRnQBSQFMAgEBAgIAAQwBAAEMARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
|
||||
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
|
||||
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
|
||||
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
|
||||
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
|
||||
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
|
||||
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
|
||||
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
|
||||
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
|
||||
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
|
||||
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
|
||||
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
|
||||
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
|
||||
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
|
||||
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
|
||||
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
|
||||
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
|
||||
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
|
||||
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
|
||||
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
|
||||
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
|
||||
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
|
||||
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
|
||||
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
|
||||
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
|
||||
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
|
||||
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
|
||||
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
|
||||
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/9GAAEIBHIBCAoAARoBHAJ0
|
||||
ARwBGikAAXIBVQFaAlsBWgFVAU8IAAF0AXkBegLlAXoBeQF0JwACVQFaAVsC5AFbAVoCVQYAAXQCegTl
|
||||
AXoBeQFSJQABTwFVAloEWwFaAlUBTwQAAVIBWQF6BuUBegJSIwABCAJVCFoCVQEIAgABGgFSAVkBegbl
|
||||
AVkBWAFSARoiAAFPAlUHWgNVAU8CAAFMAVIKWQFSAUwiAAFPATQKVQE0AS4CAAFMAVIBUwhZAVMBUgFM
|
||||
IgABLQMzBzQCMwEtAgACKwIyBlMCMgIrIgABTwEtATMIVQE0Ai0CAAFMAisIUwFSAisiAAEIAS0BVQiX
|
||||
AVUBLQEIAgABGgErAVIIdQFSASsBGiMAAQIBlwiYAZcBLQQAASoBdAiaAXQBKyUAAU8BCAEbBcIB8QFP
|
||||
BgABTAEaARsEGgEbARoBUicAAU8BCAHzAv8B8wEIAXIIAAFMARoE9gEaAXQpAAEIBHIBCAoAARoEdAEa
|
||||
ZQABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEABP8EAAH4AR8B+AEfBAAB8AEP
|
||||
AfABDwQAAeABBwHgAQcEAAHAAQMBwAEDBAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEB
|
||||
AYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABwAEDAcABAwQAAeABBwHgAQcEAAHwAQ8B8AEPBAAB+AEf
|
||||
AfgBHwQABP8EAAs=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="DD_DMSLiteDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
@@ -1506,13 +1506,13 @@
|
||||
<value>Aktionen</value>
|
||||
</data>
|
||||
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 158</value>
|
||||
<value>1473, 158</value>
|
||||
</data>
|
||||
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 666</value>
|
||||
<value>0, 838</value>
|
||||
</data>
|
||||
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 22</value>
|
||||
<value>1473, 22</value>
|
||||
</data>
|
||||
<data name=">>RibbonStatusBar1.Name" xml:space="preserve">
|
||||
<value>RibbonStatusBar1</value>
|
||||
@@ -1539,7 +1539,7 @@
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="GridControlWorkflows.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>945, 484</value>
|
||||
<value>1240, 656</value>
|
||||
</data>
|
||||
<data name="GridControlWorkflows.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
@@ -1575,7 +1575,7 @@
|
||||
<value>233, 0</value>
|
||||
</data>
|
||||
<data name="Panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>945, 24</value>
|
||||
<value>1240, 24</value>
|
||||
</data>
|
||||
<data name="Panel2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
@@ -1782,7 +1782,7 @@
|
||||
<value>233</value>
|
||||
</data>
|
||||
<data name="NavBarControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>233, 508</value>
|
||||
<value>233, 680</value>
|
||||
</data>
|
||||
<data name="NavBarControl1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
@@ -1812,7 +1812,7 @@
|
||||
<value>0, 158</value>
|
||||
</data>
|
||||
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 508</value>
|
||||
<value>1473, 680</value>
|
||||
</data>
|
||||
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@@ -2042,10 +2042,10 @@
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="barDockControlBottom.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 688</value>
|
||||
<value>0, 860</value>
|
||||
</data>
|
||||
<data name="barDockControlBottom.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 0</value>
|
||||
<value>1473, 0</value>
|
||||
</data>
|
||||
<data name=">>barDockControlBottom.Name" xml:space="preserve">
|
||||
<value>barDockControlBottom</value>
|
||||
@@ -2066,7 +2066,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="barDockControlLeft.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 688</value>
|
||||
<value>0, 860</value>
|
||||
</data>
|
||||
<data name=">>barDockControlLeft.Name" xml:space="preserve">
|
||||
<value>barDockControlLeft</value>
|
||||
@@ -2084,10 +2084,10 @@
|
||||
<value>Right</value>
|
||||
</data>
|
||||
<data name="barDockControlRight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1178, 0</value>
|
||||
<value>1473, 0</value>
|
||||
</data>
|
||||
<data name="barDockControlRight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>0, 688</value>
|
||||
<value>0, 860</value>
|
||||
</data>
|
||||
<data name=">>barDockControlRight.Name" xml:space="preserve">
|
||||
<value>barDockControlRight</value>
|
||||
@@ -2105,13 +2105,13 @@
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>147</value>
|
||||
<value>123</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>9, 19</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 688</value>
|
||||
<value>1473, 860</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 12pt</value>
|
||||
@@ -3574,7 +3574,7 @@
|
||||
<value>Graphisches Dokument</value>
|
||||
</data>
|
||||
<data name="barDockControlTop.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1178, 0</value>
|
||||
<value>1473, 0</value>
|
||||
</data>
|
||||
<data name=">>barDockControlTop.Name" xml:space="preserve">
|
||||
<value>barDockControlTop</value>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -468,7 +468,55 @@ Public Class frmValidatorSearch
|
||||
ToolStripDropDownButtonFile.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub EnsureFormIsVisible()
|
||||
Try
|
||||
' Aktuellen Bildschirm basierend auf der Formularposition ermitteln
|
||||
Dim currentScreen As Screen = Screen.FromPoint(Me.Location)
|
||||
Dim workingArea As Rectangle = currentScreen.WorkingArea
|
||||
|
||||
' Prüfen ob das Formular vollständig außerhalb des sichtbaren Bereichs liegt
|
||||
Dim formBounds As New Rectangle(Me.Location, Me.Size)
|
||||
|
||||
' Wenn das Formular nicht mit dem Arbeitsbereich überschneidet
|
||||
If Not workingArea.IntersectsWith(formBounds) Then
|
||||
CenterFormOnScreen()
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Optional: Prüfen ob das Formular zu weit außerhalb liegt (z.B. nur 20% sichtbar)
|
||||
Dim visibleArea As Rectangle = Rectangle.Intersect(workingArea, formBounds)
|
||||
Dim visiblePercentage As Double = (visibleArea.Width * visibleArea.Height) / (formBounds.Width * formBounds.Height)
|
||||
|
||||
If visiblePercentage < 0.2 Then ' Weniger als 20% sichtbar
|
||||
CenterFormOnScreen()
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
' Bei Fehler sicherheitshalber zentrieren
|
||||
CenterFormOnScreen()
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub CenterFormOnScreen()
|
||||
Try
|
||||
' Formular auf dem primären Bildschirm zentrieren
|
||||
Me.StartPosition = FormStartPosition.CenterScreen
|
||||
|
||||
' Alternative: Auf aktuellem Bildschirm zentrieren
|
||||
Dim currentScreen As Screen = Screen.PrimaryScreen
|
||||
Dim x As Integer = currentScreen.WorkingArea.Left + (currentScreen.WorkingArea.Width - Me.Width) \ 2
|
||||
Dim y As Integer = currentScreen.WorkingArea.Top + (currentScreen.WorkingArea.Height - Me.Height) \ 2
|
||||
Me.Location = New Point(x, y)
|
||||
|
||||
LOGGER.Info("Formular wurde zentriert, da es außerhalb des sichtbaren Bereichs lag")
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub frmValidatorSearch_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
' Prüfen ob das Formular im sichtbaren Bereich liegt
|
||||
EnsureFormIsVisible()
|
||||
formLoaded = True
|
||||
End Sub
|
||||
|
||||
|
||||
2141
app/TaskFlow/taskFLOW-TEST-Debug.txt
Normal file
2141
app/TaskFlow/taskFLOW-TEST-Debug.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -624,6 +624,12 @@
|
||||
<Compile Include="frmError.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmExpression_Designer.Designer.vb">
|
||||
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmExpression_Designer.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmFileInfo.Designer.vb">
|
||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -868,6 +874,9 @@
|
||||
<DependentUpon>frmError.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmExpression_Designer.resx">
|
||||
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmFileInfo.resx">
|
||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -1272,6 +1281,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Changelog.md" />
|
||||
<Content Include="DataColumnExpression.txt" />
|
||||
<Content Include="DD_Icons_ICO_PMANAGER_48px.ico" />
|
||||
<Content Include="DD_taskFLOW_ICON.ico" />
|
||||
<Content Include="MailLicense.xml">
|
||||
|
||||
Reference in New Issue
Block a user