Optimierungen
This commit is contained in:
@@ -332,7 +332,7 @@ Public Class ClassControlCreator
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If Not designMode Then
|
If Not designMode Then
|
||||||
'oControl.ReadOnly = oReadOnly
|
oControl.ReadOnly = oReadOnly
|
||||||
oControl.TabStop = Not oReadOnly
|
oControl.TabStop = Not oReadOnly
|
||||||
oControl.BackColor = IIf(oReadOnly, Color.LightGray, Color.White)
|
oControl.BackColor = IIf(oReadOnly, Color.LightGray, Color.White)
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Module ModuleRuntimeVariables
|
|||||||
|
|
||||||
Public Property BASEDATA_TBDD_COLUMNS_FORMAT As DataTable
|
Public Property BASEDATA_TBDD_COLUMNS_FORMAT As DataTable
|
||||||
|
|
||||||
|
Public Property BASEDATA_TBPM_PROFILE_CONTROLS As DataTable
|
||||||
|
|
||||||
Public Property CURRENT_ProfilGUID As Integer
|
Public Property CURRENT_ProfilGUID As Integer
|
||||||
Public Property CURRENT_ProfilName As String
|
Public Property CURRENT_ProfilName As String
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.7.7.0")>
|
<Assembly: AssemblyVersion("2.7.8.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("")>
|
<Assembly: NeutralResourcesLanguage("")>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
|
||||||
CAAAAk1TRnQBSQFMAgEBAgEAAYgBCwGIAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
CAAAAk1TRnQBSQFMAgEBAgEAAZABCwGQAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
|||||||
@@ -1289,6 +1289,8 @@ Public Class frmMain
|
|||||||
Private Async Function Decide_Load(pIsFormLoad As Boolean, Optional ForceReload As Boolean = False) As Tasks.Task
|
Private Async Function Decide_Load(pIsFormLoad As Boolean, Optional ForceReload As Boolean = False) As Tasks.Task
|
||||||
Dim refreshWasEnabled As Boolean = False
|
Dim refreshWasEnabled As Boolean = False
|
||||||
Dim showLoadingPanel As Boolean = False
|
Dim showLoadingPanel As Boolean = False
|
||||||
|
Dim useWaitCursorApplied As Boolean = False
|
||||||
|
Dim previousMessage As String = bsiMessage.Caption
|
||||||
|
|
||||||
Try
|
Try
|
||||||
LOGGER.Debug($"Decide_Load: pIsFormLoad [{pIsFormLoad}] - ForceReload [{ForceReload}] - GRID_LOAD_TYPE [{GRID_LOAD_TYPE}] ")
|
LOGGER.Debug($"Decide_Load: pIsFormLoad [{pIsFormLoad}] - ForceReload [{ForceReload}] - GRID_LOAD_TYPE [{GRID_LOAD_TYPE}] ")
|
||||||
@@ -1308,11 +1310,15 @@ Public Class frmMain
|
|||||||
TimerRefresh.Enabled = False
|
TimerRefresh.Enabled = False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If GridControlWorkflows.Visible Then
|
If Me.UseWaitCursor = False Then
|
||||||
GridViewWorkflows.ShowLoadingPanel()
|
Me.UseWaitCursor = True
|
||||||
showLoadingPanel = True
|
useWaitCursorApplied = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
bsiMessage.Caption = "Daten werden geladen..."
|
||||||
|
GridViewWorkflows.ShowLoadingPanel()
|
||||||
|
showLoadingPanel = True
|
||||||
|
|
||||||
TimerRefresh.Stop()
|
TimerRefresh.Stop()
|
||||||
FRONTEND_ACTION = "DECIDE_LOAD"
|
FRONTEND_ACTION = "DECIDE_LOAD"
|
||||||
|
|
||||||
@@ -1350,6 +1356,10 @@ Public Class frmMain
|
|||||||
If showLoadingPanel Then
|
If showLoadingPanel Then
|
||||||
GridViewWorkflows.HideLoadingPanel()
|
GridViewWorkflows.HideLoadingPanel()
|
||||||
End If
|
End If
|
||||||
|
If useWaitCursorApplied Then
|
||||||
|
Me.UseWaitCursor = False
|
||||||
|
End If
|
||||||
|
bsiMessage.Caption = previousMessage
|
||||||
If refreshWasEnabled Then
|
If refreshWasEnabled Then
|
||||||
TimerRefresh.Enabled = True
|
TimerRefresh.Enabled = True
|
||||||
End If
|
End If
|
||||||
@@ -1880,13 +1890,26 @@ Public Class frmMain
|
|||||||
Dim viewUpdateStarted As Boolean = False
|
Dim viewUpdateStarted As Boolean = False
|
||||||
Dim layoutRestored As Boolean = False
|
Dim layoutRestored As Boolean = False
|
||||||
Dim resetLayoutTriggered As Boolean = False
|
Dim resetLayoutTriggered As Boolean = False
|
||||||
|
Dim showLoadingPanel As Boolean = False
|
||||||
|
Dim useWaitCursorApplied As Boolean = False
|
||||||
|
Dim previousMessage As String = bsiMessage.Caption
|
||||||
|
Dim loadingMessageApplied As Boolean = False
|
||||||
|
|
||||||
GridControlWorkflows_Visible()
|
GridControlWorkflows_Visible()
|
||||||
GRID_LOAD_TYPE = "OVERVIEW"
|
GRID_LOAD_TYPE = "OVERVIEW"
|
||||||
CURRENT_CLICKED_PROFILE_ID = 0
|
CURRENT_CLICKED_PROFILE_ID = 0
|
||||||
|
|
||||||
Try
|
Try
|
||||||
bsiMessage.Caption = ""
|
If Me.UseWaitCursor = False Then
|
||||||
|
Me.UseWaitCursor = True
|
||||||
|
useWaitCursorApplied = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
bsiMessage.Caption = "Daten werden geladen..."
|
||||||
|
loadingMessageApplied = True
|
||||||
|
|
||||||
|
GridViewWorkflows.ShowLoadingPanel()
|
||||||
|
showLoadingPanel = True
|
||||||
|
|
||||||
If BASEDATA_DT_VW_PROFILE_USER.Rows.Count = 0 Then
|
If BASEDATA_DT_VW_PROFILE_USER.Rows.Count = 0 Then
|
||||||
LOGGER.Info("Attention: No profiles for user: '" & USER_USERNAME & "' configured!", False)
|
LOGGER.Info("Attention: No profiles for user: '" & USER_USERNAME & "' configured!", False)
|
||||||
@@ -2098,6 +2121,15 @@ Public Class frmMain
|
|||||||
If gridUpdateStarted Then
|
If gridUpdateStarted Then
|
||||||
GridControlWorkflows.EndUpdate()
|
GridControlWorkflows.EndUpdate()
|
||||||
End If
|
End If
|
||||||
|
If showLoadingPanel Then
|
||||||
|
GridViewWorkflows.HideLoadingPanel()
|
||||||
|
End If
|
||||||
|
If useWaitCursorApplied Then
|
||||||
|
Me.UseWaitCursor = False
|
||||||
|
End If
|
||||||
|
If loadingMessageApplied AndAlso bsiMessage.Caption = "Daten werden geladen..." Then
|
||||||
|
bsiMessage.Caption = previousMessage
|
||||||
|
End If
|
||||||
oStopWatch.Done()
|
oStopWatch.Done()
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
@@ -2397,6 +2429,10 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
|||||||
.FilterExpression = "TYPE = 'SQL'",
|
.FilterExpression = "TYPE = 'SQL'",
|
||||||
.SortByColumn = "PROFILE_ID,TAB_INDEX"
|
.SortByColumn = "PROFILE_ID,TAB_INDEX"
|
||||||
})
|
})
|
||||||
|
oSQL = String.Format("SELECT [dbo].[FNPM_LANGUAGE_CONTROL_TEXT] (NAME,'{0}',CTRL_TYPE,CTRL_TEXT) CTRL_CAPTION_LANG, * FROM TBPM_PROFILE_CONTROLS", {USER_LANGUAGE})
|
||||||
|
BASEDATA_TBPM_PROFILE_CONTROLS = DatabaseFallback.GetDatatable("TBPM_PROFILE_CONTROLS_LANGUAGE", New GetDatatableOptions(oSQL, DatabaseType.ECM) With {
|
||||||
|
.FilterExpression = String.Format("LANGUAGE = '{0}'", {USER_LANGUAGE})
|
||||||
|
})
|
||||||
If pMode = "Load" Then
|
If pMode = "Load" Then
|
||||||
BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Clone()
|
BASEDATA_DT_PROFILE_SEARCHES_SQL = BASEDATA_DT_PROFILES_SEARCHES_SQL.Clone()
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -1006,6 +1006,7 @@ Public Class frmValidator
|
|||||||
AddHandler txt.GotFocus, AddressOf OnTextBoxFocus
|
AddHandler txt.GotFocus, AddressOf OnTextBoxFocus
|
||||||
AddHandler txt.LostFocus, AddressOf OnTextBoxLostFocus
|
AddHandler txt.LostFocus, AddressOf OnTextBoxLostFocus
|
||||||
AddHandler txt.KeyUp, AddressOf OnTextBoxKeyUp
|
AddHandler txt.KeyUp, AddressOf OnTextBoxKeyUp
|
||||||
|
AddHandler txt.KeyDown, AddressOf OnTextBoxKeyDown
|
||||||
AddHandler txt.EditValueChanged, AddressOf OnTextBoxEditValueChanged
|
AddHandler txt.EditValueChanged, AddressOf OnTextBoxEditValueChanged
|
||||||
|
|
||||||
oMyControl = txt
|
oMyControl = txt
|
||||||
@@ -1382,7 +1383,17 @@ Public Class frmValidator
|
|||||||
oMeta.IsDirty = True
|
oMeta.IsDirty = True
|
||||||
MyValidationLogger.Debug($"TextBox [{oMeta.Name}] marked as dirty")
|
MyValidationLogger.Debug($"TextBox [{oMeta.Name}] marked as dirty")
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub OnTextBoxKeyDown(sender As Object, e As KeyEventArgs)
|
||||||
|
Dim oTextBox As BaseEdit = TryCast(sender, BaseEdit)
|
||||||
|
If oTextBox Is Nothing Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
If oTextBox.ReadOnly AndAlso e.Control AndAlso e.KeyCode = Keys.X Then
|
||||||
|
e.Handled = True
|
||||||
|
e.SuppressKeyPress = True
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
Public Sub OnTextBoxKeyUp(sender As Object, e As KeyEventArgs)
|
Public Sub OnTextBoxKeyUp(sender As Object, e As KeyEventArgs)
|
||||||
If _ControlHandleStarted = True Then
|
If _ControlHandleStarted = True Then
|
||||||
_ControlHandleStarted = False
|
_ControlHandleStarted = False
|
||||||
@@ -1394,11 +1405,9 @@ Public Class frmValidator
|
|||||||
|
|
||||||
If (e.KeyCode = Keys.Return) Or (e.KeyCode = Keys.Tab) Or (e.KeyCode = Keys.Enter) Then
|
If (e.KeyCode = Keys.Return) Or (e.KeyCode = Keys.Tab) Or (e.KeyCode = Keys.Enter) Then
|
||||||
Try
|
Try
|
||||||
Dim CONTROL_ID = DirectCast(oTextBox.Tag, ClassControlCreator.ControlMetadata).Guid
|
|
||||||
Dim oSql = String.Format("SELECT NAME, CONNECTION_ID, SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, oTextBox.Name)
|
|
||||||
Dim oFilter = $"PROFIL_ID = {CURRENT_ProfilGUID} AND SQL_UEBERPRUEFUNG LIKE '%{oTextBox.Name}%'"
|
Dim oFilter = $"PROFIL_ID = {CURRENT_ProfilGUID} AND SQL_UEBERPRUEFUNG LIKE '%{oTextBox.Name}%'"
|
||||||
|
|
||||||
Dim DTCONTROLS_UEBP As DataTable = GetControlMetaBySql("TBPM_PROFILE_CONTROLS_SQL_UEP", oSql, oFilter)
|
Dim DTCONTROLS_UEBP As DataTable = GetControlMetaBySql(oFilter)
|
||||||
|
|
||||||
If Not IsNothing(DTCONTROLS_UEBP) AndAlso DTCONTROLS_UEBP.Rows.Count > 0 Then
|
If Not IsNothing(DTCONTROLS_UEBP) AndAlso DTCONTROLS_UEBP.Rows.Count > 0 Then
|
||||||
For Each oRow As DataRow In DTCONTROLS_UEBP.Rows
|
For Each oRow As DataRow In DTCONTROLS_UEBP.Rows
|
||||||
@@ -1597,14 +1606,12 @@ Public Class frmValidator
|
|||||||
Public Sub onDGVRowValidating(ByVal sender As Object, ByVal e As DataGridViewCellCancelEventArgs)
|
Public Sub onDGVRowValidating(ByVal sender As Object, ByVal e As DataGridViewCellCancelEventArgs)
|
||||||
Dim dgv As DataGridView = sender
|
Dim dgv As DataGridView = sender
|
||||||
Try
|
Try
|
||||||
Dim CONTROL_ID = DirectCast(dgv.Tag, ClassControlCreator.ControlMetadata).Guid
|
Dim oFilter = String.Format("PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name)
|
||||||
Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name)
|
|
||||||
Dim oFilter = String.Format("CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, dgv.Name)
|
|
||||||
|
|
||||||
Dim DT As DataTable = GetControlMetaBySql("TBPM_PROFILE_CONTROLS", sql, oFilter)
|
Dim DTFilteredRows As DataTable = GetControlMetaBySql(oFilter)
|
||||||
|
|
||||||
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
|
If Not IsNothing(DTFilteredRows) And DTFilteredRows.Rows.Count > 0 Then
|
||||||
For Each ROW As DataRow In DT.Rows
|
For Each ROW As DataRow In DTFilteredRows.Rows
|
||||||
Try
|
Try
|
||||||
Dim displayboxname = ROW.Item("NAME").ToString
|
Dim displayboxname = ROW.Item("NAME").ToString
|
||||||
If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then
|
If Not IsDBNull(ROW.Item("CONNECTION_ID")) And Not IsDBNull(ROW.Item("SQL_UEBERPRUEFUNG")) Then
|
||||||
@@ -1612,9 +1619,6 @@ Public Class frmValidator
|
|||||||
Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString()
|
Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString()
|
||||||
sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue)
|
sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue)
|
||||||
|
|
||||||
'Dim resultDT As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(sql_Statement, DatabaseType.ECM) With {
|
|
||||||
' .ConnectionId = ROW.Item("CONNECTION_ID")
|
|
||||||
'})
|
|
||||||
Dim resultDT As DataTable = GetCachedDatatable(sql_Statement, ROW.Item("CONNECTION_ID"))
|
Dim resultDT As DataTable = GetCachedDatatable(sql_Statement, ROW.Item("CONNECTION_ID"))
|
||||||
|
|
||||||
If resultDT.Rows.Count >= 1 Then
|
If resultDT.Rows.Count >= 1 Then
|
||||||
@@ -2354,11 +2358,9 @@ Public Class frmValidator
|
|||||||
'Abschluss()
|
'Abschluss()
|
||||||
Else
|
Else
|
||||||
Try
|
Try
|
||||||
Dim CONTROL_ID = DirectCast(oCombobox.Tag, ClassControlCreator.ControlMetadata).Guid
|
Dim oFilter = String.Format("PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, oCombobox.Name)
|
||||||
Dim sql = String.Format("select NAME,CONNECTION_ID,SQL_UEBERPRUEFUNG FROM TBPM_PROFILE_CONTROLS WHERE CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} AND SQL_UEBERPRUEFUNG LIKE '%{1}%'", CURRENT_ProfilGUID, oCombobox.Name)
|
|
||||||
Dim oFilter = String.Format("CONTROL_ACTIVE = 1 AND PROFIL_ID = {0} And SQL_UEBERPRUEFUNG Like '%{1}%'", CURRENT_ProfilGUID, oCombobox.Name)
|
|
||||||
|
|
||||||
Dim DT As DataTable = GetControlMetaBySql("TBPM_PROFILE_CONTROLS", sql, oFilter)
|
Dim DT As DataTable = GetControlMetaBySql(oFilter)
|
||||||
|
|
||||||
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
|
If Not IsNothing(DT) And DT.Rows.Count > 0 Then
|
||||||
If _DependingControl_In_Action = True Then
|
If _DependingControl_In_Action = True Then
|
||||||
@@ -2608,17 +2610,43 @@ Public Class frmValidator
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Private Function GetControlMetaBySql(tableName As String, sql As String, filter As String) As DataTable
|
Private Function GetControlMetaBySql(filter As String) As DataTable
|
||||||
Dim dt As DataTable = Nothing
|
Dim dt As DataTable = Nothing
|
||||||
Dim cacheKey = $"META|{tableName}|{sql}|{filter}"
|
Dim cacheKey = $"META|{filter}"
|
||||||
|
|
||||||
|
If _SqlDataCache.TryGetValue(cacheKey, dt) Then
|
||||||
|
Return dt
|
||||||
|
End If
|
||||||
|
|
||||||
|
If BASEDATA_TBPM_PROFILE_CONTROLS IsNot Nothing Then
|
||||||
|
Try
|
||||||
|
If String.IsNullOrWhiteSpace(filter) Then
|
||||||
|
dt = BASEDATA_TBPM_PROFILE_CONTROLS.Copy()
|
||||||
|
Else
|
||||||
|
Dim rows = BASEDATA_TBPM_PROFILE_CONTROLS.Select(filter)
|
||||||
|
dt = BASEDATA_TBPM_PROFILE_CONTROLS.Clone()
|
||||||
|
If rows.Length > 0 Then
|
||||||
|
dt = rows.CopyToDataTable()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If Not _SqlDataCache.TryGetValue(cacheKey, dt) Then
|
|
||||||
dt = DatabaseFallback.GetDatatable(tableName, New GetDatatableOptions(sql, DatabaseType.ECM) With {
|
|
||||||
.FilterExpression = filter
|
|
||||||
})
|
|
||||||
If dt IsNot Nothing Then
|
|
||||||
_SqlDataCache(cacheKey) = dt
|
_SqlDataCache(cacheKey) = dt
|
||||||
End If
|
Return dt
|
||||||
|
Catch ex As Exception
|
||||||
|
MyValidationLogger.Warn($"GetControlMetaBySql cache filter failed, fallback to DB: {ex.Message}")
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim query As String
|
||||||
|
If String.IsNullOrWhiteSpace(filter) Then
|
||||||
|
query = "SELECT * FROM TBPM_PROFILE_CONTROLS"
|
||||||
|
Else
|
||||||
|
query = $"SELECT * FROM TBPM_PROFILE_CONTROLS WHERE {filter}"
|
||||||
|
End If
|
||||||
|
|
||||||
|
dt = DatabaseFallback.GetDatatable("TBPM_PROFILE_CONTROLS", New GetDatatableOptions(query, DatabaseType.ECM))
|
||||||
|
If dt IsNot Nothing Then
|
||||||
|
_SqlDataCache(cacheKey) = dt
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Return dt
|
Return dt
|
||||||
|
|||||||
Reference in New Issue
Block a user