12 Commits

Author SHA1 Message Date
Developer01
969e07eb17 Vor Controls2B_EnDisabled Change 2026-03-11 16:43:34 +01:00
Developer01
7629d54fe1 2.8.4 Beta IDB replace Hochkomma bei Delete, Währungskonvertierung 2026-03-11 12:08:46 +01:00
Developer01
41e46f9dbb Version 2.8.3 zu Test an MK und HE 2026-03-03 12:55:01 +01:00
Developer01
a192267d96 MS Anpassung Speicherung IDBData 2026-03-02 16:29:14 +01:00
Developer01
a0d3a487d8 Vor Ändeurng LoogUpControl 2026-02-27 11:46:09 +01:00
Developer01
54744a0531 Vor GridControl Length 2026-02-26 10:37:05 +01:00
Developer01
743ef3fe22 MS 2.8.2 Fehlerhandling und Column-Formel Test bei Henning 2026-02-25 13:16:12 +01:00
Developer01
25dcfb2061 VorKOG_Hotspots in LOD 2026-02-13 07:56:02 +01:00
Developer01
3e34b52c6f 2.8.1 2026-02-12 17:25:46 +01:00
Developer01
950aeba89e 2.8.1 2026-02-12 17:25:40 +01:00
Developer01
e086c5db14 Finalisierung Columnberechnungen - ab in den TEST 2026-02-12 10:19:28 +01:00
Developer01
4898d25388 Berechnung Spalten start 2026-02-10 17:40:15 +01:00
30 changed files with 4724 additions and 1420 deletions

62
app/README.md Normal file
View File

@@ -0,0 +1,62 @@
Here's the improved `README.md` file incorporating the new content while maintaining the existing structure and coherence:
# Project Title
## Overview
Provide a brief description of the project, its purpose, and its main features.
## Installation
Instructions on how to install and set up the project.
## Usage
How to use the project, including code examples and explanations.
## DataColumn.Expression (Formelsprachen-Übersicht)
Die dynamischen Grid-Formeln verwenden die ADO.NET **`DataColumn.Expression`**-Sprache. Spalten werden immer über den **Spaltennamen** referenziert (in eckigen Klammern).
### Grundoperatoren
| Typ | Ausdruck | Beispiel |
|---|---|---|
| Arithmetik | `+ - * /` | `[A] * [B]` |
| Vergleich | `= <> > >= < <=` | `[MENGE] > 0` |
| Logik | `AND OR NOT` | `[A] > 0 AND [B] < 10` |
| Klammern | `(...)` | `([A] + [B]) * 2` |
### String-Verkettung
| Ausdruck | Beispiel |
|---|---|
| `+` | `[VORNAME] + ' - ' + [NACHNAME]` |
| `Convert` | `Convert([NUMMER], 'System.String')` |
### Bedingungen
| Ausdruck | Beispiel |
|---|---|
| `IIF` | `IIF([A] = 'Harry', 'Blume', 'Tier')` |
### Häufige Funktionen
| Funktion | Beispiel |
|---|---|
| `Len` | `Len([TEXT])` |
| `Trim` | `Trim([TEXT])` |
| `Substring` | `Substring([TEXT], 0, 3)` |
| `IsNull` | `IsNull([WERT], 0)` |
| `Convert` | `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')`
## Contributing
Guidelines for contributing to the project.
## License
Information about the project's license.
## Contact
How to contact the project maintainers for questions or support.

View File

