Compare commits

...

7 Commits

Author SHA1 Message Date
768337e968 Monitor: Version 1.6.0.1 2023-04-06 09:18:50 +02:00
83de375e73 Buttons in RibbonNar für Chartviews deaktivieren, da ohne Funktion 2023-04-06 09:17:55 +02:00
e0ec88d763 Monitor: version 1.6.0.0 2023-04-05 11:04:19 +02:00
10dd22fe46 Bereinigungen 2023-04-05 11:03:17 +02:00
72a831619f Chart-Integration 2023-04-05 10:42:52 +02:00
41338b596e Monitor: Version 1.5.1.0 2023-03-06 16:54:07 +01:00
dcac655129 .Net 4.6.2 2023-03-06 16:53:31 +01:00
9 changed files with 442 additions and 50 deletions

View File

@@ -19,6 +19,7 @@
Undefined Undefined
Table Table
TreeView TreeView
ChartView
End Enum End Enum
Public Enum DataTypeEnum Public Enum DataTypeEnum
@@ -34,4 +35,21 @@
List List
SQL SQL
End Enum End Enum
Public Enum ChartPosEnum
Undefined
TopLeft
BottomLeft
TopRight
BottomRight
End Enum
Public Enum ChartTypeEnum
Undefined
Bar
Line
Area
Pie
End Enum
End Namespace End Namespace

View File

@@ -0,0 +1,14 @@
Public Class ChartParameter
Public Id As Integer
Public Title As String
Public ChartPos As Constants.ChartPosEnum
Public SQLCommand As String
Public ChartType As Constants.ChartTypeEnum
Public Argument As String
Public Value As String
Public SearchId As Integer
Public Overrides Function ToString() As String
Return Title
End Function
End Class

View File

