diff --git a/GUIs.Monitor/Constants.vb b/GUIs.Monitor/Constants.vb index f007516..1d57473 100644 --- a/GUIs.Monitor/Constants.vb +++ b/GUIs.Monitor/Constants.vb @@ -1,9 +1,29 @@ -Public Class Constants - Public Const STATE_SUCCESS As String = "SUCCESS" - Public Const STATE_FAILURE As String = "FAILURE" - Public Const STATE_WARNING As String = "WARNING" - Public Const STATE_WAITING As String = "WAITING" - Public Const STATE_HIGHLIGHT As String = "HIGHLIGHT" - Public Const STATE_DEFAULT As String = "DEFAULT" - Public Const STATE_USER As String = "USER" -End Class +Namespace Constants + 'Public Const STATE_SUCCESS As String = "SUCCESS" + 'Public Const STATE_FAILURE As String = "FAILURE" + 'Public Const STATE_WARNING As String = "WARNING" + 'Public Const STATE_WAITING As String = "WAITING" + 'Public Const STATE_HIGHLIGHT As String = "HIGHLIGHT" + 'Public Const STATE_DEFAULT As String = "DEFAULT" + 'Public Const STATE_USER As String = "USER" + + Public Enum ReturnTypeEnum + Undefined + Table + TreeView + End Enum + + Public Enum DataTypeEnum + Undefined + [Boolean] + [String] + [Integer] + [Date] + End Enum + + Public Enum ItemTypeEnum + Undefined + List + SQL + End Enum +End Namespace diff --git a/GUIs.Monitor/Monitor.vbproj b/GUIs.Monitor/Monitor.vbproj index 7f75c14..7d40c9a 100644 --- a/GUIs.Monitor/Monitor.vbproj +++ b/GUIs.Monitor/Monitor.vbproj @@ -138,6 +138,7 @@ + frmMonitor.vb @@ -150,7 +151,10 @@ True + + + frmMonitor.vb @@ -207,6 +211,8 @@ PreserveNewest + + diff --git a/GUIs.Monitor/My Project/Resources.Designer.vb b/GUIs.Monitor/My Project/Resources.Designer.vb index 1f82dec..c0aebc5 100644 --- a/GUIs.Monitor/My Project/Resources.Designer.vb +++ b/GUIs.Monitor/My Project/Resources.Designer.vb @@ -120,6 +120,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property exporttoxlsx() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("exporttoxlsx", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property exporttoxlsx1() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("exporttoxlsx1", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' diff --git a/GUIs.Monitor/My Project/Resources.resx b/GUIs.Monitor/My Project/Resources.resx index 84bfd8a..38aa8fb 100644 --- a/GUIs.Monitor/My Project/Resources.resx +++ b/GUIs.Monitor/My Project/Resources.resx @@ -121,9 +121,15 @@ ..\Resources\actions_reload.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\exporttoxlsx.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\export.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\deletetable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\charttype_line.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -139,7 +145,7 @@ ..\Resources\managedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\deletetable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\exporttoxlsx1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/GUIs.Monitor/ParameterLoader.vb b/GUIs.Monitor/ParameterLoader.vb new file mode 100644 index 0000000..08c820a --- /dev/null +++ b/GUIs.Monitor/ParameterLoader.vb @@ -0,0 +1,157 @@ +Imports DevExpress.Utils +Imports DevExpress.XtraEditors +Imports DevExpress.XtraEditors.Controls +Imports DevExpress.XtraLayout +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging + +Public Class ParameterLoader + Inherits BaseClass + + Private Const LIST_CONTROL_NULL_TEXT As String = "Kein Wert ausgewählt" + + Private Database As MSSQLServer + Private LayoutControl As LayoutControl + + Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pLayoutControl As LayoutControl) + MyBase.New(pLogConfig) + Database = pDatabase + LayoutControl = pLayoutControl + End Sub + + Private Function GetDefaultValue(pParam As SearchParameter) As Object + Dim oResult As Object = Nothing + + Select Case pParam.DataType + Case Constants.DataTypeEnum.Boolean + Boolean.TryParse(pParam.DefaultValue, oResult) + + Case Constants.DataTypeEnum.Date + Date.TryParse(pParam.DefaultValue, oResult) + + Case Constants.DataTypeEnum.Integer + Integer.TryParse(pParam.DefaultValue, oResult) + + Case Else + oResult = pParam.DefaultValue + + End Select + + Return oResult + End Function + + Public Sub LoadParameters(pSearch As Search) + For Each oParam As SearchParameter In pSearch.Parameters + Dim oControl As Control + + Select Case oParam.DataType + Case Constants.DataTypeEnum.Boolean + Dim oDefaultValue As Boolean = GetDefaultValue(oParam) + Dim oCheckbox = New CheckEdit With { + .Text = oParam.Title, + .Checked = oDefaultValue + } + + oControl = oCheckbox + + + Case Constants.DataTypeEnum.Date + Dim oDefaultValue As Date = GetDefaultValue(oParam) + + If oDefaultValue = Date.MinValue Then + oDefaultValue = Now + End If + + oControl = New DateEdit() With { + .EditValue = oDefaultValue + } + + Case Constants.DataTypeEnum.String + Dim oDefaultValue As String = GetDefaultValue(oParam) + + Select Case oParam.ItemType + Case Constants.ItemTypeEnum.List + Dim oCombobox = New ComboBoxEdit() With { + .Name = oParam.PatternTitle, + .Tag = oParam.PatternTitle, + .EditValue = oDefaultValue + } + Dim oClearButton = GetClearButtonForControl(oCombobox) + Dim oItems = oParam.ItemString.Split(";"c).ToList() + oCombobox.Properties.Items.AddRange(oItems) + oCombobox.Properties.NullText = LIST_CONTROL_NULL_TEXT + oCombobox.Properties.Buttons.Add(oClearButton) + oControl = oCombobox + + Case Constants.ItemTypeEnum.SQL + Dim oGridCombobox = New LookUpEdit() With { + .Name = oParam.PatternTitle, + .Tag = oParam.PatternTitle, + .EditValue = oDefaultValue + } + Dim oClearButton = GetClearButtonForControl(oGridCombobox) + Dim oSQL = oParam.ItemString + Dim oTable = Database.GetDatatable(oSQL) + oGridCombobox.Properties.DataSource = oTable + oGridCombobox.Properties.DisplayMember = oTable.Columns.Item(0).ColumnName + oGridCombobox.Properties.ValueMember = oTable.Columns.Item(0).ColumnName + oGridCombobox.Properties.NullText = LIST_CONTROL_NULL_TEXT + oGridCombobox.Properties.Buttons.Add(oClearButton) + oControl = oGridCombobox + + Case Else + oControl = New TextEdit() With { + .EditValue = oDefaultValue + } + End Select + + Case Else + Dim oDefaultValue As Object = GetDefaultValue(oParam) + + oControl = New TextEdit() With { + .EditValue = oDefaultValue + } + + End Select + + oControl.Name = oParam.PatternTitle + oControl.Tag = oParam.PatternTitle + + Dim oItem As LayoutControlItem = LayoutControl.AddItem() + oItem.Text = oParam.Title + oItem.Control = oControl + oItem.TextLocation = Locations.Top + oItem.TextToControlDistance = 3 + oItem.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 10, 0) + + + Next + End Sub + + Private Function GetClearButtonForControl(pControl As Control) As EditorButton + Dim oClearButton As New EditorButton() With { + .Kind = ButtonPredefines.Clear, + .Tag = pControl.Name + } + AddHandler oClearButton.Click, AddressOf ClearButton_Click + Return oClearButton + End Function + + Private Sub ClearButton_Click(sender As Object, e As EventArgs) + Dim oButton As EditorButton = sender + Dim oControlName As String = oButton.Tag.ToString + + Dim oControl = LayoutControl.Controls.Find(oControlName, True).SingleOrDefault() + + Select Case oControl.GetType + Case GetType(LookUpEdit) + DirectCast(oControl, LookUpEdit).EditValue = Nothing + + Case GetType(ComboBoxEdit) + DirectCast(oControl, ComboBoxEdit).EditValue = Nothing + End Select + + End Sub +End Class + diff --git a/GUIs.Monitor/Resources/exporttoxlsx.svg b/GUIs.Monitor/Resources/exporttoxlsx.svg new file mode 100644 index 0000000..c8e97ee --- /dev/null +++ b/GUIs.Monitor/Resources/exporttoxlsx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GUIs.Monitor/Resources/exporttoxlsx1.svg b/GUIs.Monitor/Resources/exporttoxlsx1.svg new file mode 100644 index 0000000..c8e97ee --- /dev/null +++ b/GUIs.Monitor/Resources/exporttoxlsx1.svg @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GUIs.Monitor/Search.vb b/GUIs.Monitor/Search.vb new file mode 100644 index 0000000..71570a2 --- /dev/null +++ b/GUIs.Monitor/Search.vb @@ -0,0 +1,13 @@ +Public Class Search + Public Id As Integer + Public Title As String + Public Description As String + Public SQLCommand As String + Public ReturnType As Constants.ReturnTypeEnum + + Public Parameters As List(Of SearchParameter) + + Public Overrides Function ToString() As String + Return Title + End Function +End Class diff --git a/GUIs.Monitor/SearchLoader.vb b/GUIs.Monitor/SearchLoader.vb index 01de6b2..e1a662f 100644 --- a/GUIs.Monitor/SearchLoader.vb +++ b/GUIs.Monitor/SearchLoader.vb @@ -2,36 +2,17 @@ Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Language +Imports DigitalData.GUIs.Monitor.Constants -Public Class SearchLoader +Partial Public Class SearchLoader Inherits BaseClass - Private Config As Config - Private Database As MSSQLServer + Private ReadOnly Config As Config + Private ReadOnly Database As MSSQLServer Public Searches As New List(Of Search) Public Parameters As New List(Of SearchParameter) - Public Enum ReturnTypeEnum - Undefined - Table - TreeView - End Enum - - Public Enum DataTypeEnum - Undefined - [Boolean] - [String] - [Integer] - [Date] - End Enum - - Public Enum ItemTypeEnum - Undefined - List - SQL - End Enum - Public Sub New(pLogConfig As LogConfig, pConfig As Config, pDatabase As MSSQLServer) MyBase.New(pLogConfig) Config = pConfig @@ -119,47 +100,12 @@ Public Class SearchLoader .ItemType = GetItemType(oRow.ItemEx("ITEM_TYPE", String.Empty)), .Required = oRow.ItemEx("REQUIRED", True), .PatternTitle = oRow.ItemEx("PATTERN", String.Empty), - .SearchId = oRow.ItemEx("PROFILE_ID", 0) + .SearchId = oRow.ItemEx("PROFILE_ID", 0), + .DefaultValue = oRow.ItemEx("DEFAULT_VALUE", String.Empty) }) Next Parameters = oParameters End Sub - Public Class Search - Public Id As Integer - Public Title As String - Public Description As String - Public SQLCommand As String - Public ReturnType As ReturnTypeEnum - - Public Parameters As List(Of SearchParameter) - - Public Overrides Function ToString() As String - Return Title - End Function - End Class - - Public Class SearchParameter - Public Id As Integer - Public Title As String - Public PatternTitle As String - Public Description As String - Public DataType As DataTypeEnum - Public ItemString As String - Public ItemType As ItemTypeEnum - Public Required As Boolean - Public SearchId As Integer - - Public ReadOnly Property HasItems As Boolean - Get - Return ItemType <> ItemTypeEnum.Undefined - End Get - End Property - - Public Overrides Function ToString() As String - Return Title - End Function - End Class - End Class diff --git a/GUIs.Monitor/SearchParameter.vb b/GUIs.Monitor/SearchParameter.vb new file mode 100644 index 0000000..6a560c6 --- /dev/null +++ b/GUIs.Monitor/SearchParameter.vb @@ -0,0 +1,22 @@ +Public Class SearchParameter + Public Id As Integer + Public Title As String + Public PatternTitle As String + Public Description As String + Public DataType As Constants.DataTypeEnum + Public ItemString As String + Public ItemType As Constants.ItemTypeEnum + Public Required As Boolean + Public SearchId As Integer + Public DefaultValue As String + + Public ReadOnly Property HasItems As Boolean + Get + Return ItemType <> Constants.ItemTypeEnum.Undefined + End Get + End Property + + Public Overrides Function ToString() As String + Return Title + End Function +End Class \ No newline at end of file diff --git a/GUIs.Monitor/frmMonitor.Designer.vb b/GUIs.Monitor/frmMonitor.Designer.vb index b3104af..8bacaa3 100644 --- a/GUIs.Monitor/frmMonitor.Designer.vb +++ b/GUIs.Monitor/frmMonitor.Designer.vb @@ -29,8 +29,8 @@ Partial Class frmMonitor Me.ApplicationMenu1 = New DevExpress.XtraBars.Ribbon.ApplicationMenu(Me.components) Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.buttonSearch = New DevExpress.XtraBars.BarButtonItem() - Me.btnExportGrid = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() + Me.btnExportDetails = New DevExpress.XtraBars.BarButtonItem() + Me.btnExportMain = New DevExpress.XtraBars.BarButtonItem() Me.lbResultCount = New DevExpress.XtraBars.BarStaticItem() Me.btnReloadSearches = New DevExpress.XtraBars.BarButtonItem() Me.btnResetLayout = New DevExpress.XtraBars.BarButtonItem() @@ -60,6 +60,7 @@ Partial Class frmMonitor Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() Me.lbParams = New DevExpress.XtraLayout.SimpleLabelItem() + Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() Me.SplitContainerSQL = New DevExpress.XtraEditors.SplitContainerControl() Me.XtraTabControlSQL = New DevExpress.XtraTab.XtraTabControl() Me.XtraTabPageSQL1 = New DevExpress.XtraTab.XtraTabPage() @@ -104,6 +105,7 @@ Partial Class frmMonitor CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.lbParams, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerSQL, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerSQL.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerSQL.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() @@ -137,7 +139,7 @@ Partial Class frmMonitor ' Me.RibbonControl1.ApplicationButtonDropDownControl = Me.ApplicationMenu1 Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.buttonSearch, Me.BarButtonItem1, Me.btnExportGrid, Me.BarButtonItem3, Me.lbResultCount, Me.btnReloadSearches, Me.btnResetLayout}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.buttonSearch, Me.BarButtonItem1, Me.btnExportDetails, Me.btnExportMain, Me.lbResultCount, Me.btnReloadSearches, Me.btnResetLayout}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) Me.RibbonControl1.MaxItemId = 9 Me.RibbonControl1.Name = "RibbonControl1" @@ -168,21 +170,21 @@ Partial Class frmMonitor Me.buttonSearch.Name = "buttonSearch" Me.buttonSearch.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large ' - 'btnExportGrid + 'btnExportDetails ' - Me.btnExportGrid.Caption = "Export Grid als XLSX" - Me.btnExportGrid.Enabled = False - Me.btnExportGrid.Id = 4 - Me.btnExportGrid.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.export - Me.btnExportGrid.Name = "btnExportGrid" + Me.btnExportDetails.Caption = "SQL Ansicht exportieren" + Me.btnExportDetails.Enabled = False + Me.btnExportDetails.Id = 4 + Me.btnExportDetails.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.exporttoxlsx1 + Me.btnExportDetails.Name = "btnExportDetails" ' - 'BarButtonItem3 + 'btnExportMain ' - Me.BarButtonItem3.Caption = "Export als XLSX" - Me.BarButtonItem3.Id = 5 - Me.BarButtonItem3.ImageOptions.Image = CType(resources.GetObject("BarButtonItem3.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem3.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem3.Name = "BarButtonItem3" + Me.btnExportMain.Caption = "Hauptansicht exportieren" + Me.btnExportMain.Enabled = False + Me.btnExportMain.Id = 5 + Me.btnExportMain.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.exporttoxlsx + Me.btnExportMain.Name = "btnExportMain" ' 'lbResultCount ' @@ -231,11 +233,10 @@ Partial Class frmMonitor 'RibbonPageGroup2 ' Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3) - Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExportGrid) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExportMain) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExportDetails) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" Me.RibbonPageGroup2.Text = "Export" - Me.RibbonPageGroup2.Visible = False ' 'RibbonStatusBar1 ' @@ -280,7 +281,7 @@ Partial Class frmMonitor ' Me.XtraTabPageFile2.Controls.Add(Me.DocumentViewer2) Me.XtraTabPageFile2.Name = "XtraTabPageFile2" - Me.XtraTabPageFile2.Size = New System.Drawing.Size(388, 540) + Me.XtraTabPageFile2.Size = New System.Drawing.Size(388, 564) Me.XtraTabPageFile2.Text = "File 2" ' 'DocumentViewer2 @@ -289,14 +290,14 @@ Partial Class frmMonitor Me.DocumentViewer2.FileLoaded = False Me.DocumentViewer2.Location = New System.Drawing.Point(0, 0) Me.DocumentViewer2.Name = "DocumentViewer2" - Me.DocumentViewer2.Size = New System.Drawing.Size(388, 540) + Me.DocumentViewer2.Size = New System.Drawing.Size(388, 564) Me.DocumentViewer2.TabIndex = 1 ' 'XtraTabPageHtml1 ' Me.XtraTabPageHtml1.Controls.Add(Me.RichEditControl1) Me.XtraTabPageHtml1.Name = "XtraTabPageHtml1" - Me.XtraTabPageHtml1.Size = New System.Drawing.Size(388, 540) + Me.XtraTabPageHtml1.Size = New System.Drawing.Size(388, 564) Me.XtraTabPageHtml1.Text = "HTML 1" ' 'RichEditControl1 @@ -309,14 +310,14 @@ Partial Class frmMonitor Me.RichEditControl1.Name = "RichEditControl1" Me.RichEditControl1.Options.HorizontalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden Me.RichEditControl1.Options.VerticalRuler.Visibility = DevExpress.XtraRichEdit.RichEditRulerVisibility.Hidden - Me.RichEditControl1.Size = New System.Drawing.Size(388, 540) + Me.RichEditControl1.Size = New System.Drawing.Size(388, 564) Me.RichEditControl1.TabIndex = 0 ' 'XtraTabPageHtml2 ' Me.XtraTabPageHtml2.Controls.Add(Me.RichEditControl2) Me.XtraTabPageHtml2.Name = "XtraTabPageHtml2" - Me.XtraTabPageHtml2.Size = New System.Drawing.Size(388, 540) + Me.XtraTabPageHtml2.Size = New System.Drawing.Size(388, 564) Me.XtraTabPageHtml2.Text = "HTML 2" ' 'RichEditControl2 @@ -327,7 +328,7 @@ Partial Class frmMonitor Me.RichEditControl2.Location = New System.Drawing.Point(0, 0) Me.RichEditControl2.MenuManager = Me.RibbonControl1 Me.RichEditControl2.Name = "RichEditControl2" - Me.RichEditControl2.Size = New System.Drawing.Size(388, 540) + Me.RichEditControl2.Size = New System.Drawing.Size(388, 564) Me.RichEditControl2.TabIndex = 1 ' 'GridControl1 @@ -337,7 +338,7 @@ Partial Class frmMonitor Me.GridControl1.MainView = Me.GridView1 Me.GridControl1.MenuManager = Me.RibbonControl1 Me.GridControl1.Name = "GridControl1" - Me.GridControl1.Size = New System.Drawing.Size(730, 349) + Me.GridControl1.Size = New System.Drawing.Size(730, 373) Me.GridControl1.TabIndex = 0 Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) ' @@ -428,7 +429,7 @@ Partial Class frmMonitor ' Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] Me.LayoutControlGroup1.GroupBordersVisible = False - Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.lbParams}) + Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.lbParams, Me.EmptySpaceItem1}) Me.LayoutControlGroup1.Name = "LayoutControlGroup1" Me.LayoutControlGroup1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 0) Me.LayoutControlGroup1.Size = New System.Drawing.Size(235, 83) @@ -448,14 +449,22 @@ Partial Class frmMonitor 'lbParams ' Me.lbParams.AllowHotTrack = False - Me.lbParams.Location = New System.Drawing.Point(0, 36) + Me.lbParams.Location = New System.Drawing.Point(0, 60) Me.lbParams.Name = "lbParams" Me.lbParams.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) - Me.lbParams.Size = New System.Drawing.Size(215, 37) + Me.lbParams.Size = New System.Drawing.Size(215, 13) Me.lbParams.Text = "Parameter:" Me.lbParams.TextSize = New System.Drawing.Size(69, 13) Me.lbParams.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never ' + 'EmptySpaceItem1 + ' + Me.EmptySpaceItem1.AllowHotTrack = False + Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 36) + Me.EmptySpaceItem1.Name = "EmptySpaceItem1" + Me.EmptySpaceItem1.Size = New System.Drawing.Size(215, 24) + Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) + ' 'SplitContainerSQL ' Me.SplitContainerSQL.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 @@ -515,7 +524,7 @@ Partial Class frmMonitor ' Me.XtraTabPageSQL2.Controls.Add(Me.GridControl3) Me.XtraTabPageSQL2.Name = "XtraTabPageSQL2" - Me.XtraTabPageSQL2.Size = New System.Drawing.Size(730, 349) + Me.XtraTabPageSQL2.Size = New System.Drawing.Size(730, 373) Me.XtraTabPageSQL2.Text = "SQL 2" ' 'GridControl3 @@ -525,7 +534,7 @@ Partial Class frmMonitor Me.GridControl3.MainView = Me.GridView3 Me.GridControl3.MenuManager = Me.RibbonControl1 Me.GridControl3.Name = "GridControl3" - Me.GridControl3.Size = New System.Drawing.Size(730, 349) + Me.GridControl3.Size = New System.Drawing.Size(730, 373) Me.GridControl3.TabIndex = 1 Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3}) ' @@ -538,7 +547,7 @@ Partial Class frmMonitor ' Me.XtraTabPageSQL3.Controls.Add(Me.GridControl4) Me.XtraTabPageSQL3.Name = "XtraTabPageSQL3" - Me.XtraTabPageSQL3.Size = New System.Drawing.Size(730, 349) + Me.XtraTabPageSQL3.Size = New System.Drawing.Size(730, 373) Me.XtraTabPageSQL3.Text = "SQL 3" ' 'GridControl4 @@ -548,7 +557,7 @@ Partial Class frmMonitor Me.GridControl4.MainView = Me.GridView4 Me.GridControl4.MenuManager = Me.RibbonControl1 Me.GridControl4.Name = "GridControl4" - Me.GridControl4.Size = New System.Drawing.Size(730, 349) + Me.GridControl4.Size = New System.Drawing.Size(730, 373) Me.GridControl4.TabIndex = 1 Me.GridControl4.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView4}) ' @@ -561,7 +570,7 @@ Partial Class frmMonitor ' Me.XtraTabPageSQL4.Controls.Add(Me.GridControl1) Me.XtraTabPageSQL4.Name = "XtraTabPageSQL4" - Me.XtraTabPageSQL4.Size = New System.Drawing.Size(730, 349) + Me.XtraTabPageSQL4.Size = New System.Drawing.Size(730, 373) Me.XtraTabPageSQL4.Text = "SQL 4" ' 'SplitContainerFileHTML @@ -609,7 +618,7 @@ Partial Class frmMonitor Me.XtraTabPage4.ImageOptions.SvgImage = Global.DigitalData.GUIs.Monitor.My.Resources.Resources.bo_dashboard Me.XtraTabPage4.ImageOptions.SvgImageSize = New System.Drawing.Size(16, 16) Me.XtraTabPage4.Name = "XtraTabPage4" - Me.XtraTabPage4.Size = New System.Drawing.Size(1377, 563) + Me.XtraTabPage4.Size = New System.Drawing.Size(1377, 587) Me.XtraTabPage4.Text = "Dashboard" ' 'XtraSaveFileDialog1 @@ -664,6 +673,7 @@ Partial Class frmMonitor CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.lbParams, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerSQL.Panel1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerSQL.Panel2, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerSQL.Panel2.ResumeLayout(False) @@ -733,10 +743,10 @@ Partial Class frmMonitor Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection Friend WithEvents ApplicationMenu1 As DevExpress.XtraBars.Ribbon.ApplicationMenu Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents btnExportGrid As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnExportDetails As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents XtraSaveFileDialog1 As DevExpress.XtraEditors.XtraSaveFileDialog - Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnExportMain As DevExpress.XtraBars.BarButtonItem Friend WithEvents lbResultCount As DevExpress.XtraBars.BarStaticItem Friend WithEvents AdornerUIManager2 As DevExpress.Utils.VisualEffects.AdornerUIManager Friend WithEvents btnReloadSearches As DevExpress.XtraBars.BarButtonItem @@ -751,4 +761,5 @@ Partial Class frmMonitor Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup Friend WithEvents lbParams As DevExpress.XtraLayout.SimpleLabelItem + Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem End Class diff --git a/GUIs.Monitor/frmMonitor.resx b/GUIs.Monitor/frmMonitor.resx index 8abaa25..2e58f63 100644 --- a/GUIs.Monitor/frmMonitor.resx +++ b/GUIs.Monitor/frmMonitor.resx @@ -121,51 +121,6 @@ 183, 17 - - - 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 diff --git a/GUIs.Monitor/frmMonitor.vb b/GUIs.Monitor/frmMonitor.vb index 0369f29..e747445 100644 --- a/GUIs.Monitor/frmMonitor.vb +++ b/GUIs.Monitor/frmMonitor.vb @@ -1,27 +1,26 @@ -Imports DevExpress.XtraGrid +Imports System.ComponentModel +Imports DevExpress.Utils +Imports DevExpress.XtraEditors +Imports DevExpress.XtraEditors.Controls +Imports DevExpress.XtraEditors.Repository +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Views.Grid +Imports DevExpress.XtraRichEdit +Imports DevExpress.XtraTab +Imports DevExpress.XtraTreeList +Imports DevExpress.XtraTreeList.Columns Imports DevExpress.XtraTreeList.Nodes +Imports DigitalData.Controls.DocumentViewer Imports DigitalData.Controls.SQLConfig Imports DigitalData.GUIs.Common +Imports DigitalData.GUIs.Monitor.Constants Imports DigitalData.Modules.Config Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging -Imports DigitalData.Modules.Language.Utils Imports DigitalData.Modules.Language +Imports DigitalData.Modules.Language.Utils +Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Patterns -Imports DevExpress.XtraTab -Imports DigitalData.Controls.DocumentViewer -Imports DevExpress.XtraEditors -Imports DevExpress.XtraRichEdit -Imports DevExpress.XtraTreeList.Columns -Imports DevExpress.XtraEditors.Repository -Imports DevExpress.Utils -Imports DevExpress.XtraEditors.Controls -Imports DigitalData.GUIs.Monitor.SearchLoader -Imports DevExpress.XtraLayout -Imports DevExpress.XtraTreeList -Imports DevExpress.XtraGrid.Columns -Imports System.ComponentModel Public Class frmMonitor Private ReadOnly ColumnMarkers As New List(Of String) From {"[HTML]", "[SQL]", "[FILENAME]"} @@ -35,9 +34,6 @@ Public Class frmMonitor Private ReadOnly DisplayColumns As New List(Of String) From {"COLUMN1", "COLUMN2", "COLUMN3", "ADDED_WHEN", "STATE", "ICON"} - - - Private SQLResultGrids As List(Of GridControl) Private SQLResultTabs As List(Of XtraTabPage) Private SQLResultGridIndex As Integer = 0 @@ -59,7 +55,7 @@ Public Class frmMonitor Private Const STATE_WARNING As String = "WARNING" Private Const STATE_WAITING As String = "WAITING" Private Const STATE_HIGHLIGHT As String = "HIGHLIGHT" - Private Const LIST_CONTROL_NULL_TEXT As String = "Kein Wert ausgewählt" + Private MarkedColumns As New List(Of GridColumn) Private ActiveSearch As Search = Nothing Private LastSearch As Search = Nothing @@ -86,6 +82,7 @@ Public Class frmMonitor Private GridBuilder As GridBuilder Private ControlHelper As Common.ControlHelper Private SearchLoader As SearchLoader + Private ParamLoader As ParameterLoader Private LogConfig As LogConfig Private Logger As Logger Private ConfigManager As ConfigManager(Of Config) @@ -129,6 +126,7 @@ Public Class frmMonitor Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString) Database = New MSSQLServer(LogConfig, oConnectionString) SearchLoader = New SearchLoader(LogConfig, ConfigManager.Config, Database) + ParamLoader = New ParameterLoader(LogConfig, Database, LayoutControl1) GridBuilder = New GridBuilder() InitGrid() @@ -157,12 +155,12 @@ Public Class frmMonitor For Each oGrid In SQLResultGrids AddHandler oGrid.Enter, Sub() ActiveSQLResultGrid = oGrid - btnExportGrid.Enabled = True + btnExportDetails.Enabled = True End Sub AddHandler oGrid.Leave, Sub() ActiveSQLResultGrid = Nothing - btnExportGrid.Enabled = False + btnExportDetails.Enabled = False End Sub Next @@ -217,12 +215,10 @@ Public Class frmMonitor AdornerUIManager2.Hide() AdornerUIManager2.Elements.Clear() - 'Dim oSQL As String = $"EXEC [{ConfigManager.Config.DBPrefix}].[dbo].[PRDD_MONITORING_GET_TREEVIEW_RESULT] '{cmbSearches.EditValue}','irgendwas','irgendwas','irgendwas',1" Dim oSQL As String = oSearch.SQLCommand Dim oControls As New List(Of Control) For Each oItem As Control In LayoutControl1.Controls - Dim oParam = oSearch.Parameters. Where(Function(param) param.PatternTitle = oItem.Name). FirstOrDefault() @@ -241,7 +237,6 @@ Public Class frmMonitor oMissingParams = True End If - Next AdornerUIManager2.Show() @@ -254,7 +249,7 @@ Public Class frmMonitor oSQL = Patterns.ReplaceControlValues(oSQL, oControls) Dim oTable As DataTable = Database.GetDatatable(oSQL) - If oSearch.ReturnType = ReturnTypeEnum.TreeView Then + If oSearch.ReturnType = Constants.ReturnTypeEnum.TreeView Then GridControlResults.Visible = False GridControlResults.Dock = DockStyle.None @@ -302,6 +297,7 @@ Public Class frmMonitor GridControlResults.DataSource = oTable GridViewResults.PopulateColumns() + GridBuilder.SetDateTimeColumns(GridViewResults) MarkedColumns = GridViewResults.Columns.AsEnumerable. Where(Function(column) @@ -321,6 +317,8 @@ Public Class frmMonitor Workspace.LoadWorkspace(oSearch.Id.ToString) LastLoadedSearch = oSearch + btnExportMain.Enabled = True + Return True Catch ex As Exception FormHelper.ShowErrorMessage(ex, "LoadData") @@ -352,6 +350,9 @@ Public Class frmMonitor Private Sub InitTreeListColumns(pMaxLength As Integer) Dim oColumn1 = TreeListResults.Columns.Item("COLUMN1") + Dim oColumn2 = TreeListResults.Columns.Item("COLUMN2") + Dim oColumn3 = TreeListResults.Columns.Item("COLUMN3") + Dim oAddedWhenColumn = TreeListResults.Columns.Item("ADDED_WHEN") Dim oStateColumn = TreeListResults.Columns.Item("STATE") Dim oIconColumn = TreeListResults.Columns.Item("ICON") @@ -364,10 +365,24 @@ Public Class frmMonitor Dim oColumnLength = pMaxLength * 5 With oColumn1 + .Caption = "Titel" .MinWidth = oColumnLength .MaxWidth = oColumnLength .Width = oColumnLength .OptionsColumn.AllowSize = False + .OptionsColumn.AllowSort = False + End With + + With oColumn2 + .Caption = "Wert 1" + End With + + With oColumn3 + .Caption = "Wert 2" + End With + + With oAddedWhenColumn + .Caption = "Datum" End With With oStateColumn @@ -377,6 +392,7 @@ Public Class frmMonitor .Width = 25 .Caption = " " .OptionsColumn.AllowSize = False + .OptionsColumn.AllowSort = False .ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.Success) End With @@ -387,6 +403,7 @@ Public Class frmMonitor .Width = 25 .Caption = " " .OptionsColumn.AllowSize = False + .OptionsColumn.AllowSort = False .ImageOptions.Image = SvgImageCollection1.GetImage(NodeImage.SQL) End With End Sub @@ -415,6 +432,9 @@ Public Class frmMonitor SplitContainerSQL.Collapsed = True SplitContainerFileHTML.Collapsed = True + btnExportMain.Enabled = False + btnExportDetails.Enabled = False + lbResultCount.Caption = String.Format(lbResultCount.Tag, 0) LoadSearch() @@ -439,12 +459,9 @@ Public Class frmMonitor AdornerUIManager2.Hide() AdornerUIManager2.Elements.Clear() - Root.Clear(disposeItemAndControls:=True) + Root.Clear(disposeItemAndControls:=False) LayoutControl1.Clear(True, True) - 'LayoutControl1.Items.Clear() - ' LayoutControl1.Controls.Clear() - TreeListResults.DataSource = Nothing GridControlResults.DataSource = Nothing @@ -456,107 +473,19 @@ Public Class frmMonitor End If - For Each oParam As SearchParameter In oSearch.Parameters - Dim oControl As Control + ParamLoader.LoadParameters(oSearch) - Select Case oParam.DataType - Case DataTypeEnum.Boolean - Dim oCheckbox = New CheckEdit With { - .Text = oParam.Title - } - - oControl = oCheckbox - - - Case DataTypeEnum.Date - oControl = New DateEdit() - - Case DataTypeEnum.String - Select Case oParam.ItemType - Case ItemTypeEnum.List - Dim oCombobox = New ComboBoxEdit() With { - .Name = oParam.PatternTitle, - .Tag = oParam.PatternTitle - } - Dim oClearButton = GetClearButtonForControl(oCombobox) - Dim oItems = oParam.ItemString.Split(";"c).ToList() - oCombobox.Properties.Items.AddRange(oItems) - oCombobox.Properties.NullText = LIST_CONTROL_NULL_TEXT - oCombobox.Properties.Buttons.Add(oClearButton) - oControl = oCombobox - - Case ItemTypeEnum.SQL - Dim oGridCombobox = New LookUpEdit() With { - .Name = oParam.PatternTitle, - .Tag = oParam.PatternTitle - } - Dim oClearButton = GetClearButtonForControl(oGridCombobox) - Dim oSQL = oParam.ItemString - Dim oTable = Database.GetDatatable(oSQL) - oGridCombobox.Properties.DataSource = oTable - oGridCombobox.Properties.DisplayMember = oTable.Columns.Item(0).ColumnName - oGridCombobox.Properties.ValueMember = oTable.Columns.Item(0).ColumnName - oGridCombobox.Properties.NullText = LIST_CONTROL_NULL_TEXT - oGridCombobox.Properties.Buttons.Add(oClearButton) - oControl = oGridCombobox - - Case Else - oControl = New TextEdit() - End Select - - Case Else - oControl = New TextEdit() - - End Select - - oControl.Name = oParam.PatternTitle - oControl.Tag = oParam.PatternTitle - - Dim oItem As LayoutControlItem = LayoutControl1.AddItem() - oItem.Text = oParam.Title - oItem.Control = oControl - oItem.TextLocation = Locations.Top - oItem.TextToControlDistance = 3 - oItem.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 10, 0) - - - Next Catch ex As Exception - + Logger.Error(ex) End Try End Sub - Private Function GetClearButtonForControl(pControl As Control) As EditorButton - Dim oClearButton As New EditorButton() With { - .Kind = ButtonPredefines.Clear, - .Tag = pControl.Name - } - AddHandler oClearButton.Click, AddressOf ClearButton_Click - Return oClearButton - End Function - - Private Sub ClearButton_Click(sender As Object, e As EventArgs) - Dim oButton As EditorButton = sender - Dim oControlName As String = oButton.Tag.ToString - - Dim oControl = LayoutControl1.Controls.Find(oControlName, True).SingleOrDefault() - - Select Case oControl.GetType - Case GetType(LookUpEdit) - DirectCast(oControl, LookUpEdit).EditValue = Nothing - - Case GetType(ComboBoxEdit) - DirectCast(oControl, ComboBoxEdit).EditValue = Nothing - End Select - - End Sub - Private Function GetParameterItems(pParam As SearchParameter) As Object Select Case pParam.ItemType - Case ItemTypeEnum.List + Case Constants.ItemTypeEnum.List Return pParam.ItemString.Split(";"c).ToList() - Case ItemTypeEnum.SQL + Case Constants.ItemTypeEnum.SQL Dim oSQL = pParam.ItemString Dim oTable = Database.GetDatatable(oSQL) Return oTable @@ -596,6 +525,8 @@ Public Class frmMonitor SplitContainerSQL.Collapsed = True SplitContainerFileHTML.Collapsed = True + + For Each oSQLCommand As KeyValuePair(Of String, String) In oSQLCommands Try Dim oExtracted = ExtractTitle(oSQLCommand.Value) @@ -611,6 +542,10 @@ Public Class frmMonitor Dim oGridIndex = Integer.Parse(oSQLCommand.Key.Last()) - 1 Dim oGridControl As GridControl = SQLResultGrids.Item(oGridIndex) + If oGridIndex = 0 Then + ActiveSQLResultGrid = oGridControl + End If + FillResultGrid(oGridControl, oTable, oTitle) Catch ex As Exception Logger.Error(ex) @@ -618,6 +553,8 @@ Public Class frmMonitor End Try Next + + For Each oFile As KeyValuePair(Of String, String) In oFilePaths Try Dim oExtracted = ExtractTitle(oFile.Value) @@ -779,44 +716,6 @@ Public Class frmMonitor e.Handled = False End Sub - Private Sub TreeListResults_GetStateImage(sender As Object, e As DevExpress.XtraTreeList.GetStateImageEventArgs) - 'Dim oValues As Dictionary(Of String, String) = GetValuesFromNode(e.Node, DataColumns) - 'Dim oSQLCommands = oValues. - ' Where(Function(v) v.Key.StartsWith("SELECT")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oFilePaths = oValues. - ' Where(Function(v) v.Key.StartsWith("DOCVIEW")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oHtmlDocuments = oValues. - ' Where(Function(v) v.Key.StartsWith("HTML")). - ' Where(Function(v) v.Value IsNot Nothing). - ' Count() - - 'Dim oIconColumn = TreeListResults.Columns.Item("ICON") - 'Dim oIcon = NotNull(e.Node.GetValue(oIconColumn), Nothing) - 'Dim oStateColumn = TreeListResults.Columns.Item("STATE") - 'Dim oState = NotNull(e.Node.GetValue(oStateColumn), Nothing) - - 'If oSQLCommands > 0 Then - ' e.NodeImageIndex = NodeImage.SQL - 'ElseIf oFilePaths > 0 Then - ' e.NodeImageIndex = NodeImage.File - 'ElseIf oHtmlDocuments > 0 Then - ' e.NodeImageIndex = NodeImage.Mail - 'Else - ' If oState IsNot Nothing AndAlso StateIcons.ContainsKey(oState) Then - ' Dim oIconIndex = StateIcons.Item(oState) - ' e.NodeImageIndex = oIconIndex - ' Else - ' e.NodeImageIndex = NodeImage.Default - ' End If - 'End If - End Sub - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick Dim oSQLConfig As New frmSQLConfig(LogConfig) With { .ConnectionString = ConfigManager.Config.ConnectionString @@ -832,21 +731,34 @@ Public Class frmMonitor End If End Sub - Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportGrid.ItemClick - If ActiveSQLResultGrid IsNot Nothing Then - XtraSaveFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx" + Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportDetails.ItemClick + If ActiveSQLResultGrid Is Nothing Then + Exit Sub + End If - If XtraSaveFileDialog1.ShowDialog() = DialogResult.OK Then - ActiveSQLResultGrid.ExportToXlsx(XtraSaveFileDialog1.FileName) - End If + XtraSaveFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx" + XtraSaveFileDialog1.FileName = $"{ActiveSearch.Title}_Detail.xlsx" + + If XtraSaveFileDialog1.ShowDialog() = DialogResult.OK Then + ActiveSQLResultGrid.ExportToXlsx(XtraSaveFileDialog1.FileName) End If End Sub - Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick + Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportMain.ItemClick + If ActiveSearch Is Nothing Then + Exit Sub + End If + XtraSaveFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx" + XtraSaveFileDialog1.FileName = $"{ActiveSearch.Title}.xlsx" If XtraSaveFileDialog1.ShowDialog() = DialogResult.OK Then - TreeListResults.ExportToXlsx(XtraSaveFileDialog1.FileName) + If ActiveSearch.ReturnType = ReturnTypeEnum.TreeView Then + TreeListResults.ExportToXlsx(XtraSaveFileDialog1.FileName) + Else + GridControlResults.ExportToXlsx(XtraSaveFileDialog1.FileName) + End If + End If End Sub @@ -914,6 +826,7 @@ Public Class frmMonitor End If HideAllTabs() + ActiveSQLResultGrid = Nothing Try Dim oRow As DataRow = GridViewResults.GetDataRow(GridViewResults.FocusedRowHandle) @@ -942,9 +855,15 @@ Public Class frmMonitor Continue For End If - Dim oGridControl As GridControl = SQLResultGrids.Item(oGridResultIndex) Dim oTitle = oColumn.FieldName.Replace("[SQL]", "").Trim() + Dim oGridControl As GridControl = SQLResultGrids.Item(oGridResultIndex) + + If oGridResultIndex = 0 Then + ActiveSQLResultGrid = oGridControl + End If + oGridResultIndex += 1 + FillResultGrid(oGridControl, oTable, oTitle) SplitContainerSQL.Collapsed = False @@ -971,8 +890,14 @@ Public Class frmMonitor Next - Catch ex As Exception + If ActiveSQLResultGrid Is Nothing Then + btnExportDetails.Enabled = False + Else + btnExportDetails.Enabled = True + End If + Catch ex As Exception + Logger.Error(ex) End Try End Sub