@@ -69,6 +69,8 @@ Public Class ClassControlCreator
Public Property GridTables As New Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
Public Property GridColumns As New Dictionary(Of Integer, DataTable)
''' <summary>
''' Standard Eigenschaften für alle Controls
''' </summary>
@@ -533,12 +535,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 +636,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

View File

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

View File

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

View File

@@ -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 {

View File

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

View File

@@ -25,15 +25,19 @@ Namespace ControlCreator
Private newRowModified As Boolean
Private isApplyingInheritedValue As Boolean
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)))
Private _FormulaColumnNames As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
Private _isRefreshingFormula As Boolean = False ' *** NEU: Flag für Formel-Refresh ***
Private _currencySymbol As String = ""
Public Sub New(pLogConfig As LogConfig, pGridTables As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem)), pCurrencySymbol As String)
_LogConfig = pLogConfig
_Logger = pLogConfig.GetLogger()
_GridTables = pGridTables
_currencySymbol = pCurrencySymbol
End Sub
Public Function CreateGridColumns(pColumnTable As DataTable) As DataTable
Dim oDataTable As New DataTable
Dim columnsWithExpressions As New List(Of Tuple(Of DataColumn, String))
For Each oRow As DataRow In pColumnTable.Rows
' Create Columns in Datatable
@@ -58,12 +62,64 @@ Namespace ControlCreator
oColumn.DataType = GetType(String)
End Select
oDataTable.Columns.Add(oColumn)
Dim oFormulaExpression = ObjectEx.NotNull(oRow.Item("FORMULA_EXPRESSION"), String.Empty)
If oFormulaExpression <> String.Empty Then
' Expression merken, aber erst später setzen
columnsWithExpressions.Add(New Tuple(Of DataColumn, String)(oColumn, oFormulaExpression))
End If
Try
oDataTable.Columns.Add(oColumn)
Catch ex As Exception
_Logger.Warn("⚠️ Could not add column {0} to DataTable", oColumn.ColumnName)
_Logger.Error(ex)
End Try
Next
' Jetzt alle Expressions setzen, nachdem alle Spalten existieren
For Each columnExpressionPair In columnsWithExpressions
Dim oColumn = columnExpressionPair.Item1
Dim oExpression = columnExpressionPair.Item2
Try
_Logger.Debug("Setting expression for column [{0}]: {1}", oColumn.ColumnName, oExpression)
' Prüfe, ob alle referenzierten Spalten existieren
Dim referencedColumns = GetReferencedColumnNames(oExpression)
For Each refCol In referencedColumns
If Not oDataTable.Columns.Contains(refCol) Then
_Logger.Warn("⚠️ Referenced column [{0}] does not exist in DataTable!", refCol)
MsgBox(String.Format("Referenced column [{0}] does not exist in DataTable!", refCol), MsgBoxStyle.Exclamation)
Else
_Logger.Debug("Referenced column [{0}] exists with DataType: {1}", refCol, oDataTable.Columns(refCol).DataType.Name)
End If
Next
oColumn.Expression = oExpression
oColumn.ReadOnly = True
_Logger.Info("✓ Expression successfully set for column [{0}]: {1}", oColumn.ColumnName, oColumn.Expression)
Catch ex As Exception
_Logger.Warn("⚠️ Invalid FORMULA_EXPRESSION for column {0}: {1}", oColumn.ColumnName, oExpression)
_Logger.Error(ex)
MsgBox(String.Format("The column '{0}' inlcudes an invalid formula: {1}. Please check the FORMULA_EXPRESSION in the table designer." & vbCrLf &
"Error: {2}", oColumn.ColumnName, oExpression, ex.Message), MsgBoxStyle.Exclamation, "Ungültige Formel")
End Try
Next
Return oDataTable
End Function
Private Function GetReferencedColumnNames(expression As String) As List(Of String)
Dim columnNames As New List(Of String)
Dim pattern As String = "\[([^\]]+)\]"
Dim matches = Regex.Matches(expression, pattern)
For Each match As Match In matches
columnNames.Add(match.Groups(1).Value)
Next
Return columnNames
End Function
Public Function FillGridTables(pColumnTable As DataTable, pControlId As Integer, pControlName As String) As Dictionary(Of Integer, Dictionary(Of String, RepositoryItem))
For Each oRow As DataRow In pColumnTable.Rows
' Fetch and cache Combobox results
@@ -147,15 +203,15 @@ Namespace ControlCreator
End If
End Function
' Hilfsroutine: passt NUR das Summary-Item an (ohne FormatInfo)
Private Sub ApplyCurrencySummaryFormat(oCol As GridColumn, currencySymbol As String)
Private Sub ApplyCurrencySummaryFormat(oCol As GridColumn)
oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum
' Variante A: Standard-Währungsformat aus aktueller Kultur
' oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}"
' Variante B: Kulturunabhängig, Symbol explizit anhängen
oCol.SummaryItem.DisplayFormat = $"SUM: {{0:N2}} {currencySymbol}"
oCol.SummaryItem.DisplayFormat = $"SUM: {{0:N2}} {_currencySymbol}"
End Sub
Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pcurrencySymbol As String)
Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl)
Dim oShouldDisplayFooter As Boolean = False
For Each oCol As GridColumn In pGridView.Columns
Dim oColumnData As DataRow = pColumnTable.
@@ -179,6 +235,13 @@ Namespace ControlCreator
Dim oReadOnlyInt As Integer
oIsReadOnly = Integer.TryParse(oReadOnlyValue.ToString(), oReadOnlyInt) AndAlso oReadOnlyInt = 1
End If
Dim oFormulaExpression = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty)
If oFormulaExpression <> String.Empty Then
oIsReadOnly = True
End If
oCol.OptionsColumn.AllowEdit = Not oIsReadOnly
Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN")
@@ -194,7 +257,8 @@ Namespace ControlCreator
Case "CURRENCY"
oCol.DisplayFormat.FormatType = FormatType.Custom
oCol.DisplayFormat.FormatString = "C2"
oCol.DisplayFormat.FormatString = $"N2 {_currencySymbol}"
End Select
Dim oSummaryFunction As String = oColumnData.Item("SUMMARY_FUNCTION")
@@ -211,7 +275,7 @@ Namespace ControlCreator
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_CURRENCY
ApplyCurrencySummaryFormat(oCol, pcurrencySymbol)
ApplyCurrencySummaryFormat(oCol)
oShouldDisplayFooter = True
Case Constants.AGGREGATE_TOTAL_AVG
@@ -246,16 +310,16 @@ Namespace ControlCreator
End With
End If
End Sub
Public Sub ConfigureViewColumnsCurrency(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pCurrency As String)
Public Sub ConfigureViewColumnsCurrency(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl)
Dim oCultureInfo As CultureInfo = New CultureInfo("de-DE")
oCultureInfo.NumberFormat.CurrencySymbol = pCurrency
oCultureInfo.NumberFormat.CurrencySymbol = _currencySymbol
Dim riTextEdit As RepositoryItemTextEdit = New RepositoryItemTextEdit()
riTextEdit.MaskSettings.Configure(Of MaskSettings.Numeric)(Sub(settings)
settings.MaskExpression = "c"
settings.Culture = oCultureInfo
End Sub)
riTextEdit.UseMaskAsDisplayFormat = True 'Optional
riTextEdit.UseMaskAsDisplayFormat = True
pGrid.RepositoryItems.Add(riTextEdit)
For Each oCol As GridColumn In pGridView.Columns
@@ -267,16 +331,39 @@ Namespace ControlCreator
Continue For
End If
' *** NEU: Prüfe ob Spalte editierbar ist ***
If Not oCol.OptionsColumn.AllowEdit Then
_Logger.Debug("Skipping ColumnEdit for read-only column [{0}]", oCol.FieldName)
Continue For
End If
' Formel-Spalten dürfen kein ColumnEdit bekommen, da der RepositoryItem-Cache
' den berechneten Wert nach RefreshRowCell überschreibt.
Dim oFormulaExpression = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty)
If oFormulaExpression <> String.Empty Then
_Logger.Debug("Skipping ColumnEdit assignment for formula column [{0}] using DisplayFormat only.", oCol.FieldName)
Continue For
End If
Dim oColumnType As String = oColumnData.Item("TYPE_COLUMN")
Select Case oColumnType
Case "CURRENCY"
oCol.DisplayFormat.FormatType = FormatType.Custom
' *** WICHTIG: NUR ColumnEdit setzen, KEIN DisplayFormat mehr! ***
oCol.ColumnEdit = riTextEdit
End Select
Next
End Sub
Public Sub ConfigureViewEvents(pColumnTable As DataTable, pGridView As GridView, pControl As Windows.Forms.Control, pControlId As Integer)
' Formel-Spalten-Namen einmalig cachen für View_ShowingEditor
_FormulaColumnNames.Clear()
For Each r As DataRow In pColumnTable.Rows
Dim oExpr = ObjectEx.NotNull(r.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
If oExpr <> String.Empty Then
_FormulaColumnNames.Add(r.Item("SPALTENNAME").ToString())
End If
Next
AddHandler pGridView.InitNewRow, Sub(sender As Object, e As InitNewRowEventArgs)
Try
_Logger.Debug("Initialzing new row")
@@ -302,6 +389,55 @@ Namespace ControlCreator
newRowModified = False
End Try
End Sub
' *** NEU: CustomColumnDisplayText für robuste CURRENCY-Formatierung ***
AddHandler pGridView.CustomColumnDisplayText,
Sub(sender As Object, e As CustomColumnDisplayTextEventArgs)
If e.Column Is Nothing OrElse e.Value Is Nothing OrElse IsDBNull(e.Value) Then
Return
End If
' Prüfe ob Spalte vom Typ CURRENCY ist
Dim oColumnData As DataRow = pColumnTable.
Select($"SPALTENNAME = '{e.Column.FieldName}'").
FirstOrDefault()
If oColumnData IsNot Nothing AndAlso
oColumnData.Item("TYPE_COLUMN").ToString() = "CURRENCY" Then
Try
Dim oValue As Double
' *** KRITISCH: Robustes Parsing unabhängig vom Dezimaltrenner ***
If TypeOf e.Value Is Double OrElse TypeOf e.Value Is Decimal Then
oValue = Convert.ToDouble(e.Value)
ElseIf TypeOf e.Value Is String Then
Dim oStringValue As String = e.Value.ToString().Trim()
' Versuche zuerst deutsches Format (1.234,56)
Dim oDeCulture As CultureInfo = New CultureInfo("de-DE")
If Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, oDeCulture, oValue) Then
' Erfolgreich mit deutschem Format geparst
ElseIf Double.TryParse(oStringValue, NumberStyles.Currency Or NumberStyles.Number, CultureInfo.InvariantCulture, oValue) Then
' Erfolgreich mit invariantem Format (Punkt als Dezimaltrenner)
Else
' Fallback: Systemkultur
oValue = Convert.ToDouble(oStringValue, CultureInfo.CurrentCulture)
End If
Else
oValue = Convert.ToDouble(e.Value)
End If
' Formatierung IMMER mit deutscher Kultur (Komma als Dezimaltrenner)
Dim oDeCultureInfo As CultureInfo = New CultureInfo("de-DE")
e.DisplayText = oValue.ToString("N2", oDeCultureInfo) & " " & _currencySymbol
Catch ex As Exception
_Logger.Warn("⚠️ Could not format currency value [{0}] for column [{1}]: {2}",
e.Value, e.Column.FieldName, ex.Message)
' Fallback: Original-Wert + Symbol
e.DisplayText = e.Value.ToString() & " " & _currencySymbol
End Try
End If
End Sub
AddHandler pGridView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs)
Try
@@ -334,30 +470,233 @@ Namespace ControlCreator
End Sub
AddHandler pGridView.PopupMenuShowing, AddressOf View_PopupMenuShowing
AddHandler pGridView.InvalidRowException, AddressOf View_InvalidRowException
AddHandler pGridView.ValidatingEditor, AddressOf View_ValidatingEditor
' AddHandler pGridView.CustomColumnDisplayText, AddressOf View_CustomColumnDisplayText
AddHandler pGridView.ShownEditor,
Sub(sender As Object, e As EventArgs)
Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(view.FocusedRowHandle) Then
_Logger.Debug("Attaching Modified Handler.")
AddHandler view.ActiveEditor.Modified, Sub()
_Logger.Debug("Row was modified.")
newRowModified = True
End Sub
End If
' *** KRITISCH: LIVE-REFRESH bei JEDER Eingabe (auch NewItemRow!) ***
If view.FocusedColumn IsNot Nothing AndAlso view.ActiveEditor IsNot Nothing Then
Dim oFocusedColumnName As String = view.FocusedColumn.FieldName
' Prüfen ob diese Spalte von Formel-Spalten referenziert wird
Dim oFormulaColumnsToRefresh As New List(Of String)
For Each oColumnData As DataRow In pColumnTable.Rows
Dim oExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
If oExpr = String.Empty Then Continue For
Dim referencedColumns = GetReferencedColumnNames(oExpr)
If referencedColumns.Any(Function(col) String.Equals(col, oFocusedColumnName, StringComparison.OrdinalIgnoreCase)) Then
oFormulaColumnsToRefresh.Add(oColumnData.Item("SPALTENNAME").ToString())
End If
Next
If oFormulaColumnsToRefresh.Count > 0 Then
_Logger.Debug("[FormulaRefresh] Attaching EditValueChanged handler for LIVE formula updates on column [{0}].", oFocusedColumnName)
' Handler für LIVE Aktualisierung während JEDER Eingabe
AddHandler view.ActiveEditor.EditValueChanged,
Sub(editorSender As Object, editorArgs As EventArgs)
Try
Dim oRowHandle As Integer = view.FocusedRowHandle
If Not view.IsValidRowHandle(oRowHandle) Then Return
Dim oEditor As DevExpress.XtraEditors.BaseEdit = TryCast(editorSender, DevExpress.XtraEditors.BaseEdit)
If oEditor Is Nothing Then Return
Dim isNewItemRow As Boolean = view.IsNewItemRow(oRowHandle)
Try
Dim oValue As Object = oEditor.EditValue
If TypeOf oEditor Is DevExpress.XtraEditors.TextEdit Then
Dim oTextEdit As DevExpress.XtraEditors.TextEdit = DirectCast(oEditor, DevExpress.XtraEditors.TextEdit)
If oTextEdit.Properties.MaskSettings IsNot Nothing Then
oValue = oEditor.EditValue
End If
End If
If isNewItemRow Then
_Logger.Debug("[FormulaRefresh] EditValueChanged (NewItemRow) setting value for [{0}] = [{1}].", oFocusedColumnName, oValue)
_isRefreshingFormula = True
Try
' Wert setzen
view.SetRowCellValue(oRowHandle, oFocusedColumnName, If(oValue Is Nothing, DBNull.Value, oValue))
' *** KRITISCH: DoEvents() damit SetRowCellValue processed wird ***
view.UpdateCurrentRow()
' Formel-Spalten SOFORT refreshen
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = view.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn IsNot Nothing Then
view.RefreshRowCell(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] (NewItemRow) Refreshed [{0}], current value: [{1}]",
oFormulaColumnName, view.GetRowCellValue(oRowHandle, oGridColumn))
End If
Next
Finally
_isRefreshingFormula = False
End Try
Else
' Bestehende Row
Dim oDataRow As DataRow = view.GetDataRow(oRowHandle)
If oDataRow IsNot Nothing Then
_Logger.Debug("[FormulaRefresh] EditValueChanged setting value for [{0}] in DataTable.", oFocusedColumnName)
oDataRow.Item(oFocusedColumnName) = If(oValue Is Nothing, DBNull.Value, oValue)
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = view.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn IsNot Nothing Then
view.RefreshRowCell(oRowHandle, oGridColumn)
Dim currentValue = view.GetRowCellValue(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] Current value for [{0}]: [{1}]", oFormulaColumnName, currentValue)
End If
Next
End If
End If
Catch parseEx As Exception
_Logger.Debug("[FormulaRefresh] Parse error during EditValueChanged: {0}", parseEx.Message)
End Try
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
End If
End If
End Sub
' These handlers are all used for the custom DefaultValue functionality, additionally some code in the 'InitNewRow' event.
' https://supportcenter.devexpress.com/ticket/details/t1035580/how-to-default-a-value-in-a-column-when-add-new-row-in-data-grid
AddHandler pGridView.ShowingEditor, AddressOf View_ShowingEditor
AddHandler pGridView.ShownEditor, AddressOf View_ShownEditor
AddHandler pGridView.ValidateRow, AddressOf View_ValidateRow
AddHandler pControl.LostFocus, AddressOf Control_LostFocus
AddHandler pGridView.ShowingEditor,
Sub(sender As Object, e As CancelEventArgs)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing Then Return
_Logger.Debug("Showing editor.")
' Formel-Spalten dürfen keinen Editor öffnen
If oView.FocusedColumn IsNot Nothing Then
Dim oFieldName As String = oView.FocusedColumn.FieldName
If _FormulaColumnNames.Contains(oFieldName) Then
_Logger.Debug("Cancelling editor column [{0}] is a formula column.", oFieldName)
e.Cancel = True
Return
End If
End If
If oView.IsNewItemRow(oView.FocusedRowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Adding new row.")
oView.AddNewRow()
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
AddHandler pGridView.FocusedColumnChanged,
Sub(sender As Object, e As FocusedColumnChangedEventArgs)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing Then Return
Dim oRowHandle As Integer = oView.FocusedRowHandle
If oView.IsNewItemRow(oRowHandle) Then Return
If Not oView.IsValidRowHandle(oRowHandle) Then Return
If oView.FocusedColumn IsNot Nothing AndAlso
_FormulaColumnNames.Contains(oView.FocusedColumn.FieldName) Then
_Logger.Debug("[FormulaRefresh] FocusedColumnChanged closing editor on formula column [{0}].", oView.FocusedColumn.FieldName)
oView.CloseEditor()
End If
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
AddHandler pGridView.CellValueChanged,
Sub(sender As Object, e As CellValueChangedEventArgs)
' *** HandleInheritedColumnValue MUSS zuerst aufgerufen werden ***
Try
HandleInheritedColumnValue(TryCast(sender, GridView), pColumnTable, e)
Catch ex As Exception
_Logger.Error(ex)
End Try
' *** Formel-Refresh via CellValueChanged ist FALLBACK ***
' (EditValueChanged macht das normalerweise schon LIVE)
Try
Dim oView As GridView = TryCast(sender, GridView)
If oView Is Nothing OrElse e.Column Is Nothing Then Return
' Prüfen ob überhaupt eine Formel-Spalte referenziert wird
Dim oFormulaColumnsToRefresh As New List(Of String)
For Each oColumnData As DataRow In pColumnTable.Rows
Dim oExpr = ObjectEx.NotNull(oColumnData.Item("FORMULA_EXPRESSION"), String.Empty).ToString()
If oExpr = String.Empty Then Continue For
Dim referencedColumns = GetReferencedColumnNames(oExpr)
If referencedColumns.Any(Function(col) String.Equals(col, e.Column.FieldName, StringComparison.OrdinalIgnoreCase)) Then
oFormulaColumnsToRefresh.Add(oColumnData.Item("SPALTENNAME").ToString())
End If
Next
If oFormulaColumnsToRefresh.Count = 0 Then
Return
End If
' *** FALLBACK: Nur wenn EditValueChanged NICHT gefeuert hat ***
' (z.B. bei programmatischer SetRowCellValue oder Paste)
Dim oRowHandle As Integer = e.RowHandle
_Logger.Debug("[FormulaRefresh] CellValueChanged FALLBACK refreshing for row [{0}] after column [{1}] changed.", oRowHandle, e.Column.FieldName)
oView.GridControl.BeginInvoke(New Action(
Sub()
Try
If Not oView.IsValidRowHandle(oRowHandle) Then Return
For Each oFormulaColumnName As String In oFormulaColumnsToRefresh
Dim oGridColumn As GridColumn = oView.Columns.ColumnByFieldName(oFormulaColumnName)
If oGridColumn Is Nothing Then Continue For
oView.RefreshRowCell(oRowHandle, oGridColumn)
_Logger.Debug("[FormulaRefresh] FALLBACK DisplayText for [{0}]: [{1}]",
oFormulaColumnName, oView.GetRowCellDisplayText(oRowHandle, oGridColumn))
Next
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub))
Catch ex As Exception
_Logger.Error(ex)
End Try
End Sub
End Sub
Private Sub HandleInheritedColumnValue(pView As GridView, pColumnDefinition As DataTable, pArgs As CellValueChangedEventArgs)
If pView Is Nothing OrElse pArgs Is Nothing OrElse pArgs.Column Is Nothing Then
Return
End If
' *** NEU: Bei Formel-Refresh überspringen ***
If _isRefreshingFormula Then
_Logger.Debug("Skipping HandleInheritedColumnValue during formula refresh.")
Return
End If
If isApplyingInheritedValue OrElse pArgs.RowHandle = DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
Return
@@ -423,9 +762,10 @@ Namespace ControlCreator
Return
End If
confirmationEntry.Count += 1
CONFIG.Save()
_Logger.Info("User confirmed value inheritance. Confirmation count: {0}", confirmationEntry.Count)
Dim newCount = confirmationEntry.Count + 1
confirmationEntry.Count = newCount
SetInheritanceConfirmationCount(confirmationEntry.ColumnName, newCount)
_Logger.Info("User confirmed value inheritance. Confirmation count: {0}", newCount)
ElseIf affectedRowsCount > 0 AndAlso confirmationEntry.Count = InheritanceMsgAmount Then
' Schwellenwert erreicht - User fragen, ob er weiterhin gefragt werden möchte
Dim continueAskingMessage As String = "Sie haben diese Bestätigung bereits mehrfach durchgeführt. Möchten Sie in Zukunft weiterhin gefragt werden?"
@@ -447,13 +787,14 @@ Namespace ControlCreator
If continueResult = DialogResult.Yes Then
' User möchte weiterhin gefragt werden - Counter zurücksetzen
confirmationEntry.Count = 0
CONFIG.Save()
SetInheritanceConfirmationCount(confirmationEntry.ColumnName, 0)
_Logger.Info("User wants to continue being asked. Counter reset to 0.")
Else
' User möchte nicht mehr gefragt werden - Counter erhöhen
confirmationEntry.Count += 1
CONFIG.Save()
_Logger.Info("User does not want to be asked anymore. Counter increased to {0}.", confirmationEntry.Count)
Dim newCount = confirmationEntry.Count + 1
confirmationEntry.Count = newCount
SetInheritanceConfirmationCount(confirmationEntry.ColumnName, newCount)
_Logger.Info("User does not want to be asked anymore. Counter increased to {0}.", newCount)
End If
ElseIf affectedRowsCount > 0 Then
_Logger.Info("Skipping confirmation dialog (already confirmed {0} times)", confirmationEntry.Count)
@@ -483,7 +824,21 @@ Namespace ControlCreator
isApplyingInheritedValue = False
End Try
End Sub
Private Sub SetInheritanceConfirmationCount(columnName As String, newCount As Integer)
Dim entries = UserInheritance_ConfirmationByColumn
If entries Is Nothing Then
Return
End If
Dim entryIndex = entries.FindIndex(Function(item) String.Equals(item.ColumnName, columnName, StringComparison.OrdinalIgnoreCase))
If entryIndex < 0 Then
Return
End If
Dim entry = entries(entryIndex)
entry.Count = newCount
entries(entryIndex) = entry
End Sub
Private Function GetInheritanceConfirmationEntry(columnName As String) As UserInheritanceConfirmation
Dim entries = UserInheritance_ConfirmationByColumn
@@ -503,16 +858,7 @@ Namespace ControlCreator
Return entry
End Function
Private Sub View_CustomColumnDisplayText(ByVal eSender As Object, ByVal e As CustomColumnDisplayTextEventArgs)
If IsNothing(e.Value) Then
Exit Sub
End If
Dim view As GridView = eSender
'Dim view As GridView = TryCast(GridView1, GridView)
If e.Column.FieldName = "SpalteCurrency" Then
' e.DisplayText = e.Value.ToString().Replace("€", "CHF")
End If
End Sub
Private Sub View_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs)
Dim view As GridView = TryCast(sender, GridView)
Dim oFocusedColumn As GridColumn = view.FocusedColumn
@@ -566,28 +912,12 @@ Namespace ControlCreator
End If
End Sub
Private Sub View_ShowingEditor(sender As Object, e As CancelEventArgs)
Dim view As GridView = TryCast(sender, GridView)
_Logger.Debug("Showing editor.")
If view.IsNewItemRow(view.FocusedRowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Adding new row.")
view.AddNewRow()
End If
End Sub
Private Sub View_ShownEditor(sender As Object, e As EventArgs)
Dim view As GridView = TryCast(sender, GridView)
If view.IsNewItemRow(view.FocusedRowHandle) Then
_Logger.Debug("Attaching Modified Handler.")
AddHandler view.ActiveEditor.Modified, Sub()
_Logger.Debug("Row was modified.")
newRowModified = True
End Sub
End If
End Sub
Private Sub View_ValidateRow(sender As Object, e As ValidateRowEventArgs)
Dim view As GridView = TryCast(sender, GridView)
' RowHandle für RowUpdated merken, bevor er sich nach dem Commit ändert
If view.IsNewItemRow(e.RowHandle) AndAlso Not newRowModified Then
_Logger.Debug("Deleting unused row")
view.DeleteRow(e.RowHandle)

View File

@@ -5273,7 +5273,7 @@ Partial Public Class DD_DMSLiteDataSet
Me.columnTABLE_ORDER_COLUMN.DefaultValue = CType("",String)
Me.columnTABLE_ORDER_COLUMN.MaxLength = 250
Me.columnSAVE_CHANGE_ON_ENABLED.AllowDBNull = false
Me.columnFORMAT_STRING.AllowDBNull = false
Me.columnFORMAT_STRING.DefaultValue = CType("",String)
Me.columnTEXT_ALIGNMENT.AllowDBNull = false
Me.columnTEXT_ALIGNMENT.DefaultValue = CType("Near",String)
Me.columnTEXT_ALIGNMENT.MaxLength = 20
@@ -5464,6 +5464,8 @@ Partial Public Class DD_DMSLiteDataSet
Private columnINHERIT_VALUE As Global.System.Data.DataColumn
Private columnFORMULA_EXPRESSION 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()
@@ -5699,6 +5701,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_EXPRESSIONColumn() As Global.System.Data.DataColumn
Get
Return Me.columnFORMULA_EXPRESSION
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)> _
@@ -5760,9 +5770,10 @@ Partial Public Class DD_DMSLiteDataSet
ByVal SUMMARY_FUNCTION As String, _
ByVal TYPE_COLUMN As String, _
ByVal LU_CAPTION As String, _
ByVal INHERIT_VALUE As Boolean) As TBPM_CONTROL_TABLERow
ByVal INHERIT_VALUE As Boolean, _
ByVal FORMULA_EXPRESSION 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}
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}
If (Not (parentTBPM_PROFILE_CONTROLSRowByFK_TBPM_CONTROL_TABLE_CONTROL1) Is Nothing) Then
columnValuesArray(1) = parentTBPM_PROFILE_CONTROLSRowByFK_TBPM_CONTROL_TABLE_CONTROL1(0)
End If
@@ -5819,6 +5830,7 @@ Partial Public Class DD_DMSLiteDataSet
Me.columnTYPE_COLUMN = MyBase.Columns("TYPE_COLUMN")
Me.columnLU_CAPTION = MyBase.Columns("LU_CAPTION")
Me.columnINHERIT_VALUE = MyBase.Columns("INHERIT_VALUE")
Me.columnFORMULA_EXPRESSION = MyBase.Columns("FORMULA_EXPRESSION")
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
@@ -5874,6 +5886,8 @@ Partial Public Class DD_DMSLiteDataSet
MyBase.Columns.Add(Me.columnLU_CAPTION)
Me.columnINHERIT_VALUE = New Global.System.Data.DataColumn("INHERIT_VALUE", GetType(Boolean), Nothing, Global.System.Data.MappingType.Element)
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.Constraints.Add(New Global.System.Data.UniqueConstraint("Constraint1", New Global.System.Data.DataColumn() {Me.columnGUID}, true))
Me.columnGUID.AutoIncrement = true
Me.columnGUID.AllowDBNull = false
@@ -5916,6 +5930,8 @@ Partial Public Class DD_DMSLiteDataSet
Me.columnLU_CAPTION.MaxLength = 150
Me.columnINHERIT_VALUE.AllowDBNull = false
Me.columnINHERIT_VALUE.DefaultValue = CType(false,Boolean)
Me.columnFORMULA_EXPRESSION.AllowDBNull = false
Me.columnFORMULA_EXPRESSION.MaxLength = 1000
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
@@ -12579,7 +12595,11 @@ Partial Public Class DD_DMSLiteDataSet
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Property FORMAT_STRING() As String
Get
Return CType(Me(Me.tableTBPM_PROFILE_CONTROLS.FORMAT_STRINGColumn),String)
Try
Return CType(Me(Me.tableTBPM_PROFILE_CONTROLS.FORMAT_STRINGColumn),String)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("Der Wert für Spalte FORMAT_STRING in Tabelle TBPM_PROFILE_CONTROLS ist DBNull.", e)
End Try
End Get
Set
Me(Me.tableTBPM_PROFILE_CONTROLS.FORMAT_STRINGColumn) = value
@@ -12851,6 +12871,18 @@ Partial Public Class DD_DMSLiteDataSet
Me(Me.tableTBPM_PROFILE_CONTROLS.SQL_ENABLE_ON_LOAD_CONIDColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Function IsFORMAT_STRINGNull() As Boolean
Return Me.IsNull(Me.tableTBPM_PROFILE_CONTROLS.FORMAT_STRINGColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Sub SetFORMAT_STRINGNull()
Me(Me.tableTBPM_PROFILE_CONTROLS.FORMAT_STRINGColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")> _
Public Function IsBACKCOLOR_IFNull() As Boolean
@@ -13184,6 +13216,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_EXPRESSION() As String
Get
Return CType(Me(Me.tableTBPM_CONTROL_TABLE.FORMULA_EXPRESSIONColumn),String)
End Get
Set
Me(Me.tableTBPM_CONTROL_TABLE.FORMULA_EXPRESSIONColumn) = 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
@@ -20855,7 +20898,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
End If
Me.Adapter.InsertCommand.Parameters(34).Value = CType(SAVE_CHANGE_ON_ENABLED,Boolean)
If (FORMAT_STRING Is Nothing) Then
Throw New Global.System.ArgumentNullException("FORMAT_STRING")
Me.Adapter.InsertCommand.Parameters(35).Value = Global.System.DBNull.Value
Else
Me.Adapter.InsertCommand.Parameters(35).Value = CType(FORMAT_STRING,String)
End If
@@ -21033,7 +21076,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
End If
Me.Adapter.UpdateCommand.Parameters(31).Value = CType(SAVE_CHANGE_ON_ENABLED,Boolean)
If (FORMAT_STRING Is Nothing) Then
Throw New Global.System.ArgumentNullException("FORMAT_STRING")
Me.Adapter.UpdateCommand.Parameters(32).Value = Global.System.DBNull.Value
Else
Me.Adapter.UpdateCommand.Parameters(32).Value = CType(FORMAT_STRING,String)
End If
@@ -21491,6 +21534,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
tableMapping.ColumnMappings.Add("TYPE_COLUMN", "TYPE_COLUMN")
tableMapping.ColumnMappings.Add("LU_CAPTION", "LU_CAPTION")
tableMapping.ColumnMappings.Add("INHERIT_VALUE", "INHERIT_VALUE")
tableMapping.ColumnMappings.Add("FORMULA_EXPRESSION", "FORMULA_EXPRESSION")
Me._adapter.TableMappings.Add(tableMapping)
Me._adapter.DeleteCommand = New Global.System.Data.SqlClient.SqlCommand()
Me._adapter.DeleteCommand.Connection = Me.Connection
@@ -21527,12 +21571,13 @@ Namespace DD_DMSLiteDataSetTableAdapters
"ESSAGE_EN, REGEX_MESSAGE_DE = @REGEX_MESSAGE_DE, "&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" SEQU"& _
"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"&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, SP"& _
"ALTENBREITE, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOA"& _
"D_IDX_VALUE, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN, REGEX_MATCH, REGE"& _
"X_MESSAGE_EN, REGEX_MESSAGE_DE, SEQUENCE, DEFAULT_VALUE, ADVANCED_LOOKUP FROM TB"& _
"PM_CONTROL_TABLE WHERE (GUID = @GUID)"
"_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)"& _
""
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, "", "", ""))
@@ -21557,6 +21602,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
Me._adapter.UpdateCommand.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@SAVE_CHANGE_ON_ENABLED", Global.System.Data.SqlDbType.[Variant], 1024, Global.System.Data.ParameterDirection.Input, 0, 0, "SAVE_CHANGE_ON_ENABLED", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
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("@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
@@ -21578,8 +21624,9 @@ Namespace DD_DMSLiteDataSetTableAdapters
"ATION, CHOICE_LIST, CONNECTION_ID, SQL_COMMAND, READ_ONLY, LOAD_IDX_VALUE, ADDED"& _
"_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)&"FROM TBP"& _
"M_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (CONTROL_ID = @CONTROL_ID)"
"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)"
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()
@@ -21592,7 +21639,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"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @Original_GUID)"
"@INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION"&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, "", "", ""))
@@ -21611,6 +21659,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
Me._commandCollection(1).Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@TYPE_COLUMN", Global.System.Data.SqlDbType.VarChar, 20, Global.System.Data.ParameterDirection.Input, 0, 0, "TYPE_COLUMN", Global.System.Data.DataRowVersion.Current, false, Nothing, "", "", ""))
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("@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
@@ -21623,8 +21672,8 @@ Namespace DD_DMSLiteDataSetTableAdapters
"CHOICE_LIST, CONNECTION_ID, CONTROL_ID, DEFAULT_VALUE, GUID, LOAD_IDX_VALUE, REA"& _
"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"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"FROM TBPM_CONTROL_TABLE"& _
""
"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"
Me._commandCollection(3).CommandType = Global.System.Data.CommandType.Text
Me._commandCollection(4) = New Global.System.Data.SqlClient.SqlCommand()
Me._commandCollection(4).Connection = Me.Connection
@@ -21632,8 +21681,9 @@ Namespace DD_DMSLiteDataSetTableAdapters
"CHOICE_LIST, CONNECTION_ID, CONTROL_ID, DEFAULT_VALUE, GUID, LOAD_IDX_VALUE, REA"& _
"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)&"FROM TBP"& _
"M_CONTROL_TABLE"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"WHERE (GUID = @GUID)"
"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)"
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()
@@ -21841,6 +21891,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
ByVal SAVE_CHANGE_ON_ENABLED As Object, _
ByVal INHERIT_VALUE As Boolean, _
ByVal LU_CAPTION As String, _
ByVal FORMULA_EXPRESSION As String, _
ByVal Original_GUID As Integer, _
ByVal GUID As Integer) As Integer
Me.Adapter.UpdateCommand.Parameters(0).Value = CType(CONTROL_ID,Integer)
@@ -21922,8 +21973,13 @@ Namespace DD_DMSLiteDataSetTableAdapters
Else
Me.Adapter.UpdateCommand.Parameters(22).Value = CType(LU_CAPTION,String)
End If
Me.Adapter.UpdateCommand.Parameters(23).Value = CType(Original_GUID,Integer)
Me.Adapter.UpdateCommand.Parameters(24).Value = CType(GUID,Integer)
If (FORMULA_EXPRESSION Is Nothing) Then
Throw New Global.System.ArgumentNullException("FORMULA_EXPRESSION")
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)
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
@@ -21960,6 +22016,7 @@ Namespace DD_DMSLiteDataSetTableAdapters
ByVal TYPE_COLUMN As String, _
ByVal LU_CAPTION As String, _
ByVal INHERIT_VALUE As Boolean, _
ByVal FORMULA_EXPRESSION 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
@@ -22019,7 +22076,12 @@ Namespace DD_DMSLiteDataSetTableAdapters
command.Parameters(15).Value = CType(LU_CAPTION,String)
End If
command.Parameters(16).Value = CType(INHERIT_VALUE,Boolean)
command.Parameters(17).Value = CType(Original_GUID,Integer)
If (FORMULA_EXPRESSION Is Nothing) Then
Throw New Global.System.ArgumentNullException("FORMULA_EXPRESSION")
Else
command.Parameters(17).Value = CType(FORMULA_EXPRESSION,String)
End If
command.Parameters(18).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

View File

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

View File

@@ -1011,7 +1011,7 @@ SELECT GUID, PROFIL_ID, NAME, CTRL_TYPE, CTRL_TEXT, X_LOC, Y_LOC, ADDED_WHO, ADD
<Parameter AllowDbNull="true" AutogeneratedName="SQL2" ColumnName="SQL2" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(MAX)" DbType="String" Direction="Input" ParameterName="@SQL2" Precision="0" ProviderType="NVarChar" Scale="0" Size="2147483647" SourceColumn="SQL2" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="SQL_ENABLE" ColumnName="SQL_ENABLE" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(MAX)" DbType="String" Direction="Input" ParameterName="@SQL_ENABLE" Precision="0" ProviderType="NVarChar" Scale="0" Size="2147483647" SourceColumn="SQL_ENABLE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SAVE_CHANGE_ON_ENABLED" ColumnName="SAVE_CHANGE_ON_ENABLED" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@SAVE_CHANGE_ON_ENABLED" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="SAVE_CHANGE_ON_ENABLED" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMAT_STRING" ColumnName="FORMAT_STRING" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="varchar(200)" DbType="AnsiString" Direction="Input" ParameterName="@FORMAT_STRING" Precision="0" ProviderType="VarChar" Scale="0" Size="200" SourceColumn="FORMAT_STRING" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="FORMAT_STRING" ColumnName="FORMAT_STRING" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="varchar(200)" DbType="AnsiString" Direction="Input" ParameterName="@FORMAT_STRING" Precision="0" ProviderType="VarChar" Scale="0" Size="200" SourceColumn="FORMAT_STRING" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="TEXT_ALIGNMENT" ColumnName="TEXT_ALIGNMENT" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(20)" DbType="String" Direction="Input" ParameterName="@TEXT_ALIGNMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="20" SourceColumn="TEXT_ALIGNMENT" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
@@ -1074,7 +1074,7 @@ SELECT GUID, PROFIL_ID, NAME, CTRL_TYPE, CTRL_TEXT, X_LOC, Y_LOC, ADDED_WHO, ADD
<Parameter AllowDbNull="true" AutogeneratedName="SQL2" ColumnName="SQL2" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(MAX)" DbType="String" Direction="Input" ParameterName="@SQL2" Precision="0" ProviderType="NVarChar" Scale="0" Size="2147483647" SourceColumn="SQL2" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="SQL_ENABLE" ColumnName="SQL_ENABLE" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(MAX)" DbType="String" Direction="Input" ParameterName="@SQL_ENABLE" Precision="0" ProviderType="NVarChar" Scale="0" Size="2147483647" SourceColumn="SQL_ENABLE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SAVE_CHANGE_ON_ENABLED" ColumnName="SAVE_CHANGE_ON_ENABLED" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@SAVE_CHANGE_ON_ENABLED" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="SAVE_CHANGE_ON_ENABLED" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="FORMAT_STRING" ColumnName="FORMAT_STRING" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="varchar(200)" DbType="AnsiString" Direction="Input" ParameterName="@FORMAT_STRING" Precision="0" ProviderType="VarChar" Scale="0" Size="200" SourceColumn="FORMAT_STRING" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="FORMAT_STRING" ColumnName="FORMAT_STRING" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="varchar(200)" DbType="AnsiString" Direction="Input" ParameterName="@FORMAT_STRING" Precision="0" ProviderType="VarChar" Scale="0" Size="200" SourceColumn="FORMAT_STRING" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="TEXT_ALIGNMENT" ColumnName="TEXT_ALIGNMENT" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" DataTypeServer="nvarchar(20)" DbType="String" Direction="Input" ParameterName="@TEXT_ALIGNMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="20" SourceColumn="TEXT_ALIGNMENT" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBPM_PROFILE_CONTROLS" 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_PROFILE_CONTROLS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
@@ -1299,26 +1299,27 @@ WHERE (GUID = @Original_GUID)</CommandText>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO TBPM_CONTROL_TABLE
(CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, ADDED_WHO, TYPE_COLUMN, INHERIT_VALUE)
VALUES (@CONTROL_ID,@SPALTENNAME,@SPALTEN_HEADER,@SPALTENBREITE,@ADDED_WHO,@TYPE_COLUMN,@INHERIT_VALUE);
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 = SCOPE_IDENTITY())</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" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENNAME" ColumnName="SPALTENNAME" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTENNAME" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTENNAME" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTEN_HEADER" ColumnName="SPALTEN_HEADER" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTEN_HEADER" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTEN_HEADER" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENBREITE" ColumnName="SPALTENBREITE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@SPALTENBREITE" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="SPALTENBREITE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="ADDED_WHO" ColumnName="ADDED_WHO" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(30)" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="30" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="TYPE_COLUMN" ColumnName="TYPE_COLUMN" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@TYPE_COLUMN" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="TYPE_COLUMN" 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="CONTROL_ID" ColumnName="CONTROL_ID" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@CONTROL_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="CONTROL_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENNAME" ColumnName="SPALTENNAME" DataSourceName="" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTENNAME" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTENNAME" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTEN_HEADER" ColumnName="SPALTEN_HEADER" DataSourceName="" DataTypeServer="varchar(100)" DbType="AnsiString" Direction="Input" ParameterName="@SPALTEN_HEADER" Precision="0" ProviderType="VarChar" Scale="0" Size="100" SourceColumn="SPALTEN_HEADER" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="SPALTENBREITE" ColumnName="SPALTENBREITE" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@SPALTENBREITE" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="SPALTENBREITE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="ADDED_WHO" ColumnName="ADDED_WHO" DataSourceName="" DataTypeServer="varchar(30)" DbType="AnsiString" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="VarChar" Scale="0" Size="30" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="TYPE_COLUMN" ColumnName="TYPE_COLUMN" DataSourceName="" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@TYPE_COLUMN" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="TYPE_COLUMN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<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
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
FROM TBPM_CONTROL_TABLE
WHERE (CONTROL_ID = @CONTROL_ID)</CommandText>
<Parameters>
@@ -1333,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
WHERE (GUID = @Original_GUID);
LU_CAPTION = @LU_CAPTION, FORMULA_EXPRESSION = @FORMULA_EXPRESSION
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" />
@@ -1360,6 +1361,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
<Parameter AllowDbNull="false" AutogeneratedName="SAVE_CHANGE_ON_ENABLED" ColumnName="SAVE_CHANGE_ON_ENABLED" DataSourceName="" DataTypeServer="unknown" DbType="Object" Direction="Input" ParameterName="@SAVE_CHANGE_ON_ENABLED" Precision="0" Scale="0" Size="1024" SourceColumn="SAVE_CHANGE_ON_ENABLED" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="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="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>
@@ -1393,6 +1395,7 @@ SELECT GUID, CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE, VALIDATION,
<Mapping SourceColumn="TYPE_COLUMN" DataSetColumn="TYPE_COLUMN" />
<Mapping SourceColumn="LU_CAPTION" DataSetColumn="LU_CAPTION" />
<Mapping SourceColumn="INHERIT_VALUE" DataSetColumn="INHERIT_VALUE" />
<Mapping SourceColumn="FORMULA_EXPRESSION" DataSetColumn="FORMULA_EXPRESSION" />
</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">
@@ -1402,7 +1405,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
INHERIT_VALUE = @INHERIT_VALUE, FORMULA_EXPRESSION = @FORMULA_EXPRESSION
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" />
@@ -1422,6 +1425,7 @@ WHERE (GUID = @Original_GUID)</CommandText>
<Parameter AllowDbNull="false" AutogeneratedName="TYPE_COLUMN" ColumnName="TYPE_COLUMN" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@TYPE_COLUMN" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="TYPE_COLUMN" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="LU_CAPTION" ColumnName="LU_CAPTION" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="varchar(150)" DbType="AnsiString" Direction="Input" ParameterName="@LU_CAPTION" Precision="0" ProviderType="VarChar" Scale="0" Size="150" SourceColumn="LU_CAPTION" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="INHERIT_VALUE" ColumnName="INHERIT_VALUE" DataSourceName="DD_ECM.dbo.TBPM_CONTROL_TABLE" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@INHERIT_VALUE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="INHERIT_VALUE" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="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="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>
@@ -1442,7 +1446,8 @@ WHERE (CONTROL_ID = @CONTROL_ID)</CommandText>
<SelectCommand>
<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
REGEX_MESSAGE_DE, REGEX_MESSAGE_EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATION, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
FORMULA_EXPRESSION
FROM TBPM_CONTROL_TABLE</CommandText>
<Parameters />
</DbCommand>
@@ -1452,7 +1457,8 @@ FROM TBPM_CONTROL_TABLE</CommandText>
<SelectCommand>
<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
REGEX_MESSAGE_DE, REGEX_MESSAGE_EN, SEQUENCE, SPALTENBREITE, SPALTENNAME, SPALTEN_HEADER, SQL_COMMAND, VALIDATION, SUMMARY_FUNCTION, TYPE_COLUMN, LU_CAPTION, INHERIT_VALUE,
FORMULA_EXPRESSION
FROM TBPM_CONTROL_TABLE
WHERE (GUID = @GUID)</CommandText>
<Parameters>
@@ -2694,7 +2700,7 @@ SELECT GUID, NAME, TITLE, PRIORITY, DESCRIPTION, ACTIVE, WD_SEARCH, NO_OF_DOCUME
</xs:simpleType>
</xs:element>
<xs:element name="SAVE_CHANGE_ON_ENABLED" msprop:Generator_ColumnPropNameInTable="SAVE_CHANGE_ON_ENABLEDColumn" msprop:Generator_ColumnPropNameInRow="SAVE_CHANGE_ON_ENABLED" msprop:Generator_UserColumnName="SAVE_CHANGE_ON_ENABLED" msprop:Generator_ColumnVarNameInTable="columnSAVE_CHANGE_ON_ENABLED" type="xs:boolean" />
<xs:element name="FORMAT_STRING" msprop:Generator_ColumnPropNameInTable="FORMAT_STRINGColumn" msprop:Generator_ColumnPropNameInRow="FORMAT_STRING" msprop:Generator_UserColumnName="FORMAT_STRING" msprop:Generator_ColumnVarNameInTable="columnFORMAT_STRING" type="xs:string" />
<xs:element name="FORMAT_STRING" msprop:Generator_ColumnPropNameInTable="FORMAT_STRINGColumn" msprop:Generator_ColumnPropNameInRow="FORMAT_STRING" msprop:Generator_UserColumnName="FORMAT_STRING" msprop:Generator_ColumnVarNameInTable="columnFORMAT_STRING" type="xs:string" default="" minOccurs="0" />
<xs:element name="BACKCOLOR_IF" msprop:Generator_ColumnPropNameInTable="BACKCOLOR_IFColumn" msprop:Generator_ColumnPropNameInRow="BACKCOLOR_IF" msprop:Generator_UserColumnName="BACKCOLOR_IF" msprop:Generator_ColumnVarNameInTable="columnBACKCOLOR_IF" type="xs:string" minOccurs="0" />
<xs:element name="TEXT_ALIGNMENT" msprop:Generator_ColumnPropNameInTable="TEXT_ALIGNMENTColumn" msprop:Generator_ColumnPropNameInRow="TEXT_ALIGNMENT" msprop:Generator_UserColumnName="TEXT_ALIGNMENT" msprop:Generator_ColumnVarNameInTable="columnTEXT_ALIGNMENT" default="Near">
<xs:simpleType>
@@ -2806,6 +2812,13 @@ 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:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -3392,9 +3405,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_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" />
<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" />
</xs:appinfo>
</xs:annotation>
</xs:schema>

View File

@@ -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="83" ViewPortY="51" 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="129" 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" />
@@ -15,8 +15,8 @@
<Shape ID="DesignTable:TBPROFILE_USER" ZOrder="15" X="509" Y="-80" Height="267" Width="266" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBPM_PROFILE_FILES" ZOrder="3" X="1391" Y="-70" Height="229" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:TBWH_CHECK_PROFILE_CONTROLS" ZOrder="23" X="0" Y="-72" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
<Shape ID="DesignTable:TBPM_PROFILE_CONTROLS" ZOrder="12" X="947" Y="400" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPM_CONTROL_TABLE" ZOrder="1" X="1299" Y="326" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPM_PROFILE_CONTROLS" ZOrder="12" X="947" Y="404" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBPM_CONTROL_TABLE" ZOrder="1" X="1297" Y="391" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="24" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_GROUPS" ZOrder="17" X="19" Y="320" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBPROFILE_GROUP" ZOrder="13" X="1054" Y="47" Height="286" Width="277" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:FNPM_GET_FREE_USER_FOR_PROFILE" ZOrder="16" X="807" Y="155" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
@@ -33,11 +33,11 @@
<RoutePoints>
<Point>
<X>1247</X>
<Y>542</Y>
<Y>611</Y>
</Point>
<Point>
<X>1299</X>
<Y>542</Y>
<X>1297</X>
<Y>611</Y>
</Point>
</RoutePoints>
</Connector>
@@ -49,11 +49,11 @@
</Point>
<Point>
<X>141</X>
<Y>343</Y>
<Y>408</Y>
</Point>
<Point>
<X>1299</X>
<Y>343</Y>
<X>1297</X>
<Y>408</Y>
</Point>
</RoutePoints>
</Connector>
@@ -65,7 +65,7 @@
</Point>
<Point>
<X>965</X>
<Y>400</Y>
<Y>404</Y>
</Point>
</RoutePoints>
</Connector>

View 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')

View File

@@ -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.7.9.0")>
<Assembly: AssemblyVersion("2.8.4.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguage("")>

View File

@@ -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">

View File

@@ -98,8 +98,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

View File

@@ -37,6 +37,8 @@ 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.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()
Me.SPALTENNAMETextBox = New DevExpress.XtraEditors.TextEdit()
@@ -78,12 +80,15 @@ Partial Class frmColumn_Detail
Me.LayoutControlItem16 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem14 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem17 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem25 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem20 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem22 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem18 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem19 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem23 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem21 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem24 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem26 = New DevExpress.XtraLayout.LayoutControlItem()
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -127,12 +132,15 @@ Partial Class frmColumn_Detail
CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem14, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem17, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem25, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem20, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem22, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem18, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem19, System.ComponentModel.ISupportInitialize).BeginInit()
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()
Me.SuspendLayout()
'
'TBPM_CONTROL_TABLEBindingSource
@@ -229,6 +237,8 @@ Partial Class frmColumn_Detail
'
'LayoutControl1
'
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)
Me.LayoutControl1.Controls.Add(Me.SPALTENNAMETextBox)
@@ -256,6 +266,18 @@ Partial Class frmColumn_Detail
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.Root = Me.Root
'
'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"
'
'LU_CAPTIONTextBox
'
Me.LU_CAPTIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "LU_CAPTION", True))
@@ -456,9 +478,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.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem12, Me.LayoutControlItem11, Me.LayoutControlItem13, Me.LayoutControlGroup1, Me.LayoutControlItem18, Me.LayoutControlItem19, Me.LayoutControlItem23, Me.LayoutControlItem21, Me.LayoutControlItem24, Me.LayoutControlItem26})
Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(573, 668)
Me.Root.Size = New System.Drawing.Size(593, 816)
Me.Root.TextVisible = False
'
'LayoutControlItem1
@@ -467,7 +489,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(553, 40)
Me.LayoutControlItem1.Size = New System.Drawing.Size(573, 40)
resources.ApplyResources(Me.LayoutControlItem1, "LayoutControlItem1")
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(110, 13)
'
@@ -477,7 +499,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(553, 40)
Me.LayoutControlItem2.Size = New System.Drawing.Size(573, 40)
resources.ApplyResources(Me.LayoutControlItem2, "LayoutControlItem2")
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(110, 13)
'
@@ -487,7 +509,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(553, 40)
Me.LayoutControlItem3.Size = New System.Drawing.Size(573, 40)
resources.ApplyResources(Me.LayoutControlItem3, "LayoutControlItem3")
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(110, 13)
'
@@ -497,7 +519,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(276, 40)
Me.LayoutControlItem4.Size = New System.Drawing.Size(286, 40)
resources.ApplyResources(Me.LayoutControlItem4, "LayoutControlItem4")
Me.LayoutControlItem4.TextSize = New System.Drawing.Size(110, 13)
'
@@ -507,16 +529,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(471, 46)
Me.LayoutControlItem5.Size = New System.Drawing.Size(488, 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(471, 200)
Me.LayoutControlItem6.Location = New System.Drawing.Point(488, 200)
Me.LayoutControlItem6.Name = "LayoutControlItem6"
Me.LayoutControlItem6.Size = New System.Drawing.Size(82, 46)
Me.LayoutControlItem6.Size = New System.Drawing.Size(85, 46)
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem6.TextVisible = False
'
@@ -526,7 +548,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(471, 46)
Me.LayoutControlItem8.Size = New System.Drawing.Size(488, 46)
resources.ApplyResources(Me.LayoutControlItem8, "LayoutControlItem8")
Me.LayoutControlItem8.TextSize = New System.Drawing.Size(110, 13)
'
@@ -536,65 +558,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(553, 40)
Me.LayoutControlItem7.Size = New System.Drawing.Size(573, 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(471, 326)
Me.LayoutControlItem9.Location = New System.Drawing.Point(488, 326)
Me.LayoutControlItem9.Name = "LayoutControlItem9"
Me.LayoutControlItem9.Size = New System.Drawing.Size(82, 46)
Me.LayoutControlItem9.Size = New System.Drawing.Size(85, 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, 412)
Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 458)
Me.LayoutControlItem10.Name = "LayoutControlItem10"
Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem10.Size = New System.Drawing.Size(276, 40)
Me.LayoutControlItem10.Size = New System.Drawing.Size(286, 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, 452)
Me.LayoutControlItem12.Location = New System.Drawing.Point(0, 498)
Me.LayoutControlItem12.Name = "LayoutControlItem12"
Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem12.Size = New System.Drawing.Size(276, 40)
Me.LayoutControlItem12.Size = New System.Drawing.Size(286, 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(276, 412)
Me.LayoutControlItem11.Location = New System.Drawing.Point(286, 458)
Me.LayoutControlItem11.Name = "LayoutControlItem11"
Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem11.Size = New System.Drawing.Size(277, 40)
Me.LayoutControlItem11.Size = New System.Drawing.Size(287, 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(276, 452)
Me.LayoutControlItem13.Location = New System.Drawing.Point(286, 498)
Me.LayoutControlItem13.Name = "LayoutControlItem13"
Me.LayoutControlItem13.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem13.Size = New System.Drawing.Size(277, 40)
Me.LayoutControlItem13.Size = New System.Drawing.Size(287, 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.LayoutControlItem20, Me.LayoutControlItem22})
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 492)
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem16, Me.LayoutControlItem14, Me.LayoutControlItem17, Me.LayoutControlItem25, Me.LayoutControlItem20, Me.LayoutControlItem22})
Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 538)
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(553, 156)
Me.LayoutControlGroup1.Size = New System.Drawing.Size(573, 258)
resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1")
'
'LayoutControlItem16
@@ -602,7 +624,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(264, 24)
Me.LayoutControlItem16.Size = New System.Drawing.Size(274, 24)
Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem16.TextVisible = False
'
@@ -611,7 +633,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(529, 22)
Me.LayoutControlItem14.Size = New System.Drawing.Size(549, 22)
Me.LayoutControlItem14.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem14.TextVisible = False
'
@@ -620,16 +642,25 @@ 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(529, 22)
Me.LayoutControlItem17.Size = New System.Drawing.Size(549, 22)
Me.LayoutControlItem17.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem17.TextVisible = False
'
'LayoutControlItem25
'
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.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(264, 0)
Me.LayoutControlItem20.Location = New System.Drawing.Point(274, 0)
Me.LayoutControlItem20.Name = "LayoutControlItem20"
Me.LayoutControlItem20.Size = New System.Drawing.Size(265, 24)
Me.LayoutControlItem20.Size = New System.Drawing.Size(275, 24)
resources.ApplyResources(Me.LayoutControlItem20, "LayoutControlItem20")
Me.LayoutControlItem20.TextSize = New System.Drawing.Size(110, 13)
'
@@ -637,9 +668,9 @@ Partial Class frmColumn_Detail
'
Me.LayoutControlItem22.Control = Me.CheckEditInheritValue
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, 68)
Me.LayoutControlItem22.Location = New System.Drawing.Point(0, 90)
Me.LayoutControlItem22.Name = "LayoutControlItem22"
Me.LayoutControlItem22.Size = New System.Drawing.Size(529, 43)
Me.LayoutControlItem22.Size = New System.Drawing.Size(549, 123)
Me.LayoutControlItem22.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem22.TextVisible = False
'
@@ -649,17 +680,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(553, 40)
Me.LayoutControlItem18.Size = New System.Drawing.Size(573, 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(276, 120)
Me.LayoutControlItem19.Location = New System.Drawing.Point(286, 120)
Me.LayoutControlItem19.Name = "LayoutControlItem19"
Me.LayoutControlItem19.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10)
Me.LayoutControlItem19.Size = New System.Drawing.Size(277, 40)
Me.LayoutControlItem19.Size = New System.Drawing.Size(287, 40)
resources.ApplyResources(Me.LayoutControlItem19, "LayoutControlItem19")
Me.LayoutControlItem19.TextSize = New System.Drawing.Size(110, 13)
'
@@ -670,7 +701,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(553, 40)
Me.LayoutControlItem23.Size = New System.Drawing.Size(573, 40)
Me.LayoutControlItem23.TextSize = New System.Drawing.Size(110, 13)
'
'LayoutControlItem21
@@ -679,10 +710,29 @@ 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(553, 40)
Me.LayoutControlItem21.Size = New System.Drawing.Size(573, 40)
resources.ApplyResources(Me.LayoutControlItem21, "LayoutControlItem21")
Me.LayoutControlItem21.TextSize = New System.Drawing.Size(110, 13)
'
'LayoutControlItem24
'
Me.LayoutControlItem24.Control = Me.FORMULA_EXPRESSIONTextBox
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(488, 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(488, 412)
Me.LayoutControlItem26.Name = "LayoutControlItem26"
Me.LayoutControlItem26.Size = New System.Drawing.Size(85, 46)
Me.LayoutControlItem26.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem26.TextVisible = False
'
'frmColumn_Detail
'
Me.Appearance.Options.UseFont = True
@@ -740,12 +790,15 @@ Partial Class frmColumn_Detail
CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem14, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem17, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem25, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem20, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem22, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem18, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem19, System.ComponentModel.ISupportInitialize).EndInit()
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()
Me.ResumeLayout(False)
Me.PerformLayout
@@ -810,4 +863,9 @@ End Sub
Friend WithEvents TYPE_COLUMNComboBox2 As DevExpress.XtraEditors.LookUpEdit
Friend WithEvents CheckEditInheritValue As DevExpress.XtraEditors.CheckEdit
Friend WithEvents LayoutControlItem22 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents FORMULA_EXPRESSIONTextBox As TextBox
Friend WithEvents LayoutControlItem24 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem25 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents SimpleButton3 As DevExpress.XtraEditors.SimpleButton
Friend WithEvents LayoutControlItem26 As DevExpress.XtraLayout.LayoutControlItem
End Class

View File

@@ -149,13 +149,13 @@
<value>RibbonPage1</value>
</data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>573, 67</value>
<value>593, 67</value>
</data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 735</value>
<value>0, 883</value>
</data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>573, 22</value>
<value>593, 22</value>
</data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value>
@@ -184,13 +184,62 @@
<data name="RibbonPage2.Text" xml:space="preserve">
<value>RibbonPage2</value>
</data>
<data name="SimpleButton3.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 424</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<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>81, 42</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SimpleButton3.TabIndex" type="System.Int32, mscorlib">
<value>31</value>
</data>
<data name="SimpleButton3.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="&gt;&gt;SimpleButton3.Name" xml:space="preserve">
<value>SimpleButton3</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;SimpleButton3.Parent" xml:space="preserve">
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SimpleButton3.ZOrder" xml:space="preserve">
<value>4</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>346, 20</value>
</data>
<data name="FORMULA_EXPRESSIONTextBox.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
</data>
<data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.Name" xml:space="preserve">
<value>FORMULA_EXPRESSIONTextBox</value>
</data>
<data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.Parent" xml:space="preserve">
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;FORMULA_EXPRESSIONTextBox.ZOrder" xml:space="preserve">
<value>5</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>411, 20</value>
<value>431, 20</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LU_CAPTIONTextBox.TabIndex" type="System.Int32, mscorlib">
<value>26</value>
</data>
@@ -204,13 +253,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;LU_CAPTIONTextBox.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</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>411, 20</value>
<value>431, 20</value>
</data>
<data name="GUIDTextBox.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@@ -225,13 +274,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;GUIDTextBox.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</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>411, 20</value>
<value>431, 20</value>
</data>
<data name="SPALTENNAMETextBox.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@@ -246,13 +295,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SPALTENNAMETextBox.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</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>411, 20</value>
<value>431, 20</value>
</data>
<data name="SPALTEN_HEADERTextBox.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@@ -267,7 +316,7 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SPALTEN_HEADERTextBox.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="SPALTENBREITETextBox.EditValue" type="System.Decimal, mscorlib">
<value>0</value>
@@ -280,7 +329,7 @@
<value>Combo</value>
</data>
<data name="SPALTENBREITETextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 20</value>
<value>144, 20</value>
</data>
<data name="SPALTENBREITETextBox.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@@ -295,13 +344,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SPALTENBREITETextBox.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</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>329, 20</value>
<value>346, 20</value>
</data>
<data name="REGEX_MATCHTextBox.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@@ -316,12 +365,11 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;REGEX_MATCHTextBox.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="SimpleButton1.Location" type="System.Drawing.Point, System.Drawing">
<value>483, 212</value>
<value>500, 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>
@@ -329,7 +377,7 @@
<value>10, 10, 10, 10</value>
</data>
<data name="SimpleButton1.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 42</value>
<value>81, 42</value>
</data>
<data name="SimpleButton1.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@@ -347,13 +395,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SimpleButton1.ZOrder" xml:space="preserve">
<value>10</value>
<value>12</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>411, 20</value>
<value>431, 20</value>
</data>
<data name="REGEX_MESSAGE_DETextBox.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@@ -368,13 +416,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;REGEX_MESSAGE_DETextBox.ZOrder" xml:space="preserve">
<value>11</value>
<value>13</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>329, 20</value>
<value>346, 20</value>
</data>
<data name="SQL_COMMANDTextBox.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
@@ -389,16 +437,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SQL_COMMANDTextBox.ZOrder" xml:space="preserve">
<value>12</value>
<value>14</value>
</data>
<data name="SimpleButton2.Location" type="System.Drawing.Point, System.Drawing">
<value>483, 338</value>
<value>500, 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>78, 42</value>
<value>81, 42</value>
</data>
<data name="SimpleButton2.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
@@ -416,13 +464,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SimpleButton2.ZOrder" xml:space="preserve">
<value>13</value>
<value>15</value>
</data>
<data name="TextEdit7.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 432</value>
<value>142, 478</value>
</data>
<data name="TextEdit7.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 20</value>
<value>144, 20</value>
</data>
<data name="TextEdit7.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
@@ -437,13 +485,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;TextEdit7.ZOrder" xml:space="preserve">
<value>14</value>
<value>16</value>
</data>
<data name="TextEdit8.Location" type="System.Drawing.Point, System.Drawing">
<value>418, 432</value>
<value>428, 478</value>
</data>
<data name="TextEdit8.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 20</value>
<value>145, 20</value>
</data>
<data name="TextEdit8.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
@@ -458,13 +506,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;TextEdit8.ZOrder" xml:space="preserve">
<value>15</value>
<value>17</value>
</data>
<data name="CHANGED_WHOTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 472</value>
<value>142, 518</value>
</data>
<data name="CHANGED_WHOTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 20</value>
<value>144, 20</value>
</data>
<data name="CHANGED_WHOTextBox.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
@@ -479,13 +527,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;CHANGED_WHOTextBox.ZOrder" xml:space="preserve">
<value>16</value>
<value>18</value>
</data>
<data name="TextEdit10.Location" type="System.Drawing.Point, System.Drawing">
<value>418, 472</value>
<value>428, 518</value>
</data>
<data name="TextEdit10.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 20</value>
<value>145, 20</value>
</data>
<data name="TextEdit10.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
@@ -500,16 +548,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;TextEdit10.ZOrder" xml:space="preserve">
<value>17</value>
<value>19</value>
</data>
<data name="READ_ONLYCheckBox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 561</value>
<value>24, 607</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>525, 18</value>
<value>545, 18</value>
</data>
<data name="READ_ONLYCheckBox.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
@@ -524,16 +572,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;READ_ONLYCheckBox.ZOrder" xml:space="preserve">
<value>18</value>
<value>20</value>
</data>
<data name="LOAD_IDX_VALUECheckBox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 583</value>
<value>24, 651</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>525, 18</value>
<value>545, 18</value>
</data>
<data name="LOAD_IDX_VALUECheckBox.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
@@ -548,16 +596,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;LOAD_IDX_VALUECheckBox.ZOrder" xml:space="preserve">
<value>19</value>
<value>21</value>
</data>
<data name="VALIDATIONCheckbox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 537</value>
<value>24, 583</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>260, 18</value>
<value>270, 18</value>
</data>
<data name="VALIDATIONCheckbox.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
@@ -572,16 +620,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;VALIDATIONCheckbox.ZOrder" xml:space="preserve">
<value>20</value>
<value>22</value>
</data>
<data name="ADVANCED_LOOKUPCheckbox.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 583</value>
<value>24, 629</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>525, 18</value>
<value>545, 18</value>
</data>
<data name="ADVANCED_LOOKUPCheckbox.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
@@ -596,13 +644,13 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;ADVANCED_LOOKUPCheckbox.ZOrder" xml:space="preserve">
<value>21</value>
<value>23</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>411, 20</value>
<value>431, 20</value>
</data>
<data name="DEFAULTVALUETextBox.TabIndex" type="System.Int32, mscorlib">
<value>21</value>
@@ -617,19 +665,19 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;DEFAULTVALUETextBox.ZOrder" xml:space="preserve">
<value>22</value>
<value>24</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>418, 140</value>
<value>428, 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>135, 20</value>
<value>145, 20</value>
</data>
<data name="SEQUENCETextBox.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
@@ -644,10 +692,10 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SEQUENCETextBox.ZOrder" xml:space="preserve">
<value>23</value>
<value>25</value>
</data>
<data name="SUMMARY_FUNCTIONCombobox.Location" type="System.Drawing.Point, System.Drawing">
<value>410, 537</value>
<value>420, 583</value>
</data>
<data name="SUMMARY_FUNCTIONCombobox.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v21.2">
<value>Combo</value>
@@ -656,7 +704,7 @@
<value />
</data>
<data name="SUMMARY_FUNCTIONCombobox.Size" type="System.Drawing.Size, System.Drawing">
<value>139, 20</value>
<value>149, 20</value>
</data>
<data name="SUMMARY_FUNCTIONCombobox.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
@@ -671,7 +719,7 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;SUMMARY_FUNCTIONCombobox.ZOrder" xml:space="preserve">
<value>24</value>
<value>26</value>
</data>
<data name="TYPE_COLUMNComboBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 180</value>
@@ -683,7 +731,7 @@
<value />
</data>
<data name="TYPE_COLUMNComboBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>411, 20</value>
<value>431, 20</value>
</data>
<data name="TYPE_COLUMNComboBox2.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
@@ -698,16 +746,16 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;TYPE_COLUMNComboBox2.ZOrder" xml:space="preserve">
<value>25</value>
<value>27</value>
</data>
<data name="CheckEditInheritValue.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 605</value>
<value>24, 673</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>525, 18</value>
<value>545, 18</value>
</data>
<data name="CheckEditInheritValue.TabIndex" type="System.Int32, mscorlib">
<value>28</value>
@@ -722,7 +770,7 @@
<value>LayoutControl1</value>
</data>
<data name="&gt;&gt;CheckEditInheritValue.ZOrder" xml:space="preserve">
<value>26</value>
<value>28</value>
</data>
<data name="LayoutControl1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@@ -784,8 +832,11 @@
<data name="LayoutControlItem21.Text" xml:space="preserve">
<value>Formatierung:</value>
</data>
<data name="LayoutControlItem24.Text" xml:space="preserve">
<value>Formel:</value>
</data>
<data name="LayoutControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>573, 668</value>
<value>593, 816</value>
</data>
<data name="LayoutControl1.TabIndex" type="System.Int32, mscorlib">
<value>33</value>
@@ -812,7 +863,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>573, 757</value>
<value>593, 905</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 8.25pt</value>
@@ -988,6 +1039,12 @@
<data name="&gt;&gt;LayoutControlItem17.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;LayoutControlItem25.Name" xml:space="preserve">
<value>LayoutControlItem25</value>
</data>
<data name="&gt;&gt;LayoutControlItem25.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;LayoutControlItem20.Name" xml:space="preserve">
<value>LayoutControlItem20</value>
</data>
@@ -1024,6 +1081,18 @@
<data name="&gt;&gt;LayoutControlItem21.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;LayoutControlItem24.Name" xml:space="preserve">
<value>LayoutControlItem24</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;LayoutControlItem26.Name" xml:space="preserve">
<value>LayoutControlItem26</value>
</data>
<data name="&gt;&gt;LayoutControlItem26.Type" xml:space="preserve">
<value>DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmColumn_Detail</value>
</data>

View File

@@ -99,6 +99,7 @@ Public Class frmColumn_Detail
TYPE_COLUMNComboBox2.EditValue,
LU_CAPTIONTextBox.Text,
CheckEditInheritValue.Checked,
FORMULA_EXPRESSIONTextBox.Text,
GUIDTextBox.Text
)
tslblAenderungen.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
@@ -205,4 +206,22 @@ 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
End Class

View File

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

View 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

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

View 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

View File

@@ -25,6 +25,8 @@ Partial Class frmFormDesigner
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFormDesigner))
Me.SplitContainerDesigner = New System.Windows.Forms.SplitContainer()
Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.DD_DMSLiteDataSet = New taskFLOW.DD_DMSLiteDataSet()
Me.pnldesigner = New DigitalData.Controls.SnapPanel.ClassSnapPanel()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.pgControlsNew = New DevExpress.XtraVerticalGrid.PropertyGridControl()
@@ -59,7 +61,6 @@ Partial Class frmFormDesigner
Me.RibPGCtrlheight = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.TBPM_PROFILE_CONTROLSBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.DD_DMSLiteDataSet = New taskFLOW.DD_DMSLiteDataSet()
Me.TBDD_CONNECTIONBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.GridControlContextMenu = New System.Windows.Forms.ContextMenuStrip(Me.components)
@@ -69,7 +70,6 @@ Partial Class frmFormDesigner
Me.TBDD_CONNECTIONTableAdapter = New taskFLOW.DD_DMSLiteDataSetTableAdapters.TBDD_CONNECTIONTableAdapter()
Me.TBWH_CHECK_PROFILE_CONTROLSBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.TBWH_CHECK_PROFILE_CONTROLSTableAdapter = New taskFLOW.DD_DMSLiteDataSetTableAdapters.TBWH_CHECK_PROFILE_CONTROLSTableAdapter()
Me.TBPM_CONTROL_TABLEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.TBPM_CONTROL_TABLETableAdapter = New taskFLOW.DD_DMSLiteDataSetTableAdapters.TBPM_CONTROL_TABLETableAdapter()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RPGControlFunction = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@@ -79,15 +79,15 @@ Partial Class frmFormDesigner
Me.SplitContainerDesigner.Panel1.SuspendLayout()
Me.SplitContainerDesigner.Panel2.SuspendLayout()
Me.SplitContainerDesigner.SuspendLayout()
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
CType(Me.pgControlsNew, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_PROFILE_CONTROLSBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBDD_CONNECTIONBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GridControlContextMenu.SuspendLayout()
CType(Me.TBWH_CHECK_PROFILE_CONTROLSBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'SplitContainerDesigner
@@ -97,12 +97,23 @@ Partial Class frmFormDesigner
'
'SplitContainerDesigner.Panel1
'
resources.ApplyResources(Me.SplitContainerDesigner.Panel1, "SplitContainerDesigner.Panel1")
Me.SplitContainerDesigner.Panel1.Controls.Add(Me.pnldesigner)
'
'SplitContainerDesigner.Panel2
'
Me.SplitContainerDesigner.Panel2.Controls.Add(Me.Panel1)
'
'TBPM_CONTROL_TABLEBindingSource
'
Me.TBPM_CONTROL_TABLEBindingSource.DataMember = "TBPM_CONTROL_TABLE"
Me.TBPM_CONTROL_TABLEBindingSource.DataSource = Me.DD_DMSLiteDataSet
'
'DD_DMSLiteDataSet
'
Me.DD_DMSLiteDataSet.DataSetName = "DD_DMSLiteDataSet"
Me.DD_DMSLiteDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
'
'pnldesigner
'
resources.ApplyResources(Me.pnldesigner, "pnldesigner")
@@ -359,11 +370,6 @@ Partial Class frmFormDesigner
Me.TBPM_PROFILE_CONTROLSBindingSource.DataMember = "TBPM_PROFILE_CONTROLS"
Me.TBPM_PROFILE_CONTROLSBindingSource.DataSource = Me.DD_DMSLiteDataSet
'
'DD_DMSLiteDataSet
'
Me.DD_DMSLiteDataSet.DataSetName = "DD_DMSLiteDataSet"
Me.DD_DMSLiteDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
'
'TBDD_CONNECTIONBindingSource
'
Me.TBDD_CONNECTIONBindingSource.DataMember = "TBDD_CONNECTION"
@@ -414,11 +420,6 @@ Partial Class frmFormDesigner
'
Me.TBWH_CHECK_PROFILE_CONTROLSTableAdapter.ClearBeforeFill = True
'
'TBPM_CONTROL_TABLEBindingSource
'
Me.TBPM_CONTROL_TABLEBindingSource.DataMember = "TBPM_CONTROL_TABLE"
Me.TBPM_CONTROL_TABLEBindingSource.DataSource = Me.DD_DMSLiteDataSet
'
'TBPM_CONTROL_TABLETableAdapter
'
Me.TBPM_CONTROL_TABLETableAdapter.ClearBeforeFill = True
@@ -463,15 +464,15 @@ Partial Class frmFormDesigner
Me.SplitContainerDesigner.Panel2.ResumeLayout(False)
CType(Me.SplitContainerDesigner, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerDesigner.ResumeLayout(False)
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel1.ResumeLayout(False)
CType(Me.pgControlsNew, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_PROFILE_CONTROLSBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBDD_CONNECTIONBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.GridControlContextMenu.ResumeLayout(False)
CType(Me.TBWH_CHECK_PROFILE_CONTROLSBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()

View File

@@ -126,6 +126,9 @@
<value>0, 132</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SplitContainerDesigner.Panel1.AutoScroll" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="pnldesigner.AutoScroll" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@@ -562,12 +565,15 @@
<data name="&gt;&gt;SplitContainerDesigner.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="TBPM_PROFILE_CONTROLSBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>368, 17</value>
<metadata name="TBPM_CONTROL_TABLEBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
</metadata>
<metadata name="DD_DMSLiteDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>206, 17</value>
</metadata>
<metadata name="TBPM_PROFILE_CONTROLSBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>368, 17</value>
</metadata>
<metadata name="TBDD_CONNECTIONBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
@@ -607,9 +613,6 @@
<metadata name="TBWH_CHECK_PROFILE_CONTROLSTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>823, 56</value>
</metadata>
<metadata name="TBPM_CONTROL_TABLEBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 95</value>
</metadata>
<metadata name="TBPM_CONTROL_TABLETableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>278, 95</value>
</metadata>
@@ -1068,6 +1071,18 @@
<data name="$this.Text" xml:space="preserve">
<value>Formular Designer</value>
</data>
<data name="&gt;&gt;TBPM_CONTROL_TABLEBindingSource.Name" xml:space="preserve">
<value>TBPM_CONTROL_TABLEBindingSource</value>
</data>
<data name="&gt;&gt;TBPM_CONTROL_TABLEBindingSource.Type" xml:space="preserve">
<value>System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Name" xml:space="preserve">
<value>DD_DMSLiteDataSet</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Type" xml:space="preserve">
<value>taskFLOW.DD_DMSLiteDataSet, DD_DMSLiteDataSet.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;bbtnItemFinishSQL.Name" xml:space="preserve">
<value>bbtnItemFinishSQL</value>
</data>
@@ -1242,12 +1257,6 @@
<data name="&gt;&gt;TBPM_PROFILE_CONTROLSBindingSource.Type" xml:space="preserve">
<value>System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Name" xml:space="preserve">
<value>DD_DMSLiteDataSet</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Type" xml:space="preserve">
<value>taskFLOW.DD_DMSLiteDataSet, DD_DMSLiteDataSet.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;TBDD_CONNECTIONBindingSource.Name" xml:space="preserve">
<value>TBDD_CONNECTIONBindingSource</value>
</data>
@@ -1296,12 +1305,6 @@
<data name="&gt;&gt;TBWH_CHECK_PROFILE_CONTROLSTableAdapter.Type" xml:space="preserve">
<value>taskFLOW.DD_DMSLiteDataSetTableAdapters.TBWH_CHECK_PROFILE_CONTROLSTableAdapter, DD_DMSLiteDataSet.Designer.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;TBPM_CONTROL_TABLEBindingSource.Name" xml:space="preserve">
<value>TBPM_CONTROL_TABLEBindingSource</value>
</data>
<data name="&gt;&gt;TBPM_CONTROL_TABLEBindingSource.Type" xml:space="preserve">
<value>System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;TBPM_CONTROL_TABLETableAdapter.Name" xml:space="preserve">
<value>TBPM_CONTROL_TABLETableAdapter</value>
</data>

View File

@@ -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)

View File

@@ -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)

View File

@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
CAAAAk1TRnQBSQFMAgEBAgEAAbgBCwG4AQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAfABCwHwAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -2105,7 +2105,7 @@
<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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -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">