@@ -1,5 +1,4 @@
Imports System.Runtime.CompilerServices Imports System.Text.RegularExpressions
Imports System.Text.RegularExpressions
Imports DevExpress.Utils Imports DevExpress.Utils
Imports DevExpress.XtraEditors.Controls Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors.Repository Imports DevExpress.XtraEditors.Repository
@@ -11,6 +10,7 @@ Imports DevExpress.XtraTab
Imports DevExpress.XtraTreeList Imports DevExpress.XtraTreeList
Imports DevExpress.XtraTreeList.Columns Imports DevExpress.XtraTreeList.Columns
Imports DevExpress.XtraTreeList.Nodes Imports DevExpress.XtraTreeList.Nodes
Imports DevExpress.XtraCharts
Imports DigitalData.Controls.DocumentViewer Imports DigitalData.Controls.DocumentViewer
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Imports DigitalData.GUIs.Monitor.Constants Imports DigitalData.GUIs.Monitor.Constants
@@ -20,6 +20,8 @@ Imports DigitalData.Modules.Language
Imports DigitalData.Modules.Language.Utils Imports DigitalData.Modules.Language.Utils
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Patterns Imports DigitalData.Modules.Patterns
Imports DevExpress.XtraEditors
Public Class frmMonitor Public Class frmMonitor
Private ReadOnly InvisibleColumnMarkers As New List(Of String) From {"[HTML]", "[SQL]", "[FILENAME]"} Private ReadOnly InvisibleColumnMarkers As New List(Of String) From {"[HTML]", "[SQL]", "[FILENAME]"}
@@ -43,7 +45,7 @@ Public Class frmMonitor
Private SQLResultGrids As List(Of GridControl) Private SQLResultGrids As List(Of GridControl)
Private SQLResultTabs As List(Of XtraTabPage) Private SQLResultTabs As List(Of XtraTabPage)
Private SQLResultGridIndex As Integer = 0 'Private SQLResultGridIndex As Integer = 0
Private ActiveSQLResultGrid As GridControl Private ActiveSQLResultGrid As GridControl
Private FileResultViewers As List(Of DocumentViewer) Private FileResultViewers As List(Of DocumentViewer)
@@ -57,6 +59,8 @@ Public Class frmMonitor
Private GridControlResults As GridControl Private GridControlResults As GridControl
Private GridViewResults As GridView Private GridViewResults As GridView
Private ChartViewResultContainer As SplitContainerControl
Private InvisibleMarkedColumns As New List(Of GridColumn) Private InvisibleMarkedColumns As New List(Of GridColumn)
Private VisibleMarkedColumns As New List(Of GridColumn) Private VisibleMarkedColumns As New List(Of GridColumn)
Private ActiveSearch As Search = Nothing Private ActiveSearch As Search = Nothing
@@ -123,6 +127,7 @@ Public Class frmMonitor
InitGrid() InitGrid()
InitTreeList() InitTreeList()
InitChartContainer()
Dim oGrids As GridView() = New List(Of GridView) From {GridView1, GridView2, GridView3, GridView4}.ToArray Dim oGrids As GridView() = New List(Of GridView) From {GridView1, GridView2, GridView3, GridView4}.ToArray
GridBuilder.SetDefaults(oGrids) GridBuilder.SetDefaults(oGrids)
@@ -154,7 +159,6 @@ Public Class frmMonitor
End Sub End Sub
Next Next
For Each oViewer As DocumentViewer In FileResultViewers For Each oViewer As DocumentViewer In FileResultViewers
oViewer.Init(LogConfig, oLicense) oViewer.Init(LogConfig, oLicense)
Next Next
@@ -164,7 +168,6 @@ Public Class frmMonitor
SetResultCount(0) SetResultCount(0)
SetVersion() SetVersion()
Catch ex As Exception Catch ex As Exception
FormHelper.ShowErrorMessage(ex, "frmStart_Load") FormHelper.ShowErrorMessage(ex, "frmStart_Load")
End Try End Try
@@ -210,16 +213,24 @@ Public Class frmMonitor
End If End If
Dim oControls As List(Of Control) = LayoutControl1.Controls.Cast(Of Control).ToList() Dim oControls As List(Of Control) = LayoutControl1.Controls.Cast(Of Control).ToList()
Dim oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls) Dim oSQL As String
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL) Dim oTable As DataTable
If oSearch.SQLCommand.Length > 0 Then
oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls)
Logger.Debug($"SQL after replacing placeholder: [{0}]", oSQL)
oTable = Await Database.GetDatatableAsync(oSQL)
End If
Dim oStartTime = Now Dim oStartTime = Now
If oSearch.ReturnType = Constants.ReturnTypeEnum.TreeView Then If oSearch.ReturnType = ReturnTypeEnum.TreeView Then
GridControlResults.Visible = False ' Baum
GridControlResults.Dock = DockStyle.None SetResultVisbility(ReturnTypeEnum.TreeView)
TreeListResults.Visible = True If oTable Is Nothing Then
TreeListResults.Dock = DockStyle.Fill Return False
End If
TreeListResults.DataSource = oTable TreeListResults.DataSource = oTable
@@ -258,12 +269,70 @@ Public Class frmMonitor
SetResultCount(TreeListResults.AllNodesCount) SetResultCount(TreeListResults.AllNodesCount)
TreeListResults.Focus() TreeListResults.Focus()
Else ElseIf oSearch.ReturnType = Constants.ReturnTypeEnum.ChartView Then
GridControlResults.Visible = True ' Charts
GridControlResults.Dock = DockStyle.Fill SetResultVisbility(ReturnTypeEnum.ChartView)
TreeListResults.Visible = False ' Oberer SplitContainer
TreeListResults.Dock = DockStyle.None Dim splitContainer1 As SplitContainerControl = CType(ChartViewResultContainer.Panel1.Controls(0), SplitContainerControl)
' Unterer SplitContainer
Dim splitContainer2 As SplitContainerControl = CType(ChartViewResultContainer.Panel2.Controls(0), SplitContainerControl)
ChartViewResultContainer.PanelVisibility = SplitPanelVisibility.Both
splitContainer1.PanelVisibility = SplitPanelVisibility.Both
splitContainer2.PanelVisibility = SplitPanelVisibility.Both
Dim chartArray(4) As ChartControl
' TopLeft
chartArray(0) = CType(splitContainer1.Panel1.Controls(0), ChartControl)
' TopRight
chartArray(1) = CType(splitContainer1.Panel2.Controls(0), ChartControl)
' BottomLeft
chartArray(2) = CType(splitContainer2.Panel1.Controls(0), ChartControl)
' BottomRight
chartArray(3) = CType(splitContainer2.Panel2.Controls(0), ChartControl)
For i As Integer = 0 To 3
chartArray(i).Titles.Clear()
chartArray(i).Series.Clear()
Next
ResizeCharContainer()
Dim oChartParameters As List(Of ChartParameter)
oChartParameters = SearchLoader.ChartParameters.Where(Function(p) p.SearchId = oSearch.Id And p.ChartType <> ChartTypeEnum.Undefined).ToList()
For Each oChartParameterSet In oChartParameters
Dim ChartViewResults As ChartControl
Select Case oChartParameterSet.ChartPos
Case ChartPosEnum.TopLeft
ChartViewResults = chartArray(0)
Case ChartPosEnum.TopRight
ChartViewResults = chartArray(1)
Case ChartPosEnum.BottomLeft
ChartViewResults = chartArray(2)
Case ChartPosEnum.BottomRight
ChartViewResults = chartArray(3)
Case Else
ChartViewResults = chartArray(0)
End Select
SetChartTitle(ChartViewResults, oChartParameterSet.Title)
Dim oSerie As Series = Await GetChartSerie(oChartParameterSet, oControls)
ChartViewResults.Series.Add(oSerie)
Next
SetPanelVisibility(chartArray)
ChartViewResultContainer.Focus()
Else
' Tabelle
SetResultVisbility(ReturnTypeEnum.Table)
If oTable Is Nothing Then
Return False
End If
GridControlResults.DataSource = oTable GridControlResults.DataSource = oTable
GridViewResults.PopulateColumns() GridViewResults.PopulateColumns()
@@ -330,7 +399,7 @@ Public Class frmMonitor
Workspace.LoadWorkspace(oSearch.Id.ToString) Workspace.LoadWorkspace(oSearch.Id.ToString)
btnExportMain.Enabled = True ActivateMenuBarButtons(oSearch.ReturnType)
Dim oTotalTime = Now.Subtract(oStartTime) Dim oTotalTime = Now.Subtract(oStartTime)
lbSearchTime.Caption = oTotalTime.ToString("mm':'ss") lbSearchTime.Caption = oTotalTime.ToString("mm':'ss")
@@ -343,6 +412,154 @@ Public Class frmMonitor
SplashScreenManager1.CloseWaitForm() SplashScreenManager1.CloseWaitForm()
End Try End Try
End Function End Function
Private Sub ActivateMenuBarButtons(pSearchType As ReturnTypeEnum)
Select Case pSearchType
Case ReturnTypeEnum.ChartView
btnExportMain.Enabled = False
BarButtonItem2.Enabled = False
btnResetLayout.Enabled = False
Case Else
btnExportMain.Enabled = True
BarButtonItem2.Enabled = True
btnResetLayout.Enabled = True
End Select
End Sub
Private Async Function GetChartSerie(pChartParameters As ChartParameter, pControls As List(Of Control)) As Threading.Tasks.Task(Of Series)
Dim oSerie As Series
Select Case pChartParameters.ChartType
Case ChartTypeEnum.Bar
oSerie = New Series(pChartParameters.Title, ViewType.Bar)
Case ChartTypeEnum.Line
oSerie = New Series(pChartParameters.Title, ViewType.Line)
Case ChartTypeEnum.Area
oSerie = New Series(pChartParameters.Title, ViewType.Area)
Case ChartTypeEnum.Pie
oSerie = New Series(pChartParameters.Title, ViewType.Pie)
oSerie.Label.TextPattern = "{V}"
oSerie.LegendTextPattern = "{A}"
Case Else
Return Nothing
End Select
Dim oSQL As String = Patterns.ReplaceControlValues(pChartParameters.SQLCommand, pControls)
Logger.Debug($"SQL after replacing placeholder: [{0}]", oSQL)
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
Dim xAxisTitle As String = pChartParameters.Argument
Dim yAxisTitle As String = pChartParameters.Value
For Each oRow In oTable.Rows
Dim value1 As String = oRow.Item(xAxisTitle)
Dim value2 As String = oRow.Item(yAxisTitle)
oSerie.Points.Add(New SeriesPoint(value1, value2))
Next
oSerie.ArgumentScaleType = ScaleType.Qualitative
Return oSerie
End Function
Private Sub SetChartTitle(pChartView As ChartControl, pTitle As String)
' Wenn bereits ein Titel vorhanden ist, wird kein neuer ergänzt
' relevant bei mehrere Charts in einem ChartControl
If pChartView.Titles.Count = 0 Then
Dim oTitle As ChartTitle = New ChartTitle With {
.Text = pTitle
}
pChartView.Titles.Add(oTitle)
End If
End Sub
Private Sub SetPanelVisibility(chartArray() As ChartControl)
If chartArray.Length < 4 Then
Exit Sub
End If
Dim showTop As Boolean = True
Dim showBottom As Boolean = True
If chartArray(0).Titles.Count = 0 And chartArray(1).Titles.Count = 0 Then
showTop = False
End If
If chartArray(2).Titles.Count = 0 And chartArray(3).Titles.Count = 0 Then
showBottom = False
End If
If showBottom = False Then
ChartViewResultContainer.PanelVisibility = SplitPanelVisibility.Panel1
ElseIf showTop = False Then
ChartViewResultContainer.PanelVisibility = SplitPanelVisibility.Panel2
End If
If showTop = True Then
Dim showLeft As Boolean = chartArray(0).Titles.Count > 0
Dim showRight As Boolean = chartArray(1).Titles.Count > 0
Dim splitContainer1 As SplitContainerControl = CType(ChartViewResultContainer.Panel1.Controls(0), SplitContainerControl)
If showRight = False Then
splitContainer1.PanelVisibility = SplitPanelVisibility.Panel1
ElseIf showLeft = False Then
splitContainer1.PanelVisibility = SplitPanelVisibility.Panel2
End If
End If
If showBottom = True Then
Dim showLeft As Boolean = chartArray(2).Titles.Count > 0
Dim showRight As Boolean = chartArray(3).Titles.Count > 0
Dim splitContainer2 As SplitContainerControl = CType(ChartViewResultContainer.Panel2.Controls(0), SplitContainerControl)
If showRight = False Then
splitContainer2.PanelVisibility = SplitPanelVisibility.Panel1
ElseIf showLeft = False Then
splitContainer2.PanelVisibility = SplitPanelVisibility.Panel2
End If
End If
End Sub
Private Sub SetResultVisbility(pSearchMode As ReturnTypeEnum)
Select Case pSearchMode
Case ReturnTypeEnum.TreeView
GridControlResults.Visible = False
GridControlResults.Dock = DockStyle.None
TreeListResults.Visible = True
TreeListResults.Dock = DockStyle.Fill
ChartViewResultContainer.Visible = False
ChartViewResultContainer.Dock = DockStyle.None
btnExportDetails.Enabled = True
btnExportMain.Enabled = True
Case ReturnTypeEnum.ChartView
GridControlResults.Visible = False
GridControlResults.Dock = DockStyle.None
TreeListResults.Visible = False
TreeListResults.Dock = DockStyle.None
ChartViewResultContainer.Visible = True
ChartViewResultContainer.Dock = DockStyle.Fill
btnExportDetails.Enabled = False
btnExportMain.Enabled = False
Case ReturnTypeEnum.Table
GridControlResults.Visible = True
GridControlResults.Dock = DockStyle.Fill
TreeListResults.Visible = False
TreeListResults.Dock = DockStyle.None
ChartViewResultContainer.Visible = False
ChartViewResultContainer.Dock = DockStyle.None
btnExportDetails.Enabled = True
btnExportMain.Enabled = True
End Select
End Sub
''' <summary> ''' <summary>
''' Linklogik für Hyperlink-Spalten ''' Linklogik für Hyperlink-Spalten
''' </summary> ''' </summary>
@@ -391,7 +608,7 @@ Public Class frmMonitor
Private Sub SetColumnsToDisAllowEditInGridViewResults() Private Sub SetColumnsToDisAllowEditInGridViewResults()
For Each oColumn As GridColumn In GridViewResults.Columns For Each oColumn As GridColumn In GridViewResults.Columns
If Not TypeOf oColumn.ColumnEdit Is RepositoryItemHyperLinkEdit Then If TypeOf oColumn.ColumnEdit IsNot RepositoryItemHyperLinkEdit Then
' Verbietet Spaltenweise die Bearbeitung ' Verbietet Spaltenweise die Bearbeitung
oColumn.OptionsColumn.AllowEdit = False oColumn.OptionsColumn.AllowEdit = False
End If End If
@@ -419,6 +636,7 @@ Public Class frmMonitor
Private Sub LoadSearches() Private Sub LoadSearches()
Try Try
SearchLoader.LoadSearchParameters() SearchLoader.LoadSearchParameters()
SearchLoader.LoadChartParameters()
SearchLoader.LoadSearches() SearchLoader.LoadSearches()
cmbSearches.Properties.Items.Clear() cmbSearches.Properties.Items.Clear()
@@ -999,6 +1217,23 @@ Public Class frmMonitor
SplitContainerSQL.Panel1.Controls.Add(TreeListResults) SplitContainerSQL.Panel1.Controls.Add(TreeListResults)
End Sub End Sub
Private Sub InitChartContainer()
ChartViewResultContainer = GridLoader.InitChartViewResultContainer()
SplitContainerSQL.Panel1.Controls.Add(ChartViewResultContainer)
End Sub
Private Sub ResizeCharContainer()
If ChartViewResultContainer.Visible = True Then
Dim splitContainer1 As SplitContainerControl = CType(ChartViewResultContainer.Panel1.Controls(0), SplitContainerControl)
Dim splitContainer2 As SplitContainerControl = CType(ChartViewResultContainer.Panel2.Controls(0), SplitContainerControl)
ChartViewResultContainer.SplitterPosition = CInt(ChartViewResultContainer.Height / 2)
splitContainer1.SplitterPosition = CInt(splitContainer1.Width / 2)
splitContainer2.SplitterPosition = CInt(splitContainer2.Width / 2)
End If
End Sub
Private Sub BarButtonItem2_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick Private Sub BarButtonItem2_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
If ActiveSearch Is Nothing Then If ActiveSearch Is Nothing Then
Exit Sub Exit Sub
@@ -1014,5 +1249,6 @@ Public Class frmMonitor
FormHelper.ShowErrorMessage(ex, "Log Verzeichnis öffnen") FormHelper.ShowErrorMessage(ex, "Log Verzeichnis öffnen")
End Try End Try
End Sub End Sub
End Class End Class

