DateColumn, Xlsx Export, Column Headers, Default Values
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user