SQL-Abfragen auf aktive Einträge beschränkt

In `frmFormDesigner.vb` wurde die Logik zur Aktualisierung
von "CONTROL_ACTIVE" angepasst, indem der Wert vor der
Übergabe an `UpdateSingleValue` zwischengespeichert wird.

In `frmMain.vb` und `frmValidator.vb` wurden SQL-Abfragen
für die Tabellen `TBPM_PROFILE_CONTROLS` und
`TBPM_CONTROL_TABLE` geändert, um sicherzustellen, dass
nur aktive Einträge (`CONTROL_ACTIVE = 1`) berücksichtigt
werden. Dies betrifft sowohl Standardabfragen als auch
Abfragen mit Filtern.

Die Änderungen verbessern die Datenkonsistenz und verhindern
die Verarbeitung inaktiver Einträge.
This commit is contained in:
Developer01
2026-08-10 10:24:04 +02:00
parent cee6a11c99
commit 107a47a97e
3 changed files with 6 additions and 6 deletions

View File

@@ -906,7 +906,8 @@ Public Class frmFormDesigner
UpdateSingleValue("REGEX_MESSAGE_DE", newValue) UpdateSingleValue("REGEX_MESSAGE_DE", newValue)
Case "Active" Case "Active"
UpdateSingleValue("CONTROL_ACTIVE", IIf(newValue = True, 1, 0)) Dim oActive As Boolean = IIf(newValue = True, 1, 0)
UpdateSingleValue("CONTROL_ACTIVE", oActive)
Case "DISPLAY_SEP_FORM" Case "DISPLAY_SEP_FORM"
UpdateSingleValue("DISPLAY_IN_SEPERATE_FORM", IIf(newValue = True, 1, 0)) UpdateSingleValue("DISPLAY_IN_SEPERATE_FORM", IIf(newValue = True, 1, 0))

View File

@@ -3204,7 +3204,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
}) })
EnsureProfileSearchType(BASEDATA_DT_PROFILES_SEARCHES_DATA, "SQL", NameOf(BASEDATA_DT_PROFILES_SEARCHES_DATA)) EnsureProfileSearchType(BASEDATA_DT_PROFILES_SEARCHES_DATA, "SQL", NameOf(BASEDATA_DT_PROFILES_SEARCHES_DATA))
oSQL = String.Format("SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{0}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, '{0}' as LANGUAGE, * FROM TBPM_PROFILE_CONTROLS WITH (NOLOCK)", {USER_LANGUAGE}) oSQL = String.Format("SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{0}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, '{0}' as LANGUAGE, * FROM TBPM_PROFILE_CONTROLS WITH (NOLOCK) WHERE CONTROL_ACTIVE = 1", {USER_LANGUAGE})
BASEDATA_TBPM_PROFILE_CONTROLS = DatabaseFallback.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { BASEDATA_TBPM_PROFILE_CONTROLS = DatabaseFallback.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
.FilterExpression = String.Format("LANGUAGE = '{0}'", {USER_LANGUAGE}) .FilterExpression = String.Format("LANGUAGE = '{0}'", {USER_LANGUAGE})
}) })

View File

@@ -1380,7 +1380,6 @@ Public Class frmValidator
Next Next
End If End If
' ========== ENDE ========== ' ========== ENDE ==========
oSQL = $"SELECT IIF(LANG.CAPTION IS NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* from TBPM_CONTROL_TABLE T WITH (NOLOCK) INNER JOIN TBPM_PROFILE_CONTROLS T1 WITH (NOLOCK) ON T.CONTROL_ID = T1.GUID oSQL = $"SELECT IIF(LANG.CAPTION IS NULL,T.SPALTEN_HEADER,LANG.CAPTION) SPALTEN_HEADER_LANG, T.* from TBPM_CONTROL_TABLE T WITH (NOLOCK) INNER JOIN TBPM_PROFILE_CONTROLS T1 WITH (NOLOCK) 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 T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE" 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 T1.PROFIL_ID = {CURRENT_ProfilGUID} ORDER BY T.SEQUENCE"
DT_COLUMNS_GRID = DatabaseFallback.GetDatatable("TBPM_CONTROL_TABLE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With { DT_COLUMNS_GRID = DatabaseFallback.GetDatatable("TBPM_CONTROL_TABLE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
@@ -3780,9 +3779,9 @@ Public Class frmValidator
' Fallback zu SQL ' Fallback zu SQL
Dim query As String Dim query As String
If String.IsNullOrWhiteSpace(filter) Then If String.IsNullOrWhiteSpace(filter) Then
query = "SELECT * FROM TBPM_PROFILE_CONTROLS" query = "SELECT * FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1"
Else Else
query = $"SELECT * FROM TBPM_PROFILE_CONTROLS WHERE {filter}" query = $"SELECT * FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND {filter}"
End If End If
If Not String.IsNullOrWhiteSpace(SortBy) Then If Not String.IsNullOrWhiteSpace(SortBy) Then