View File

@@ -1,4 +1,6 @@
Imports DevExpress.Utils Imports DevExpress.Utils
Imports DevExpress.Utils.Extensions
Imports DevExpress.XtraCharts
Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Controls Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors.Repository Imports DevExpress.XtraEditors.Repository
@@ -81,6 +83,62 @@ Public Class GridLoader
Return oGrid Return oGrid
End Function End Function
Public Function InitChartViewResultContainer() As SplitContainerControl
' Vorbereiten der SplitContainer-Struktur inkl. der ChartControls
Dim oChartViewResultContainer As SplitContainerControl
Dim oSplitContainerTop As SplitContainerControl
Dim oSplitContainerBottom As SplitContainerControl
oChartViewResultContainer = New SplitContainerControl With {
.Name = "ChartViewResultContainer",
.Visible = False,
.Dock = DockStyle.Fill,
.Horizontal = False,
.IsSplitterFixed = True
}
oSplitContainerTop = New SplitContainerControl With {
.Name = "SplitContainerTop",
.Dock = DockStyle.Fill,
.Horizontal = True,
.IsSplitterFixed = True
}
oSplitContainerBottom = New SplitContainerControl With {
.Name = "SplitContainerBottom",
.Dock = DockStyle.Fill,
.Horizontal = True,
.IsSplitterFixed = True
}
oChartViewResultContainer.Panel1.AddControl(oSplitContainerTop)
oChartViewResultContainer.Panel2.AddControl(oSplitContainerBottom)
Dim oChartControlTopLeft As ChartControl = New ChartControl With {
.Name = "ChartControlTopLeft",
.Dock = DockStyle.Fill
}
Dim oChartControlTopRight As ChartControl = New ChartControl With {
.Name = "ChartControlTopRight",
.Dock = DockStyle.Fill
}
Dim oChartControlBottomLeft As ChartControl = New ChartControl With {
.Name = "ChartControlBottomLeft",
.Dock = DockStyle.Fill
}
Dim oChartControlBottomRight As ChartControl = New ChartControl With {
.Name = "ChartControlBottomRight",
.Dock = DockStyle.Fill
}
oSplitContainerTop.Panel1.AddControl(oChartControlTopLeft)
oSplitContainerTop.Panel2.AddControl(oChartControlTopRight)
oSplitContainerBottom.Panel1.AddControl(oChartControlBottomLeft)
oSplitContainerBottom.Panel2.AddControl(oChartControlBottomRight)
Return oChartViewResultContainer
End Function
Public Sub InitTreeListColumns(pTreeList As TreeList, pMaxLength As Integer) Public Sub InitTreeListColumns(pTreeList As TreeList, pMaxLength As Integer)
Dim oColumn1 = pTreeList.Columns.Item("COLUMN1") Dim oColumn1 = pTreeList.Columns.Item("COLUMN1")
Dim oColumn2 = pTreeList.Columns.Item("COLUMN2") Dim oColumn2 = pTreeList.Columns.Item("COLUMN2")

