Chart-Integration

This commit is contained in:
2023-04-05 10:42:52 +02:00
parent 41338b596e
commit 72a831619f
6 changed files with 389 additions and 18 deletions

View File

@@ -12,6 +12,7 @@ Public Class SearchLoader
Public Searches As New List(Of Search)
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)
MyBase.New(pLogConfig)
@@ -49,7 +50,8 @@ Public Class SearchLoader
End If
' 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)
Continue For
End If
@@ -90,6 +92,27 @@ Public Class SearchLoader
Parameters = oParameters
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
Select Case pTypeString
Case "LIST"
@@ -107,6 +130,8 @@ Public Class SearchLoader
Return ReturnTypeEnum.Table
Case "TreeView"
Return ReturnTypeEnum.TreeView
Case "ChartView"
Return ReturnTypeEnum.ChartView
Case Else
Return ReturnTypeEnum.Undefined
End Select
@@ -127,6 +152,34 @@ Public Class SearchLoader
End Select
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