242 lines
11 KiB
VB.net
242 lines
11 KiB
VB.net
Imports System.IO
|
|
Imports DevExpress.XtraTab
|
|
Imports DevExpress.XtraGrid
|
|
Imports DevExpress.XtraGrid.Views.Grid
|
|
Imports DevExpress.XtraGrid.Views.Base
|
|
Imports DD_LIB_Standards
|
|
|
|
Public Class frmResultSQL
|
|
|
|
Private Shared BW_DocPath As String
|
|
Private Shared BW_DocID As Integer
|
|
Private Shared CurrSearchID As Integer
|
|
Private DTDataSearchDefinition As DataTable
|
|
Private _activeGridView As GridView
|
|
|
|
Private Class SQLSearch
|
|
Public DataTable As DataTable
|
|
Public TabIndex As Integer
|
|
Public TabCaption As String
|
|
Public ProfileId As Integer
|
|
End Class
|
|
|
|
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
|
|
|
|
If Not ConfigManager.Config.ResultDataWindowLocation.IsEmpty Then
|
|
Location = ConfigManager.Config.ResultDataWindowLocation
|
|
End If
|
|
|
|
'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
|
|
BringToFront()
|
|
End Sub
|
|
|
|
Private Sub frmResultDoc_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
|
Try
|
|
ConfigManager.Config.ResultDataWindowSize = Size
|
|
ConfigManager.Config.ResultDataWindowLocation = Location
|
|
ConfigManager.Save()
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Logger.Info("Error in Save FormLayout: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Sub RefreshTabData(PROFILE_ID As Integer, DataTable As DataTable, TabIndex As Integer, TabCaption As String)
|
|
Try
|
|
Dim myGridControl As GridControl
|
|
Dim myGridview As GridView
|
|
Select Case TabIndex
|
|
Case 0
|
|
GridControlDocSearch1.DataSource = Nothing
|
|
GridViewDataSearch1.Columns.Clear()
|
|
myGridview = GridViewDataSearch1
|
|
myGridControl = GridControlDocSearch1
|
|
Case 1
|
|
GridControlDocSearch2.DataSource = Nothing
|
|
GridViewDataSearch2.Columns.Clear()
|
|
myGridview = GridViewDataSearch2
|
|
myGridControl = GridControlDocSearch2
|
|
Case 2
|
|
GridControlDocSearch3.DataSource = Nothing
|
|
GridViewDataSearch3.Columns.Clear()
|
|
myGridview = GridViewDataSearch3
|
|
myGridControl = GridControlDocSearch3
|
|
Case 3
|
|
GridControlDocSearch4.DataSource = Nothing
|
|
GridViewDataSearch4.Columns.Clear()
|
|
myGridControl = GridControlDocSearch4
|
|
myGridview = GridViewDataSearch4
|
|
Case 4
|
|
GridControlDocSearch5.DataSource = Nothing
|
|
GridViewDataSearch5.Columns.Clear()
|
|
myGridControl = GridControlDocSearch5
|
|
myGridview = GridViewDataSearch5
|
|
End Select
|
|
myGridControl.ContextMenuStrip = ContextMenuStripWMFile
|
|
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)
|
|
|
|
If File.Exists(oxmlPath) Then
|
|
myGridview.RestoreLayoutFromXml(oxmlPath)
|
|
myGridview.GuessAutoFilterRowValuesFromFilter()
|
|
End If
|
|
tslblState.Text = $"Tab [{TabCaption}] refreshed - {Now}"
|
|
XtraTabControlData.TabPages(TabIndex).PageVisible = True
|
|
Else
|
|
clsWMDocGrid.DTDocuments = Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
End Try
|
|
End Sub
|
|
Private Function Get_Grid_Layout_Filename(oIndex As Integer)
|
|
Dim oFilename As String = String.Format("GridViewData_Search-{0}-{1}-UserLayout.xml", oIndex, CurrSearchID)
|
|
Dim oPath = Path.Combine(Application.UserAppDataPath(), oFilename)
|
|
Return oPath
|
|
End Function
|
|
|
|
Private Sub GridControlDocSearch_Leave(sender As Object, e As EventArgs) Handles GridControlDocSearch1.Leave, GridControlDocSearch2.Leave, GridControlDocSearch3.Leave, GridControlDocSearch4.Leave, GridControlDocSearch5.Leave
|
|
SaveDocGridLayout()
|
|
End Sub
|
|
|
|
Private Sub GridViewDocSearch1_FocusedRowChanged(sender As GridView, e As FocusedRowChangedEventArgs) Handles GridViewDataSearch1.FocusedRowChanged, GridViewDataSearch2.FocusedRowChanged, GridViewDataSearch3.FocusedRowChanged, GridViewDataSearch4.FocusedRowChanged, GridViewDataSearch5.FocusedRowChanged
|
|
_activeGridView = sender
|
|
End Sub
|
|
|
|
Private Sub GridViewDocSearch1_ColumnWidthChanged(sender As GridView, e As Views.Base.ColumnEventArgs) Handles GridViewDataSearch1.ColumnWidthChanged, GridViewDataSearch2.ColumnWidthChanged, GridViewDataSearch3.ColumnWidthChanged, GridViewDataSearch4.ColumnWidthChanged, GridViewDataSearch5.ColumnWidthChanged
|
|
_activeGridView = sender
|
|
SaveDocGridLayout()
|
|
End Sub
|
|
|
|
Sub SaveDocGridLayout()
|
|
Dim oXMLPath = Get_Grid_Layout_Filename(XtraTabControlData.SelectedTabPageIndex)
|
|
_activeGridView.SaveLayoutToXml(oXMLPath)
|
|
End Sub
|
|
|
|
Private Async Function LoadSearchesAsync() As Task(Of List(Of SQLSearch))
|
|
Return Await Task.Run(AddressOf DoLoadSearches)
|
|
End Function
|
|
|
|
Private Function DoLoadSearches() As List(Of SQLSearch)
|
|
If IsNothing(CurrDocSearch2Load) Then
|
|
Throw New ApplicationException("CurrDataSearch2Load is empty")
|
|
End If
|
|
|
|
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
|
|
|
|
' 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()
|
|
End Sub
|
|
|
|
Private Sub MenuItemResetLayout_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem2.Click
|
|
Reset_Layout()
|
|
End Sub
|
|
Sub Reset_Layout()
|
|
Dim oXMLPath = Get_Grid_Layout_Filename(XtraTabControlData.SelectedTabPageIndex)
|
|
Try
|
|
If File.Exists(oXMLPath) Then
|
|
File.Delete(oXMLPath)
|
|
Reload_Active_DocumentTab()
|
|
tslblState.Text = "Layout has been set back!"
|
|
Else
|
|
tslblState.Text = ""
|
|
End If
|
|
Catch ex As Exception
|
|
tslblState.Text = ""
|
|
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)
|
|
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)
|
|
Reload_Active_DocumentTab()
|
|
End Sub
|
|
End Class
|