View File

@@ -12,6 +12,7 @@ Public Class SearchLoader
Public Searches As New List(Of Search) Public Searches As New List(Of Search)
Public Parameters As New List(Of SearchParameter) Public Parameters As New List(Of SearchParameter)
Public ChartParameters As New List(Of ChartParameter)
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)
@@ -49,7 +50,8 @@ Public Class SearchLoader
End If End If
' Es wurde kein SQL Command definiert, ohne geht nix ' Es wurde kein SQL Command definiert, ohne geht nix
If oSearch.SQLCommand Is Nothing Or oSearch.SQLCommand.Length = 0 Then ' Außer es ist eine Chart-Suche
If oSearch.ReturnType <> ReturnTypeEnum.ChartView And (oSearch.SQLCommand Is Nothing Or oSearch.SQLCommand.Length = 0) Then
Logger.Error($"For searchId [{0}] is NO SQLCommand defined!", oSearch.Id) Logger.Error($"For searchId [{0}] is NO SQLCommand defined!", oSearch.Id)
Continue For Continue For
End If End If
@@ -90,6 +92,27 @@ Public Class SearchLoader
Parameters = oParameters Parameters = oParameters
End Sub End Sub
Public Sub LoadChartParameters()
Dim oSQL As String = $"SELECT * FROM TBMON_CHARTS"
Dim oTable As DataTable = Database.GetDatatable(oSQL)
Dim oParameters As New List(Of ChartParameter)
For Each oRow As DataRow In oTable.Rows
oParameters.Add(New ChartParameter With {
.Id = oRow.ItemEx("GUID", 0),
.Title = oRow.ItemEx("TITLE", String.Empty),
.SearchId = oRow.ItemEx("PROFILE_ID", 0),
.ChartPos = GetChartPosType(oRow.ItemEx("POS_ID", 0)),
.SQLCommand = oRow.ItemEx("SQL_COMMAND", String.Empty),
.ChartType = GetChartType(oRow.ItemEx("CHART_TYPE", String.Empty)),
.Argument = oRow.ItemEx("ARGUMENT", String.Empty),
.Value = oRow.ItemEx("VALUE", String.Empty)
})
Next
ChartParameters = oParameters
End Sub
Private Function GetItemType(pTypeString As String) As ItemTypeEnum Private Function GetItemType(pTypeString As String) As ItemTypeEnum
Select Case pTypeString Select Case pTypeString
Case "LIST" Case "LIST"
@@ -107,6 +130,8 @@ Public Class SearchLoader
Return ReturnTypeEnum.Table Return ReturnTypeEnum.Table
Case "TreeView" Case "TreeView"
Return ReturnTypeEnum.TreeView Return ReturnTypeEnum.TreeView
Case "ChartView"
Return ReturnTypeEnum.ChartView
Case Else Case Else
Return ReturnTypeEnum.Undefined Return ReturnTypeEnum.Undefined
End Select End Select
@@ -127,6 +152,34 @@ Public Class SearchLoader
End Select End Select
End Function End Function
Private Function GetChartType(pTypeString As String) As ChartTypeEnum
Select Case pTypeString.ToUpper
Case "BAR"
Return ChartTypeEnum.Bar
Case "AREA"
Return ChartTypeEnum.Area
Case "LINE"
Return ChartTypeEnum.Line
Case "PIE"
Return ChartTypeEnum.Pie
Case Else
Return ChartTypeEnum.Undefined
End Select
End Function
Private Function GetChartPosType(pPosTypeId As Integer) As ChartPosEnum
Select Case pPosTypeId
Case 1
Return ChartPosEnum.TopLeft
Case 2
Return ChartPosEnum.TopRight
Case 3
Return ChartPosEnum.BottomLeft
Case 4
Return ChartPosEnum.BottomRight
Case Else
Return ChartPosEnum.Undefined
End Select
End Function
End Class End Class

