Rework Profiles, Add Validation, Add Placeholders, Add Controls
This commit is contained in:
parent
ad289ae666
commit
9b7c1d0e0a
@ -4,5 +4,5 @@ Public Class Config
|
|||||||
<ConnectionString>
|
<ConnectionString>
|
||||||
Public Property ConnectionString As String = String.Empty
|
Public Property ConnectionString As String = String.Empty
|
||||||
Public Property DBPrefix As String = "DD_ECM"
|
Public Property DBPrefix As String = "DD_ECM"
|
||||||
Public Property SearchSQL As String = $"SELECT * FROM {DBPrefix}.[dbo].TBDD_MONITORING_PROFILE WHERE ACTIVE = 1 ORDER BY SEQUENCE"
|
Public Property SearchSQL As String = $"SELECT * FROM {DBPrefix}.[dbo].[TBMON_PROFILE] WHERE ACTIVE = 1 ORDER BY SEQUENCE"
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -97,14 +97,19 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="DigitalData.Modules.Patterns">
|
||||||
|
<HintPath>..\..\DDMonorepo\Modules.Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="PresentationCore" />
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.IO.Compression" />
|
<Reference Include="System.IO.Compression" />
|
||||||
|
<Reference Include="System.Runtime.Remoting" />
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
<Reference Include="System.Transactions" />
|
<Reference Include="System.Transactions" />
|
||||||
@ -116,6 +121,8 @@
|
|||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="UIAutomationClient" />
|
||||||
|
<Reference Include="WindowsBase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
<Import Include="Microsoft.VisualBasic" />
|
||||||
|
|||||||
@ -10,6 +10,27 @@ Public Class SearchLoader
|
|||||||
Private Database As MSSQLServer
|
Private Database As MSSQLServer
|
||||||
|
|
||||||
Public Searches As New List(Of Search)
|
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)
|
Public Sub New(pLogConfig As LogConfig, pConfig As Config, pDatabase As MSSQLServer)
|
||||||
MyBase.New(pLogConfig)
|
MyBase.New(pLogConfig)
|
||||||
@ -23,11 +44,18 @@ Public Class SearchLoader
|
|||||||
Dim oTable = Database.GetDatatable(oSQL)
|
Dim oTable = Database.GetDatatable(oSQL)
|
||||||
|
|
||||||
For Each oRow As DataRow In oTable.Rows
|
For Each oRow As DataRow In oTable.Rows
|
||||||
|
Dim oSearchId = oRow.ItemEx("GUID", 0)
|
||||||
|
Dim oParams = Parameters.
|
||||||
|
Where(Function(param) param.SearchId = oSearchId).
|
||||||
|
ToList()
|
||||||
|
|
||||||
Searches.Add(New Search With {
|
Searches.Add(New Search With {
|
||||||
.Id = CInt(oRow.Item("GUID")),
|
.Id = oSearchId,
|
||||||
.Title = oRow.ItemEx("TITLE", ""),
|
.Title = oRow.ItemEx("TITLE", String.Empty),
|
||||||
.Description = oRow.ItemEx("DESCRIPTION", ""),
|
.Description = oRow.ItemEx("CAPTION", String.Empty),
|
||||||
.TypeName = "Varchar"
|
.ReturnType = GetReturnType(oRow.ItemEx("RETURN_TYPE", String.Empty)),
|
||||||
|
.SQLCommand = oRow.ItemEx("EXEC_SQL", String.Empty),
|
||||||
|
.Parameters = oParams
|
||||||
})
|
})
|
||||||
Next
|
Next
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -37,42 +65,98 @@ Public Class SearchLoader
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function LoadSearchAttributes(pSearchId As Integer) As List(Of SearchAttribute)
|
Public Function GetItemType(pTypeString As String) As ItemTypeEnum
|
||||||
Dim oSQL As String = $"SELECT * FROM TBDD_MONITORING_PROFILE_ATTRIBUTES WHERE ACTIVE = 1 AND MONITOR_PROFILE_ID = {pSearchId} ORDER BY SEQUENCE"
|
Select Case pTypeString
|
||||||
|
Case "LIST"
|
||||||
|
Return ItemTypeEnum.List
|
||||||
|
Case "SQL"
|
||||||
|
Return ItemTypeEnum.SQL
|
||||||
|
Case Else
|
||||||
|
Return ItemTypeEnum.Undefined
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetReturnType(pTypeString As String) As ReturnTypeEnum
|
||||||
|
Select Case pTypeString
|
||||||
|
Case "Table"
|
||||||
|
Return ReturnTypeEnum.Table
|
||||||
|
Case "TreeView"
|
||||||
|
Return ReturnTypeEnum.TreeView
|
||||||
|
Case Else
|
||||||
|
Return ReturnTypeEnum.Undefined
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetDataType(pTypeString As String) As DataTypeEnum
|
||||||
|
Select Case pTypeString
|
||||||
|
Case "BIT"
|
||||||
|
Return DataTypeEnum.Boolean
|
||||||
|
Case "VARCHAR"
|
||||||
|
Return DataTypeEnum.String
|
||||||
|
Case "INT"
|
||||||
|
Return DataTypeEnum.Integer
|
||||||
|
Case "DATE"
|
||||||
|
Return DataTypeEnum.Date
|
||||||
|
Case Else
|
||||||
|
Return DataTypeEnum.Undefined
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Sub LoadSearchParameters()
|
||||||
|
Dim oSQL As String = $"SELECT * FROM TBMON_PROFILE_PARAM WHERE ACTIVE = 1 ORDER BY SEQUENCE"
|
||||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||||
Dim oAttributes As New List(Of SearchAttribute)
|
Dim oParameters As New List(Of SearchParameter)
|
||||||
|
|
||||||
For Each oRow As DataRow In oTable.Rows
|
For Each oRow As DataRow In oTable.Rows
|
||||||
oAttributes.Add(New SearchAttribute With {
|
oParameters.Add(New SearchParameter With {
|
||||||
.Id = oRow.ItemEx("GUID", 0),
|
.Id = oRow.ItemEx("GUID", 0),
|
||||||
.Caption = oRow.ItemEx("CAPTION", String.Empty),
|
.Title = oRow.ItemEx("CAPTION", String.Empty),
|
||||||
.Description = oRow.ItemEx("DESCRIPTION", String.Empty),
|
.Description = oRow.ItemEx("DESCRIPTION", String.Empty),
|
||||||
.DataType = oRow.ItemEx("DATA_TYPE", "VARCHAR")
|
.DataType = GetDataType(oRow.ItemEx("DATA_TYPE", "VARCHAR")),
|
||||||
|
.ItemString = oRow.ItemEx("ITEMS", String.Empty),
|
||||||
|
.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)
|
||||||
})
|
})
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Return oAttributes
|
Parameters = oParameters
|
||||||
End Function
|
End Sub
|
||||||
|
|
||||||
Public Class Search
|
Public Class Search
|
||||||
Public Id As Integer
|
Public Id As Integer
|
||||||
Public Title As String
|
Public Title As String
|
||||||
Public Description As String
|
Public Description As String
|
||||||
Public TypeName As String
|
Public SQLCommand As String
|
||||||
|
Public ReturnType As ReturnTypeEnum
|
||||||
|
|
||||||
|
Public Parameters As List(Of SearchParameter)
|
||||||
|
|
||||||
Public Overrides Function ToString() As String
|
Public Overrides Function ToString() As String
|
||||||
Return Title
|
Return Title
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Public Class SearchAttribute
|
Public Class SearchParameter
|
||||||
Public Id As Integer
|
Public Id As Integer
|
||||||
Public Caption As String
|
Public Title As String
|
||||||
|
Public PatternTitle As String
|
||||||
Public Description As String
|
Public Description As String
|
||||||
Public DataType 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
|
Public Overrides Function ToString() As String
|
||||||
Return Caption
|
Return Title
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|||||||
39
GUIs.Monitor/frmMonitor.Designer.vb
generated
39
GUIs.Monitor/frmMonitor.Designer.vb
generated
@ -70,6 +70,8 @@ Partial Class frmMonitor
|
|||||||
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
||||||
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
|
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
|
Me.GridControlResults = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.GridViewResults = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
Me.XtraTabControl3 = New DevExpress.XtraTab.XtraTabControl()
|
Me.XtraTabControl3 = New DevExpress.XtraTab.XtraTabControl()
|
||||||
Me.XtraTabPageSQL1 = New DevExpress.XtraTab.XtraTabPage()
|
Me.XtraTabPageSQL1 = New DevExpress.XtraTab.XtraTabPage()
|
||||||
Me.GridControl2 = New DevExpress.XtraGrid.GridControl()
|
Me.GridControl2 = New DevExpress.XtraGrid.GridControl()
|
||||||
@ -86,6 +88,7 @@ Partial Class frmMonitor
|
|||||||
Me.XtraTabPage3 = New DevExpress.XtraTab.XtraTabPage()
|
Me.XtraTabPage3 = New DevExpress.XtraTab.XtraTabPage()
|
||||||
Me.XtraTabPage4 = New DevExpress.XtraTab.XtraTabPage()
|
Me.XtraTabPage4 = New DevExpress.XtraTab.XtraTabPage()
|
||||||
Me.XtraSaveFileDialog1 = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components)
|
Me.XtraSaveFileDialog1 = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components)
|
||||||
|
Me.AdornerUIManager2 = New DevExpress.Utils.VisualEffects.AdornerUIManager(Me.components)
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.ApplicationMenu1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@ -116,6 +119,8 @@ Partial Class frmMonitor
|
|||||||
CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SplitContainerControl3.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SplitContainerControl3.Panel2.SuspendLayout()
|
Me.SplitContainerControl3.Panel2.SuspendLayout()
|
||||||
Me.SplitContainerControl3.SuspendLayout()
|
Me.SplitContainerControl3.SuspendLayout()
|
||||||
|
CType(Me.GridControlResults, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridViewResults, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.XtraTabControl3.SuspendLayout()
|
Me.XtraTabControl3.SuspendLayout()
|
||||||
Me.XtraTabPageSQL1.SuspendLayout()
|
Me.XtraTabPageSQL1.SuspendLayout()
|
||||||
@ -137,6 +142,7 @@ Partial Class frmMonitor
|
|||||||
CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.XtraTabControl2.SuspendLayout()
|
Me.XtraTabControl2.SuspendLayout()
|
||||||
Me.XtraTabPage3.SuspendLayout()
|
Me.XtraTabPage3.SuspendLayout()
|
||||||
|
CType(Me.AdornerUIManager2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'RibbonControl1
|
'RibbonControl1
|
||||||
@ -379,12 +385,12 @@ Partial Class frmMonitor
|
|||||||
'TreeListResults
|
'TreeListResults
|
||||||
'
|
'
|
||||||
Me.TreeListResults.Columns.AddRange(New DevExpress.XtraTreeList.Columns.TreeListColumn() {Me.colState, Me.colICON, Me.colCOLUMN1, Me.colCOLUMN2, Me.colCOLUMN3, Me.colADDED_WHEN, Me.TreeListColumn1, Me.TreeListColumn2, Me.TreeListColumn3, Me.TreeListColumn4, Me.TreeListColumn5, Me.TreeListColumn6, Me.TreeListColumn7, Me.TreeListColumn8})
|
Me.TreeListResults.Columns.AddRange(New DevExpress.XtraTreeList.Columns.TreeListColumn() {Me.colState, Me.colICON, Me.colCOLUMN1, Me.colCOLUMN2, Me.colCOLUMN3, Me.colADDED_WHEN, Me.TreeListColumn1, Me.TreeListColumn2, Me.TreeListColumn3, Me.TreeListColumn4, Me.TreeListColumn5, Me.TreeListColumn6, Me.TreeListColumn7, Me.TreeListColumn8})
|
||||||
Me.TreeListResults.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TreeListResults.Location = New System.Drawing.Point(23, 13)
|
||||||
Me.TreeListResults.Location = New System.Drawing.Point(0, 0)
|
|
||||||
Me.TreeListResults.MenuManager = Me.RibbonControl1
|
Me.TreeListResults.MenuManager = Me.RibbonControl1
|
||||||
Me.TreeListResults.Name = "TreeListResults"
|
Me.TreeListResults.Name = "TreeListResults"
|
||||||
Me.TreeListResults.Size = New System.Drawing.Size(713, 181)
|
Me.TreeListResults.Size = New System.Drawing.Size(313, 158)
|
||||||
Me.TreeListResults.TabIndex = 4
|
Me.TreeListResults.TabIndex = 4
|
||||||
|
Me.TreeListResults.Visible = False
|
||||||
'
|
'
|
||||||
'colState
|
'colState
|
||||||
'
|
'
|
||||||
@ -539,6 +545,7 @@ Partial Class frmMonitor
|
|||||||
'
|
'
|
||||||
'SplitContainerControl3.Panel1
|
'SplitContainerControl3.Panel1
|
||||||
'
|
'
|
||||||
|
Me.SplitContainerControl3.Panel1.Controls.Add(Me.GridControlResults)
|
||||||
Me.SplitContainerControl3.Panel1.Controls.Add(Me.TreeListResults)
|
Me.SplitContainerControl3.Panel1.Controls.Add(Me.TreeListResults)
|
||||||
Me.SplitContainerControl3.Panel1.Text = "Panel1"
|
Me.SplitContainerControl3.Panel1.Text = "Panel1"
|
||||||
'
|
'
|
||||||
@ -550,6 +557,22 @@ Partial Class frmMonitor
|
|||||||
Me.SplitContainerControl3.SplitterPosition = 181
|
Me.SplitContainerControl3.SplitterPosition = 181
|
||||||
Me.SplitContainerControl3.TabIndex = 5
|
Me.SplitContainerControl3.TabIndex = 5
|
||||||
'
|
'
|
||||||
|
'GridControlResults
|
||||||
|
'
|
||||||
|
Me.GridControlResults.Location = New System.Drawing.Point(342, 13)
|
||||||
|
Me.GridControlResults.MainView = Me.GridViewResults
|
||||||
|
Me.GridControlResults.MenuManager = Me.RibbonControl1
|
||||||
|
Me.GridControlResults.Name = "GridControlResults"
|
||||||
|
Me.GridControlResults.Size = New System.Drawing.Size(368, 158)
|
||||||
|
Me.GridControlResults.TabIndex = 5
|
||||||
|
Me.GridControlResults.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewResults})
|
||||||
|
Me.GridControlResults.Visible = False
|
||||||
|
'
|
||||||
|
'GridViewResults
|
||||||
|
'
|
||||||
|
Me.GridViewResults.GridControl = Me.GridControlResults
|
||||||
|
Me.GridViewResults.Name = "GridViewResults"
|
||||||
|
'
|
||||||
'XtraTabControl3
|
'XtraTabControl3
|
||||||
'
|
'
|
||||||
Me.XtraTabControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.XtraTabControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@ -687,6 +710,10 @@ Partial Class frmMonitor
|
|||||||
'
|
'
|
||||||
Me.XtraSaveFileDialog1.FileName = "XtraSaveFileDialog1"
|
Me.XtraSaveFileDialog1.FileName = "XtraSaveFileDialog1"
|
||||||
'
|
'
|
||||||
|
'AdornerUIManager2
|
||||||
|
'
|
||||||
|
Me.AdornerUIManager2.Owner = Me
|
||||||
|
'
|
||||||
'frmMonitor
|
'frmMonitor
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@ -731,6 +758,8 @@ Partial Class frmMonitor
|
|||||||
Me.SplitContainerControl3.Panel2.ResumeLayout(False)
|
Me.SplitContainerControl3.Panel2.ResumeLayout(False)
|
||||||
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.SplitContainerControl3.ResumeLayout(False)
|
Me.SplitContainerControl3.ResumeLayout(False)
|
||||||
|
CType(Me.GridControlResults, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridViewResults, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.XtraTabControl3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.XtraTabControl3.ResumeLayout(False)
|
Me.XtraTabControl3.ResumeLayout(False)
|
||||||
Me.XtraTabPageSQL1.ResumeLayout(False)
|
Me.XtraTabPageSQL1.ResumeLayout(False)
|
||||||
@ -752,6 +781,7 @@ Partial Class frmMonitor
|
|||||||
CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.XtraTabControl2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.XtraTabControl2.ResumeLayout(False)
|
Me.XtraTabControl2.ResumeLayout(False)
|
||||||
Me.XtraTabPage3.ResumeLayout(False)
|
Me.XtraTabPage3.ResumeLayout(False)
|
||||||
|
CType(Me.AdornerUIManager2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
Me.PerformLayout()
|
Me.PerformLayout()
|
||||||
|
|
||||||
@ -819,4 +849,7 @@ Partial Class frmMonitor
|
|||||||
Friend WithEvents TreeListColumn6 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
Friend WithEvents TreeListColumn6 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
||||||
Friend WithEvents TreeListColumn7 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
Friend WithEvents TreeListColumn7 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
||||||
Friend WithEvents TreeListColumn8 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
Friend WithEvents TreeListColumn8 As DevExpress.XtraTreeList.Columns.TreeListColumn
|
||||||
|
Friend WithEvents AdornerUIManager2 As DevExpress.Utils.VisualEffects.AdornerUIManager
|
||||||
|
Friend WithEvents GridControlResults As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents GridViewResults As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -196,4 +196,7 @@
|
|||||||
<metadata name="XtraSaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="XtraSaveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>335, 17</value>
|
<value>335, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="AdornerUIManager2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>494, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
@ -8,6 +8,7 @@ Imports DigitalData.Modules.Database
|
|||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
Imports DigitalData.Modules.Language.Utils
|
Imports DigitalData.Modules.Language.Utils
|
||||||
Imports DigitalData.Modules.Language
|
Imports DigitalData.Modules.Language
|
||||||
|
Imports DigitalData.Modules.Patterns
|
||||||
Imports DevExpress.XtraTab
|
Imports DevExpress.XtraTab
|
||||||
Imports DigitalData.Controls.DocumentViewer
|
Imports DigitalData.Controls.DocumentViewer
|
||||||
Imports DevExpress.XtraEditors
|
Imports DevExpress.XtraEditors
|
||||||
@ -20,12 +21,14 @@ Imports DigitalData.GUIs.Monitor.SearchLoader
|
|||||||
Imports DevExpress.XtraLayout
|
Imports DevExpress.XtraLayout
|
||||||
Imports DevExpress.XtraTreeList
|
Imports DevExpress.XtraTreeList
|
||||||
|
|
||||||
|
|
||||||
Public Class frmMonitor
|
Public Class frmMonitor
|
||||||
Public Property LogConfig As LogConfig
|
Public Property LogConfig As LogConfig
|
||||||
Public Property Logger As Logger
|
Public Property Logger As Logger
|
||||||
Public Property ConfigManager As ConfigManager(Of Config)
|
Public Property ConfigManager As ConfigManager(Of Config)
|
||||||
Public Property Database As MSSQLServer
|
Public Property Database As MSSQLServer
|
||||||
Public Property FormHelper As FormHelper
|
Public Property FormHelper As FormHelper
|
||||||
|
Public Property Patterns As Patterns2
|
||||||
|
|
||||||
Private ReadOnly SQLColumns As New List(Of String) From {"SELECT1", "SELECT2", "SELECT3", "SELECT4"}
|
Private ReadOnly SQLColumns As New List(Of String) From {"SELECT1", "SELECT2", "SELECT3", "SELECT4"}
|
||||||
Private ReadOnly DocViewColumns As New List(Of String) From {"DOCVIEW1", "DOCVIEW2"}
|
Private ReadOnly DocViewColumns As New List(Of String) From {"DOCVIEW1", "DOCVIEW2"}
|
||||||
@ -76,13 +79,17 @@ Public Class frmMonitor
|
|||||||
}
|
}
|
||||||
|
|
||||||
Private GridBuilder As GridBuilder
|
Private GridBuilder As GridBuilder
|
||||||
|
Private ControlHelper As Common.ControlHelper
|
||||||
|
|
||||||
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
Try
|
Try
|
||||||
LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "Monitor")
|
LogConfig = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing, "Digital Data", "Monitor")
|
||||||
Logger = LogConfig.GetLogger()
|
Logger = LogConfig.GetLogger()
|
||||||
|
|
||||||
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.UserAppDataPath, Application.StartupPath)
|
ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath, Application.UserAppDataPath, Application.StartupPath)
|
||||||
|
Patterns = New Patterns2(LogConfig)
|
||||||
FormHelper = New FormHelper(LogConfig, Me)
|
FormHelper = New FormHelper(LogConfig, Me)
|
||||||
|
ControlHelper = New Common.ControlHelper(LogConfig)
|
||||||
|
|
||||||
If ConfigManager.Config.ConnectionString = String.Empty Then
|
If ConfigManager.Config.ConnectionString = String.Empty Then
|
||||||
Dim oSQLConfig As New frmSQLConfig(LogConfig)
|
Dim oSQLConfig As New frmSQLConfig(LogConfig)
|
||||||
@ -108,7 +115,7 @@ Public Class frmMonitor
|
|||||||
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
|
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
|
||||||
Database = New MSSQLServer(LogConfig, oConnectionString)
|
Database = New MSSQLServer(LogConfig, oConnectionString)
|
||||||
SearchLoader = New SearchLoader(LogConfig, ConfigManager.Config, Database)
|
SearchLoader = New SearchLoader(LogConfig, ConfigManager.Config, Database)
|
||||||
GridBuilder = New GridBuilder(New List(Of GridView) From {GridView1, GridView2, GridView3, GridView4})
|
GridBuilder = New GridBuilder(New List(Of GridView) From {GridView1, GridView2, GridView3, GridView4, GridViewResults})
|
||||||
GridBuilder.
|
GridBuilder.
|
||||||
WithDefaults().
|
WithDefaults().
|
||||||
WithDefaults(TreeListResults).
|
WithDefaults(TreeListResults).
|
||||||
@ -124,8 +131,10 @@ Public Class frmMonitor
|
|||||||
HtmlResultViewers = New List(Of RichEditControl) From {RichEditControl1, RichEditControl2}
|
HtmlResultViewers = New List(Of RichEditControl) From {RichEditControl1, RichEditControl2}
|
||||||
HtmlResultTabs = New List(Of XtraTabPage) From {XtraTabPageHtml1, XtraTabPageHtml2}
|
HtmlResultTabs = New List(Of XtraTabPage) From {XtraTabPageHtml1, XtraTabPageHtml2}
|
||||||
|
|
||||||
|
SearchLoader.LoadSearchParameters()
|
||||||
LoadSearches()
|
LoadSearches()
|
||||||
|
|
||||||
|
|
||||||
Dim oLicense = LoadGDPicture()
|
Dim oLicense = LoadGDPicture()
|
||||||
|
|
||||||
For Each oGrid In SQLResultGrids
|
For Each oGrid In SQLResultGrids
|
||||||
@ -162,43 +171,103 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
Private Function LoadData() As Boolean
|
Private Function LoadData() As Boolean
|
||||||
Try
|
Try
|
||||||
|
TreeListResults.DataSource = Nothing
|
||||||
|
GridControlResults.DataSource = Nothing
|
||||||
|
|
||||||
If cmbSearches.EditValue Is Nothing Then
|
If cmbSearches.EditValue Is Nothing Then
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oSQL As String = $"EXEC [{ConfigManager.Config.DBPrefix}].[dbo].[PRDD_MONITORING_GET_TREEVIEW_RESULT] '{cmbSearches.EditValue}','irgendwas','irgendwas','irgendwas',1"
|
Dim oSearch As Search = cmbSearches.EditValue
|
||||||
|
Dim oMissingParams = False
|
||||||
|
|
||||||
|
With AdornerUIManager2.ValidationHintProperties
|
||||||
|
.State = VisualEffects.ValidationHintState.Invalid
|
||||||
|
.InvalidState.ShowBorder = True
|
||||||
|
.InvalidState.ShowBackgroundMode = VisualEffects.ValidationHintBackgroundMode.Target
|
||||||
|
End With
|
||||||
|
|
||||||
|
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 LayoutControlItem In ParameterRoot.Items
|
||||||
|
oControls.Add(oItem.Control)
|
||||||
|
|
||||||
|
Dim oParam = oSearch.Parameters.
|
||||||
|
Where(Function(param) param.PatternTitle = oItem.Control.Name).
|
||||||
|
FirstOrDefault()
|
||||||
|
|
||||||
|
If oParam.Required And Not ControlHelper.HasValue(oItem.Control) Then
|
||||||
|
AdornerUIManager2.Elements.Add(New VisualEffects.ValidationHint With {
|
||||||
|
.TargetElement = oItem.Control,
|
||||||
|
.Visible = True
|
||||||
|
})
|
||||||
|
oMissingParams = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
AdornerUIManager2.Show()
|
||||||
|
|
||||||
|
If oMissingParams = True Then
|
||||||
|
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
oSQL = Patterns.ReplaceControlValues(oSQL, oControls)
|
||||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||||
|
|
||||||
TreeListResults.DataSource = oTable
|
If oSearch.ReturnType = ReturnTypeEnum.TreeView Then
|
||||||
|
GridControlResults.Visible = False
|
||||||
|
GridControlResults.Dock = DockStyle.None
|
||||||
|
|
||||||
Dim oMaxLength = 0
|
TreeListResults.Visible = True
|
||||||
For Each oRow As DataRow In oTable.Rows
|
TreeListResults.Dock = DockStyle.Fill
|
||||||
Dim oProcess = oRow.Item("COLUMN1")
|
|
||||||
Dim oLength = oProcess.ToString.Length
|
|
||||||
If oLength > oMaxLength Then
|
|
||||||
oMaxLength = oLength
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
InitTreeList(oMaxLength)
|
TreeListResults.DataSource = oTable
|
||||||
|
|
||||||
' Show all columns in DisplayColumns List
|
Dim oMaxLength = 0
|
||||||
For Each oColumn In TreeListResults.Columns
|
For Each oRow As DataRow In oTable.Rows
|
||||||
oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName)
|
Dim oProcess = oRow.Item("COLUMN1")
|
||||||
If oColumn.FieldName = "ADDED_WHEN" Then
|
Dim oLength = oProcess.ToString.Length
|
||||||
oColumn.Format.FormatType = FormatType.DateTime
|
If oLength > oMaxLength Then
|
||||||
oColumn.Format.FormatString = "dd.MM.yyyy HH:MM:ss"
|
oMaxLength = oLength
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Dim oStateColumn As TreeListColumn = TreeListResults.Columns.Item("STATE")
|
|
||||||
For Each oNode As TreeListNode In TreeListResults.Nodes
|
InitTreeList(oMaxLength)
|
||||||
ExpandNodes(oNode, Function(n)
|
|
||||||
Dim oObjectValue = n.GetValue(oStateColumn)
|
' Show all columns in DisplayColumns List
|
||||||
Dim oValue As String = NotNull(oObjectValue.ToString, String.Empty)
|
For Each oColumn In TreeListResults.Columns
|
||||||
Return oValue IsNot Nothing AndAlso (oValue = STATE_WARNING Or oValue = STATE_FAILURE)
|
oColumn.Visible = DisplayColumns.Contains(oColumn.FieldName)
|
||||||
End Function)
|
If oColumn.FieldName = "ADDED_WHEN" Then
|
||||||
Next
|
oColumn.Format.FormatType = FormatType.DateTime
|
||||||
|
oColumn.Format.FormatString = "dd.MM.yyyy HH:MM:ss"
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Dim oStateColumn As TreeListColumn = TreeListResults.Columns.Item("STATE")
|
||||||
|
For Each oNode As TreeListNode In TreeListResults.Nodes
|
||||||
|
ExpandNodes(oNode, Function(n)
|
||||||
|
Dim oObjectValue = n.GetValue(oStateColumn)
|
||||||
|
Dim oValue As String = NotNull(oObjectValue.ToString, String.Empty)
|
||||||
|
Return oValue IsNot Nothing AndAlso (oValue = STATE_WARNING Or oValue = STATE_FAILURE)
|
||||||
|
End Function)
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
GridControlResults.Visible = True
|
||||||
|
GridControlResults.Dock = DockStyle.Fill
|
||||||
|
|
||||||
|
TreeListResults.Visible = False
|
||||||
|
TreeListResults.Dock = DockStyle.None
|
||||||
|
|
||||||
|
GridControlResults.DataSource = oTable
|
||||||
|
End If
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -288,32 +357,72 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
Private Sub cmbSearches_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearches.SelectedValueChanged
|
Private Sub cmbSearches_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbSearches.SelectedValueChanged
|
||||||
Dim oSearch As Search = CType(cmbSearches.SelectedItem, Search)
|
Dim oSearch As Search = CType(cmbSearches.SelectedItem, Search)
|
||||||
Dim oAttributes = SearchLoader.LoadSearchAttributes(oSearch.Id)
|
|
||||||
|
|
||||||
ParameterRoot.Items.Clear()
|
ParameterRoot.Clear()
|
||||||
|
AdornerUIManager2.Hide()
|
||||||
|
AdornerUIManager2.Elements.Clear()
|
||||||
|
|
||||||
For Each oAttribute In oAttributes
|
For Each oParam As SearchParameter In oSearch.Parameters
|
||||||
Dim oControl As Control
|
Dim oControl As Control
|
||||||
|
|
||||||
Select Case oAttribute.DataType
|
Select Case oParam.DataType
|
||||||
Case "DATE"
|
Case DataTypeEnum.Boolean
|
||||||
oControl = New DateEdit
|
oControl = New CheckEdit()
|
||||||
|
|
||||||
|
Case DataTypeEnum.Date
|
||||||
|
oControl = New DateEdit()
|
||||||
|
|
||||||
|
Case DataTypeEnum.String
|
||||||
|
Select Case oParam.ItemType
|
||||||
|
Case ItemTypeEnum.List
|
||||||
|
Dim oCombobox = New ComboBoxEdit()
|
||||||
|
Dim oItems = oParam.ItemString.Split(";"c).ToList()
|
||||||
|
oCombobox.Properties.Items.AddRange(oItems)
|
||||||
|
oControl = oCombobox
|
||||||
|
|
||||||
|
Case ItemTypeEnum.SQL
|
||||||
|
Dim oGridCombobox = New LookUpEdit()
|
||||||
|
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
|
||||||
|
oControl = oGridCombobox
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
oControl = New TextEdit()
|
||||||
|
End Select
|
||||||
|
|
||||||
Case Else
|
Case Else
|
||||||
oControl = New TextEdit
|
oControl = New TextEdit()
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
|
oControl.Name = oParam.PatternTitle
|
||||||
|
|
||||||
Dim oItem As LayoutControlItem = ParameterRoot.AddItem()
|
Dim oItem As LayoutControlItem = ParameterRoot.AddItem()
|
||||||
oItem.Text = oAttribute.Caption
|
oItem.Text = oParam.Title
|
||||||
oItem.Control = oControl
|
oItem.Control = oControl
|
||||||
oItem.TextLocation = Locations.Top
|
oItem.TextLocation = Locations.Top
|
||||||
oItem.TextToControlDistance = 3
|
oItem.TextToControlDistance = 3
|
||||||
oItem.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 10, 0)
|
oItem.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 10, 0)
|
||||||
Next
|
|
||||||
|
|
||||||
|
|
||||||
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Function GetParameterItems(pParam As SearchParameter) As Object
|
||||||
|
Select Case pParam.ItemType
|
||||||
|
Case ItemTypeEnum.List
|
||||||
|
Return pParam.ItemString.Split(";"c).ToList()
|
||||||
|
|
||||||
|
Case ItemTypeEnum.SQL
|
||||||
|
Dim oSQL = pParam.ItemString
|
||||||
|
Dim oTable = Database.GetDatatable(oSQL)
|
||||||
|
Return oTable
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub TreeListResults_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeListResults.FocusedNodeChanged
|
Private Sub TreeListResults_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeListResults.FocusedNodeChanged
|
||||||
If e.Node Is Nothing Then
|
If e.Node Is Nothing Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user