Async SQLResult

This commit is contained in:
Jonathan Jenne
2019-07-19 12:30:35 +02:00
parent f7ff19afeb
commit 54a533e974
5 changed files with 100 additions and 68 deletions

View File

@@ -20,7 +20,7 @@ Public Class frmResultSQL
Public ProfileId As Integer
End Class
Private Sub frmResultDoc_Load(sender As Object, e As EventArgs) Handles Me.Load
Private Async Sub frmResultDoc_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not ConfigManager.Config.ResultDataWindowSize.IsEmpty Then
Size = ConfigManager.Config.ResultDataWindowSize
End If
@@ -29,7 +29,17 @@ Public Class frmResultSQL
Location = ConfigManager.Config.ResultDataWindowLocation
End If
Load_Searches()
'Load_Searches()
GridViewDataSearch1.ShowLoadingPanel()
Dim oSearches = Await LoadSearchesAsync()
For Each oSearch In oSearches
RefreshTabData(oSearch.ProfileId, oSearch.DataTable, oSearch.TabIndex, oSearch.TabCaption)
Next
GridViewDataSearch1.HideLoadingPanel()
End Sub
Private Sub frmResultSQL_Shown(sender As Object, e As EventArgs) Handles Me.Shown
@@ -47,9 +57,8 @@ Public Class frmResultSQL
End Try
End Sub
Sub RefreshTabData(PROFILE_ID As Integer, ConID As Integer, SQLCommand As String, TabIndex As Integer, TabCaption As String)
Sub RefreshTabData(PROFILE_ID As Integer, DataTable As DataTable, TabIndex As Integer, TabCaption As String)
Try
SQLCommand = clsPatterns.ReplaceAllValues(SQLCommand, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, PROFILE_ID)
Dim myGridControl As GridControl
Dim myGridview As GridView
Select Case TabIndex
@@ -80,11 +89,10 @@ Public Class frmResultSQL
myGridview = GridViewDataSearch5
End Select
myGridControl.ContextMenuStrip = ContextMenuStripWMFile
Dim oDatatable As DataTable = clsDatabase.Return_Datatable(SQLCommand)
If Not IsNothing(oDatatable) Then
XtraTabControlData.TabPages(TabIndex).Text = $"{TabCaption} ({oDatatable.Rows.Count})"
clsWMDocGrid.DTDocuments = oDatatable
myGridControl.DataSource = oDatatable
If Not IsNothing(DataTable) Then
XtraTabControlData.TabPages(TabIndex).Text = $"{TabCaption} ({DataTable.Rows.Count})"
clsWMDocGrid.DTDocuments = DataTable
myGridControl.DataSource = DataTable
myGridControl.ForceInitialize()
Dim oxmlPath As String = ""
oxmlPath = Get_Grid_Layout_Filename(XtraTabControlData.SelectedTabPageIndex)
@@ -137,26 +145,49 @@ Public Class frmResultSQL
Dim oSQL = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({CurrDataSearch2Load}) ORDER BY TAB_INDEX"
Dim oSearchesDataTable = clsDatabase.Return_Datatable(oSQL)
Dim oSearches As New List(Of SQLSearch)
Dim oCounter As Integer = 0
DTDataSearchDefinition = oSearchesDataTable
For Each oRow As DataRow In oSearchesDataTable.Rows
Dim oProfileId As Integer = oRow.Item("PROFILE_ID")
Dim oTabTitle As String = oRow.Item("TAB_TITLE")
oSQL = oRow.Item("SQL_COMMAND")
oSQL = clsPatterns.ReplaceAllValues(oSQL, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, oProfileId)
Dim oDatatable As DataTable = clsDatabase.Return_Datatable(oSQL)
oSearches.Add(New SQLSearch() With {
.DataTable = oDatatable,
.ProfileId = oProfileId,
.TabCaption = oTabTitle,
.TabIndex = oCounter
})
oCounter += 1
Next
Return oSearches
End Function
Sub Load_Searches()
If Not IsNothing(CurrDataSearch2Load) Then
Dim oSQL = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({CurrDataSearch2Load}) ORDER BY TAB_INDEX"
DTDataSearchDefinition = clsDatabase.Return_Datatable(oSQL)
Dim ocounter As Integer = 0
If CurrDataSearch2Load.ToString.Contains(",") Then
'Sub Load_Searches()
' If Not IsNothing(CurrDataSearch2Load) Then
' Dim oSQL = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({CurrDataSearch2Load}) ORDER BY TAB_INDEX"
' DTDataSearchDefinition = clsDatabase.Return_Datatable(oSQL)
' Dim ocounter As Integer = 0
' If CurrDataSearch2Load.ToString.Contains(",") Then
End If
For Each oRow As DataRow In DTDataSearchDefinition.Rows
RefreshTabData(oRow.Item("PROFILE_ID"), oRow.Item("CONN_ID"), oRow.Item("SQL_COMMAND"), ocounter, oRow.Item("TAB_TITLE"))
ocounter += 1
Next
Else
MsgBox("Sorry but the selection of profile went wrong. (CurrSearch2Load is nothing)", MsgBoxStyle.Critical)
Close()
End If
End Sub
' End If
' For Each oRow As DataRow In DTDataSearchDefinition.Rows
' RefreshTabData(oRow.Item("PROFILE_ID"), oRow.Item("CONN_ID"), oRow.Item("SQL_COMMAND"), ocounter, oRow.Item("TAB_TITLE"))
' ocounter += 1
' Next
' Else
' MsgBox("Sorry but the selection of profile went wrong. (CurrSearch2Load is nothing)", MsgBoxStyle.Critical)
' Close()
' End If
'End Sub
Private Sub MenuItemReload_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click
Reload_Active_DocumentTab()
@@ -180,22 +211,31 @@ Public Class frmResultSQL
End Try
End Sub
Sub Reload_Active_DocumentTab()
If IsNothing(DTDataSearchDefinition) Then Exit Sub
Dim oTabIndex = XtraTabControlData.SelectedTabPageIndex
Dim oTabTitle = DTDataSearchDefinition.Rows(oTabIndex).Item("TAB_TITLE")
Dim oConID = DTDataSearchDefinition.Rows(oTabIndex).Item("CONN_ID")
Dim oCommand = DTDataSearchDefinition.Rows(oTabIndex).Item("SQL_COMMAND")
Dim oProfID = DTDataSearchDefinition.Rows(oTabIndex).Item("PROFILE_ID")
Dim oDatatable As DataTable
oCommand = clsPatterns.ReplaceAllValues(oCommand, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, oProfID)
RefreshTabData(oProfID, oConID, oCommand, oTabIndex, DTDataSearchDefinition.Rows(oTabIndex).Item("TAB_TITLE"))
oDatatable = clsDatabase.Return_Datatable(oCommand)
RefreshTabData(oProfID, oDatatable, oTabIndex, oTabTitle)
End Sub
Private Sub XtraTabControlDocs_SelectedPageChanged(sender As Object, e As TabPageChangedEventArgs) Handles XtraTabControlData.SelectedPageChanged
If IsNothing(DTDataSearchDefinition) Then Exit Sub
Dim oConID = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("CONN_ID")
Dim oCommand = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("SQL_COMMAND")
Dim oProfileID = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("PROFILE_ID")
oCommand = clsPatterns.ReplaceAllValues(oCommand, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, oProfileID)
Dim oTabIndex = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("TAB_INDEX")
Dim oTabCaption = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("TAB_TITLE")
RefreshTabData(oProfileID, oConID, oCommand, oTabIndex, oTabCaption)
'If IsNothing(DTDataSearchDefinition) Then Exit Sub
'Dim oConID = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("CONN_ID")
'Dim oCommand = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("SQL_COMMAND")
'Dim oProfileID = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("PROFILE_ID")
'oCommand = clsPatterns.ReplaceAllValues(oCommand, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, oProfileID)
'Dim oTabIndex = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("TAB_INDEX")
'Dim oTabCaption = DTDataSearchDefinition.Rows(XtraTabControlData.SelectedTabPageIndex).Item("TAB_TITLE")
'RefreshTabData(oProfileID, oConID, oCommand, oTabIndex, oTabCaption)
Reload_Active_DocumentTab()
End Sub
End Class
End Class