View File

@@ -8,7 +8,7 @@
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<RootNamespace>DigitalData.GUIs.Monitor</RootNamespace> <RootNamespace>DigitalData.GUIs.Monitor</RootNamespace>
<AssemblyName>DigitalData.GUIs.Monitor</AssemblyName> <AssemblyName>DigitalData.GUIs.Monitor</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<StartupObject>Monitor.Program</StartupObject> <StartupObject>Monitor.Program</StartupObject>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<OptionExplicit>On</OptionExplicit> <OptionExplicit>On</OptionExplicit>
@@ -59,6 +59,18 @@
<Reference Include="DevExpress.Utils.v21.2" /> <Reference Include="DevExpress.Utils.v21.2" />
<Reference Include="DevExpress.XtraBars.v21.2" /> <Reference Include="DevExpress.XtraBars.v21.2" />
<Reference Include="DevExpress.Sparkline.v21.2.Core" /> <Reference Include="DevExpress.Sparkline.v21.2.Core" />
<Reference Include="DevExpress.XtraCharts.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.XtraCharts.v21.2.dll</HintPath>
</Reference>
<Reference Include="DevExpress.XtraCharts.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.XtraCharts.v21.2.UI.dll</HintPath>
</Reference>
<Reference Include="DevExpress.XtraCharts.v21.2.Wizard, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.XtraCharts.v21.2.Wizard.dll</HintPath>
</Reference>
<Reference Include="DevExpress.XtraDialogs.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraDialogs.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v21.2" /> <Reference Include="DevExpress.XtraEditors.v21.2" />
<Reference Include="DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -90,12 +102,10 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll</HintPath> <HintPath>..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Logging, Version=2.5.4.2, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Logging">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath> <HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
</Reference> </Reference>
<Reference Include="DigitalData.Modules.Patterns, Version=1.1.0.1, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DigitalData.Modules.Patterns">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath> <HintPath>..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
@@ -135,6 +145,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="ApplicationEvents.vb" /> <Compile Include="ApplicationEvents.vb" />
<Compile Include="Data\ChartParameter.vb" />
<Compile Include="Data\Config.vb" /> <Compile Include="Data\Config.vb" />
<Compile Include="Constants.vb" /> <Compile Include="Constants.vb" />
<Compile Include="Forms\frmMonitor.Designer.vb"> <Compile Include="Forms\frmMonitor.Designer.vb">

