Vor GridControl Length
This commit is contained in:
@@ -1,5 +1,77 @@
|
|||||||
Public Class ClassIDBData
|
Public Class ClassIDBData
|
||||||
Public DTVWIDB_BE_ATTRIBUTE As DataTable
|
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>
|
''' <summary>
|
||||||
''' Gets all indices by BusinessEntity.
|
''' Gets all indices by BusinessEntity.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
@@ -7,15 +79,16 @@
|
|||||||
''' <returns>Array with all Indices</returns>
|
''' <returns>Array with all Indices</returns>
|
||||||
''' <remarks></remarks>
|
''' <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"
|
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)
|
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||||
If IsNothing(DTVWIDB_BE_ATTRIBUTE) Then
|
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 "
|
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)
|
DTVWIDB_BE_ATTRIBUTE = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||||
End If
|
End If
|
||||||
|
Return True
|
||||||
End Function
|
End Function
|
||||||
Public IDBSystemIndices As List(Of String)
|
|
||||||
Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String()
|
Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String()
|
||||||
Try
|
Try
|
||||||
Dim aNames(4) As String
|
Dim aNames(4) As String
|
||||||
@@ -140,8 +213,9 @@
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN}"
|
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {CURRENT_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN}"
|
||||||
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
LOGGER.Debug($"Delete_Term_Object_From_Metadata: {oDELSQL}")
|
||||||
|
'DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||||
|
Return ExecuteOrQueue(oDELSQL)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Error(ex)
|
LOGGER.Error(ex)
|
||||||
Return Nothing
|
Return Nothing
|
||||||
@@ -151,8 +225,9 @@
|
|||||||
Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object
|
Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object
|
||||||
Try
|
Try
|
||||||
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}'"
|
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}'"
|
||||||
DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
LOGGER.Debug($"Delete_Attribute_Data: {oDELSQL}")
|
||||||
|
' DatabaseFallback.ExecuteNonQueryIDB(oDELSQL)
|
||||||
|
Return ExecuteOrQueue(oDELSQL)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Error(ex)
|
LOGGER.Error(ex)
|
||||||
Return Nothing
|
Return Nothing
|
||||||
@@ -165,15 +240,15 @@
|
|||||||
Dim omytype = oNewValue.GetType.ToString
|
Dim omytype = oNewValue.GetType.ToString
|
||||||
If omytype = "System.Data.DataTable" Then
|
If omytype = "System.Data.DataTable" Then
|
||||||
Dim oDTMyNewValues As DataTable = oNewValue
|
Dim oDTMyNewValues As DataTable = oNewValue
|
||||||
Dim oOldAttributeResult
|
Dim oAttributeResultFromDB
|
||||||
Dim oTypeOldResult
|
Dim oTypeOldResult
|
||||||
|
|
||||||
If CheckDeleted = True Then
|
If CheckDeleted = True Then
|
||||||
oOldAttributeResult = GetVariableValue(oAttributeName, oIDBTyp)
|
oAttributeResultFromDB = GetVariableValue(oAttributeName, oIDBTyp)
|
||||||
oTypeOldResult = oOldAttributeResult.GetType.ToString
|
oTypeOldResult = oAttributeResultFromDB.GetType.ToString
|
||||||
If oTypeOldResult = "System.Data.DataTable" Then
|
If TypeOf oAttributeResultFromDB Is DataTable Then
|
||||||
Dim myOldValues As DataTable = oOldAttributeResult
|
Dim myOldValues As DataTable = oAttributeResultFromDB
|
||||||
If myOldValues.Rows.Count > 1 Then
|
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
|
'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
|
For Each oOldValueRow As DataRow In myOldValues.Rows
|
||||||
@@ -199,27 +274,26 @@
|
|||||||
'### Old Value is a single value ###
|
'### Old Value is a single value ###
|
||||||
If oDTMyNewValues.Rows.Count > 1 Then
|
If oDTMyNewValues.Rows.Count > 1 Then
|
||||||
'### there is more than one new value ###
|
'### there is more than one new value ###
|
||||||
Dim oExists As Boolean
|
Dim oExists As Boolean = False
|
||||||
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
||||||
oExists = False
|
LOGGER.Debug($"Checking oldValue[{oAttributeResultFromDB}] vs NewValue [{oNewValueRow.Item(1)}]")
|
||||||
Dim oInfo1 = $"Checking oldValue[{oOldAttributeResult}] vs NewValue [{oNewValueRow.Item(1)}]"
|
If oNewValueRow.Item(1).ToString.ToUpper = oAttributeResultFromDB.ToString.ToUpper Then
|
||||||
If oNewValueRow.Item(1).ToString.ToUpper = oOldAttributeResult.ToString.ToUpper Then
|
|
||||||
oExists = True
|
oExists = True
|
||||||
|
Exit For ' ← sobald gefunden, abbrechen
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
If oExists = False Then
|
If oExists = False Then
|
||||||
Dim oInfo2 = $"Value [{oOldAttributeResult}] no longer existing in Vector-Attribute [{oAttributeName}] - will be deleted!"
|
LOGGER.Debug($"Value [{oAttributeResultFromDB}] no longer existing in Attribute [{oAttributeName}] - will be deleted!")
|
||||||
LOGGER.Debug(oInfo2)
|
|
||||||
'SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo2)
|
'SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo2)
|
||||||
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
|
Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
'### there is only ONE new value ###
|
'### there is only ONE new value ###
|
||||||
If oDTMyNewValues.Rows(0).Item(1) <> oOldAttributeResult Then
|
If oDTMyNewValues.Rows(0).Item(1) <> oAttributeResultFromDB Then
|
||||||
Dim oInfo = $"Value [{oOldAttributeResult}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
|
Dim oInfo = $"Value [{oAttributeResultFromDB}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
|
||||||
LOGGER.Debug(oInfo)
|
LOGGER.Debug(oInfo)
|
||||||
SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo)
|
SetVariableValue(CURRENT_PROFILE_LOG_INDEX, oInfo)
|
||||||
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
|
Delete_Term_Object_From_Metadata(oAttributeName, oAttributeResultFromDB)
|
||||||
Else
|
Else
|
||||||
LOGGER.Debug($"Attributvalue of [{oAttributeName}] did not change!")
|
LOGGER.Debug($"Attributvalue of [{oAttributeName}] did not change!")
|
||||||
End If
|
End If
|
||||||
@@ -231,22 +305,24 @@
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
|
||||||
Dim oSuccess As Boolean = False
|
'Dim oSuccess As Boolean = False
|
||||||
Dim oVALUE = oNewValueRow.Item(1).ToString
|
Dim oVALUE = oNewValueRow.Item(1).ToString
|
||||||
oVALUE = oVALUE.Replace("'", "''")
|
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)
|
LOGGER.Debug(oPRSQL)
|
||||||
oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL)
|
'oSuccess = DatabaseFallback.ExecuteNonQueryIDB(oPRSQL)
|
||||||
If oSuccess = False Then
|
If Not ExecuteOrQueue(oPRSQL) Then Return False
|
||||||
Return False
|
'If oSuccess = False Then
|
||||||
End If
|
' Return False
|
||||||
|
'End If
|
||||||
Next
|
Next
|
||||||
Return True
|
Return True
|
||||||
Else
|
Else
|
||||||
'oNewValue = oNewValue.Replace("'", "' + NCHAR(39) + '")
|
'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"
|
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(oFNSQL)
|
LOGGER.Debug(oPRIDB_NEW_OBJ_DATA)
|
||||||
Return DatabaseFallback.ExecuteNonQueryIDB(oFNSQL)
|
' Return DatabaseFallback.ExecuteNonQueryIDB(oPRIDB_NEW_OBJ_DATA)
|
||||||
|
Return ExecuteOrQueue(oPRIDB_NEW_OBJ_DATA)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ Imports DevExpress.XtraGrid.Views.Grid
|
|||||||
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
|
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
|
||||||
Imports DevExpress.XtraNavBar
|
Imports DevExpress.XtraNavBar
|
||||||
Imports DevExpress.XtraPrinting
|
Imports DevExpress.XtraPrinting
|
||||||
|
Imports DevExpress.XtraSplashScreen
|
||||||
Imports DigitalData.GUIs.Common
|
Imports DigitalData.GUIs.Common
|
||||||
Imports DigitalData.Modules.Base
|
Imports DigitalData.Modules.Base
|
||||||
Imports DigitalData.Modules.EDMI.API.Constants
|
Imports DigitalData.Modules.EDMI.API.Constants
|
||||||
@@ -61,6 +62,7 @@ Public Class frmMain
|
|||||||
Private DetailLinkActive As Boolean = False
|
Private DetailLinkActive As Boolean = False
|
||||||
Private FRONTEND_ACTION As String = "NONE"
|
Private FRONTEND_ACTION As String = "NONE"
|
||||||
Private Ev_Filter_Panel_Closed As Boolean = False
|
Private Ev_Filter_Panel_Closed As Boolean = False
|
||||||
|
Private _overlayActive As Boolean = False
|
||||||
|
|
||||||
Dim omsgOpenWorkflow As String
|
Dim omsgOpenWorkflow As String
|
||||||
Dim omsgTitleWarning As String
|
Dim omsgTitleWarning As String
|
||||||
@@ -1398,6 +1400,13 @@ Public Class frmMain
|
|||||||
' HAUPTLADEMETHODE - Koordiniert den gesamten Ladevorgang
|
' HAUPTLADEMETHODE - Koordiniert den gesamten Ladevorgang
|
||||||
' ========================================
|
' ========================================
|
||||||
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 oHandle As Object = Nothing
|
||||||
|
Dim overlayStartedHere As Boolean = False
|
||||||
|
If Not _overlayActive Then
|
||||||
|
oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||||
|
_overlayActive = True
|
||||||
|
overlayStartedHere = True
|
||||||
|
End If
|
||||||
Dim perfStart As DateTime = DateTime.MinValue
|
Dim perfStart As DateTime = DateTime.MinValue
|
||||||
Dim refreshWasEnabled As Boolean = False
|
Dim refreshWasEnabled As Boolean = False
|
||||||
|
|
||||||
@@ -1436,10 +1445,10 @@ Public Class frmMain
|
|||||||
LOGGER.Info("[PERF Decide_Load] ruft LoadOverviewData auf...")
|
LOGGER.Info("[PERF Decide_Load] ruft LoadOverviewData auf...")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' UI vorbereiten
|
'' UI vorbereiten
|
||||||
If Not PrepareGridForLoading() Then
|
'If Not PrepareGridForLoading() Then
|
||||||
Exit Function
|
' Exit Function
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
Await Task.Yield()
|
Await Task.Yield()
|
||||||
|
|
||||||
@@ -1451,10 +1460,10 @@ Public Class frmMain
|
|||||||
LOGGER.Info("[PERF Decide_Load] ruft LoadProfileData auf...")
|
LOGGER.Info("[PERF Decide_Load] ruft LoadProfileData auf...")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' UI vorbereiten
|
'' UI vorbereiten
|
||||||
If Not PrepareGridForLoading() Then
|
'If Not PrepareGridForLoading() Then
|
||||||
Exit Function
|
' Exit Function
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
Await Task.Yield()
|
Await Task.Yield()
|
||||||
|
|
||||||
@@ -1477,7 +1486,10 @@ Public Class frmMain
|
|||||||
LOGGER.Info("Unexpected error in Decide_load: " & ex.Message)
|
LOGGER.Info("Unexpected error in Decide_load: " & ex.Message)
|
||||||
Finally
|
Finally
|
||||||
FRONTEND_ACTION = FA_NONE
|
FRONTEND_ACTION = FA_NONE
|
||||||
|
If overlayStartedHere Then
|
||||||
|
_overlayActive = False
|
||||||
|
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||||
|
End If
|
||||||
If refreshWasEnabled Then
|
If refreshWasEnabled Then
|
||||||
TimerRefresh.Start()
|
TimerRefresh.Start()
|
||||||
End If
|
End If
|
||||||
@@ -1491,33 +1503,6 @@ Public Class frmMain
|
|||||||
End If
|
End If
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
' ========================================
|
|
||||||
' UI-VORBEREITUNG - Macht Grid sichtbar und zeigt LoadingPanel
|
|
||||||
' ========================================
|
|
||||||
Private Function PrepareGridForLoading() As Boolean
|
|
||||||
Try
|
|
||||||
' Grid sichtbar machen
|
|
||||||
If GridControlWorkflows.Visible = False Then
|
|
||||||
GridControlWorkflows.Visible = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
' UI-Thread Zeit geben
|
|
||||||
Application.DoEvents()
|
|
||||||
|
|
||||||
' LoadingPanel anzeigen
|
|
||||||
GridViewWorkflows.ShowLoadingPanel()
|
|
||||||
|
|
||||||
' Nochmal Zeit zum Rendern
|
|
||||||
Application.DoEvents()
|
|
||||||
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
LOGGER.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
' ========================================
|
' ========================================
|
||||||
' OVERVIEW DATEN LADEN - Spezialisiert auf Overview
|
' OVERVIEW DATEN LADEN - Spezialisiert auf Overview
|
||||||
' ========================================
|
' ========================================
|
||||||
@@ -1686,9 +1671,6 @@ Public Class frmMain
|
|||||||
GridControlWorkflows.EndUpdate()
|
GridControlWorkflows.EndUpdate()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' LoadingPanel verstecken (NUR HIER!)
|
|
||||||
GridViewWorkflows.HideLoadingPanel()
|
|
||||||
|
|
||||||
If LOG_HOTSPOTS Then
|
If LOG_HOTSPOTS Then
|
||||||
Dim totalElapsed = (DateTime.Now - perfStart).TotalMilliseconds
|
Dim totalElapsed = (DateTime.Now - perfStart).TotalMilliseconds
|
||||||
If totalElapsed > 4000 Then
|
If totalElapsed > 4000 Then
|
||||||
@@ -1759,9 +1741,6 @@ Public Class frmMain
|
|||||||
If gridUpdateStarted Then
|
If gridUpdateStarted Then
|
||||||
GridControlWorkflows.EndUpdate()
|
GridControlWorkflows.EndUpdate()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' LoadingPanel verstecken (NUR HIER!)
|
|
||||||
GridViewWorkflows.HideLoadingPanel()
|
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -2548,11 +2527,9 @@ 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 useWaitCursorApplied As Boolean = False
|
||||||
Dim previousMessage As String = bsiMessage.Caption
|
Dim previousMessage As String = bsiMessage.Caption
|
||||||
Dim loadingMessageApplied As Boolean = False
|
Dim loadingMessageApplied As Boolean = False
|
||||||
Dim gridWasMadeVisible As Boolean = False
|
|
||||||
|
|
||||||
If LOG_HOTSPOTS Then
|
If LOG_HOTSPOTS Then
|
||||||
perfStart = DateTime.Now
|
perfStart = DateTime.Now
|
||||||
@@ -2564,24 +2541,11 @@ Public Class frmMain
|
|||||||
' SCHRITT 1: Grid sichtbar machen
|
' SCHRITT 1: Grid sichtbar machen
|
||||||
If GridControlWorkflows.Visible = False Then
|
If GridControlWorkflows.Visible = False Then
|
||||||
GridControlWorkflows.Visible = True
|
GridControlWorkflows.Visible = True
|
||||||
gridWasMadeVisible = True
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
GRID_LOAD_TYPE = "OVERVIEW"
|
GRID_LOAD_TYPE = "OVERVIEW"
|
||||||
CURRENT_CLICKED_PROFILE_ID = 0
|
CURRENT_CLICKED_PROFILE_ID = 0
|
||||||
|
|
||||||
' SCHRITT 2: UI-Thread Zeit geben, das Grid zu rendern
|
|
||||||
Application.DoEvents()
|
|
||||||
Await Task.Delay(100)
|
|
||||||
|
|
||||||
' SCHRITT 3: LoadingPanel anzeigen (jetzt ist das Grid definitiv sichtbar!)
|
|
||||||
GridViewWorkflows.ShowLoadingPanel()
|
|
||||||
showLoadingPanel = True
|
|
||||||
|
|
||||||
' SCHRITT 4: UI-Thread Zeit zum Rendern des LoadingPanels geben
|
|
||||||
Application.DoEvents()
|
|
||||||
Await Task.Delay(150)
|
|
||||||
|
|
||||||
If LOG_HOTSPOTS Then
|
If LOG_HOTSPOTS Then
|
||||||
Dim elapsed = (DateTime.Now - perfStep).TotalMilliseconds
|
Dim elapsed = (DateTime.Now - perfStep).TotalMilliseconds
|
||||||
If elapsed > 4000 Then
|
If elapsed > 4000 Then
|
||||||
@@ -2876,7 +2840,6 @@ Public Class frmMain
|
|||||||
|
|
||||||
Finally
|
Finally
|
||||||
' ========== AUFRÄUMEN ==========
|
' ========== AUFRÄUMEN ==========
|
||||||
' EndUpdate IMMER aufrufen (vor dem Verstecken des LoadingPanel)
|
|
||||||
If viewUpdateStarted Then
|
If viewUpdateStarted Then
|
||||||
GridViewWorkflows.EndUpdate()
|
GridViewWorkflows.EndUpdate()
|
||||||
End If
|
End If
|
||||||
@@ -2884,11 +2847,6 @@ Public Class frmMain
|
|||||||
GridControlWorkflows.EndUpdate()
|
GridControlWorkflows.EndUpdate()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' LoadingPanel SOFORT nach EndUpdate verstecken
|
|
||||||
If showLoadingPanel Then
|
|
||||||
GridViewWorkflows.HideLoadingPanel()
|
|
||||||
End If
|
|
||||||
|
|
||||||
' WaitCursor entfernen
|
' WaitCursor entfernen
|
||||||
If useWaitCursorApplied Then
|
If useWaitCursorApplied Then
|
||||||
Me.UseWaitCursor = False
|
Me.UseWaitCursor = False
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -624,6 +624,12 @@
|
|||||||
<Compile Include="frmError.vb">
|
<Compile Include="frmError.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</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">
|
<Compile Include="frmFileInfo.Designer.vb">
|
||||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -868,6 +874,9 @@
|
|||||||
<DependentUpon>frmError.vb</DependentUpon>
|
<DependentUpon>frmError.vb</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmExpression_Designer.resx">
|
||||||
|
<DependentUpon>frmExpression_Designer.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmFileInfo.resx">
|
<EmbeddedResource Include="frmFileInfo.resx">
|
||||||
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
<DependentUpon>frmFileInfo.vb</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|||||||
Reference in New Issue
Block a user