View File

@@ -11,7 +11,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Digital Data")> <Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("Monitor")> <Assembly: AssemblyProduct("Monitor")>
<Assembly: AssemblyCopyright("Copyright © 2023")> <Assembly: AssemblyCopyright("Copyright © 2023")>
<Assembly: AssemblyTrademark("1.5.0.0")> <Assembly: AssemblyTrademark("1.6.0.1")>
<Assembly: AssemblyCulture("")> <Assembly: AssemblyCulture("")>
' Setting ComVisible to false makes the types in this assembly not visible ' Setting ComVisible to false makes the types in this assembly not visible
@@ -32,5 +32,5 @@ Imports System.Runtime.InteropServices
' You can specify all the values or you can default the Build and Revision Numbers ' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below: ' by using the '*' as shown below:
' [assembly: AssemblyVersion("1.0.*")] ' [assembly: AssemblyVersion("1.0.*")]
<Assembly: AssemblyVersion("1.5.0.0")> <Assembly: AssemblyVersion("1.6.0.1")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -12,14 +12,15 @@ Option Strict On
Option Explicit On Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class Settings Partial Friend NotInheritable Class Settings
Inherits Global.System.Configuration.ApplicationSettingsBase Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As Settings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()),Settings) Private Shared defaultInstance As Settings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New Settings()),Settings)
#Region "Automatische My.Settings-Speicherfunktion" #Region "Automatische My.Settings-Speicherfunktion"
#If _MyType = "WindowsForms" Then #If _MyType = "WindowsForms" Then
@@ -29,15 +30,15 @@ Partial Friend NotInheritable Class Settings
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then ' If My.Application.SaveMySettingsOnExit Then
My.Settings.Save() ' My.Settings.Save()
End If ' End If
End Sub End Sub
#End If #End If
#End Region #End Region
Public Shared ReadOnly Property [Default]() As Settings Public Shared ReadOnly Property [Default]() As Settings
Get Get
#If _MyType = "WindowsForms" Then #If _MyType = "WindowsForms" Then
If Not addedHandler Then If Not addedHandler Then
@@ -49,10 +50,11 @@ Partial Friend NotInheritable Class Settings
End SyncLock End SyncLock
End If End If
#End If #End If
Return defaultInstance Return defaultInstance
End Get End Get
End Property End Property
End Class End Class
End Namespace
Namespace My Namespace My
@@ -62,9 +64,9 @@ Namespace My
Friend Module MySettingsProperty Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _ <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.DigitalData.GUIs.Monitor.Settings Friend ReadOnly Property Settings() As Global.DigitalData.GUIs.Monitor.My.Settings
Get Get
Return Global.DigitalData.GUIs.Monitor.Settings.Default Return Global.DigitalData.GUIs.Monitor.My.Settings.Default
End Get End Get
End Property End Property
End Module End Module

View File

@@ -46,7 +46,7 @@
</DevExpress.LookAndFeel.Design.AppSettings> </DevExpress.LookAndFeel.Design.AppSettings>
</applicationSettings> </applicationSettings>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup> </startup>
<system.diagnostics> <system.diagnostics>
<sources> <sources>