Anzeige von Labels, Chart-Typ: StackedBar, Dateinamen für Chart-Export
This commit is contained in:
parent
e735a061d8
commit
e8e30e8f62
@ -50,6 +50,12 @@
|
|||||||
Line
|
Line
|
||||||
Area
|
Area
|
||||||
Pie
|
Pie
|
||||||
|
StackedBar
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Enum LabelTypeEnum
|
||||||
|
NoLabels
|
||||||
|
DefaultLabels
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
End Namespace
|
End Namespace
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
Public Argument As String
|
Public Argument As String
|
||||||
Public Value As String
|
Public Value As String
|
||||||
Public SearchId As Integer
|
Public SearchId As Integer
|
||||||
|
Public LabelType As Constants.LabelTypeEnum
|
||||||
|
|
||||||
Public Overrides Function ToString() As String
|
Public Overrides Function ToString() As String
|
||||||
Return Title
|
Return Title
|
||||||
|
|||||||
@ -24,8 +24,7 @@ Imports DevExpress.XtraEditors
|
|||||||
Imports System.Drawing.Imaging
|
Imports System.Drawing.Imaging
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports DevExpress.XtraBars
|
Imports DevExpress.XtraBars
|
||||||
Imports DevExpress.Utils.CommonDialogs
|
|
||||||
Imports System.Windows.Forms.VisualStyles
|
|
||||||
|
|
||||||
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]"}
|
||||||
@ -54,7 +53,7 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
Private FileResultViewers As List(Of DocumentViewer)
|
Private FileResultViewers As List(Of DocumentViewer)
|
||||||
Private FileResultTabs As List(Of XtraTabPage)
|
Private FileResultTabs As List(Of XtraTabPage)
|
||||||
Private FileResultViewerIndex As Integer = 0
|
'Private FileResultViewerIndex As Integer = 0
|
||||||
|
|
||||||
Private HtmlResultViewers As List(Of RichEditControl)
|
Private HtmlResultViewers As List(Of RichEditControl)
|
||||||
Private HtmlResultTabs As List(Of XtraTabPage)
|
Private HtmlResultTabs As List(Of XtraTabPage)
|
||||||
@ -184,7 +183,7 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
Private Function LoadGDPicture() As String
|
Private Function LoadGDPicture() As String
|
||||||
Dim oSQL = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'"
|
Dim oSQL = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'"
|
||||||
Return Database.GetScalarValue(oSQL)
|
Return CStr(Database.GetScalarValue(oSQL))
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
@ -203,7 +202,7 @@ Public Class frmMonitor
|
|||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oSearch As Search = cmbSearches.EditValue
|
Dim oSearch As Search = CType(cmbSearches.EditValue, Search)
|
||||||
|
|
||||||
InvisibleMarkedColumns.Clear()
|
InvisibleMarkedColumns.Clear()
|
||||||
VisibleMarkedColumns.Clear()
|
VisibleMarkedColumns.Clear()
|
||||||
@ -223,7 +222,7 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
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 As String
|
Dim oSQL As String
|
||||||
Dim oTable As DataTable
|
Dim oTable As DataTable = Nothing
|
||||||
|
|
||||||
If oSearch.SQLCommand.Length > 0 Then
|
If oSearch.SQLCommand.Length > 0 Then
|
||||||
oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls)
|
oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls)
|
||||||
@ -442,13 +441,17 @@ Public Class frmMonitor
|
|||||||
Case ChartTypeEnum.Area
|
Case ChartTypeEnum.Area
|
||||||
oSerie = New Series(pChartParameters.Title, ViewType.Area)
|
oSerie = New Series(pChartParameters.Title, ViewType.Area)
|
||||||
Case ChartTypeEnum.Pie
|
Case ChartTypeEnum.Pie
|
||||||
oSerie = New Series(pChartParameters.Title, ViewType.Pie)
|
oSerie = New Series(pChartParameters.Title, ViewType.Pie) With {
|
||||||
oSerie.Label.TextPattern = "{V}"
|
.LegendTextPattern = "{A}"
|
||||||
oSerie.LegendTextPattern = "{A}"
|
}
|
||||||
|
Case ChartTypeEnum.StackedBar
|
||||||
|
oSerie = New Series(pChartParameters.Title, ViewType.StackedBar)
|
||||||
Case Else
|
Case Else
|
||||||
Return Nothing
|
Return Nothing
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
|
SetSerieLabels(oSerie, pChartParameters.ChartType, pChartParameters.LabelType)
|
||||||
|
|
||||||
Dim oSQL As String = Patterns.ReplaceControlValues(pChartParameters.SQLCommand, pControls)
|
Dim oSQL As String = Patterns.ReplaceControlValues(pChartParameters.SQLCommand, pControls)
|
||||||
Logger.Debug($"SQL after replacing placeholder: [{0}]", oSQL)
|
Logger.Debug($"SQL after replacing placeholder: [{0}]", oSQL)
|
||||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
|
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
|
||||||
@ -457,8 +460,8 @@ Public Class frmMonitor
|
|||||||
Dim yAxisTitle As String = pChartParameters.Value
|
Dim yAxisTitle As String = pChartParameters.Value
|
||||||
|
|
||||||
For Each oRow In oTable.Rows
|
For Each oRow In oTable.Rows
|
||||||
Dim value1 As String = oRow.Item(xAxisTitle)
|
Dim value1 As String = CStr(oRow.Item(xAxisTitle))
|
||||||
Dim value2 As String = oRow.Item(yAxisTitle)
|
Dim value2 As String = CStr(oRow.Item(yAxisTitle))
|
||||||
oSerie.Points.Add(New SeriesPoint(value1, value2))
|
oSerie.Points.Add(New SeriesPoint(value1, value2))
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@ -468,11 +471,53 @@ Public Class frmMonitor
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub SetSerieLabels(pSerie As Series, pChartType As ChartTypeEnum, pLabelType As LabelTypeEnum)
|
||||||
|
|
||||||
|
If (pLabelType = LabelTypeEnum.NoLabels) Then
|
||||||
|
pSerie.LabelsVisibility = DefaultBoolean.False
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
|
pSerie.LabelsVisibility = DefaultBoolean.True
|
||||||
|
pSerie.Label.TextPattern = "{V}"
|
||||||
|
|
||||||
|
Select Case pChartType
|
||||||
|
Case ChartTypeEnum.Bar
|
||||||
|
Dim barLabel As SideBySideBarSeriesLabel = TryCast(pSerie.Label, SideBySideBarSeriesLabel)
|
||||||
|
If barLabel IsNot Nothing Then
|
||||||
|
barLabel.Position = BarSeriesLabelPosition.Top
|
||||||
|
End If
|
||||||
|
Case ChartTypeEnum.Line
|
||||||
|
Dim lineLabel As PointSeriesLabel = TryCast(pSerie.Label, PointSeriesLabel)
|
||||||
|
If lineLabel IsNot Nothing Then
|
||||||
|
lineLabel.Position = PointLabelPosition.Outside
|
||||||
|
End If
|
||||||
|
Case ChartTypeEnum.Area
|
||||||
|
Dim areaLabel As PointSeriesLabel = TryCast(pSerie.Label, PointSeriesLabel)
|
||||||
|
If areaLabel IsNot Nothing Then
|
||||||
|
areaLabel.Position = PointLabelPosition.Outside
|
||||||
|
End If
|
||||||
|
Case ChartTypeEnum.Pie
|
||||||
|
Dim pieLabel As PieSeriesLabel = TryCast(pSerie.Label, PieSeriesLabel)
|
||||||
|
If pieLabel IsNot Nothing Then
|
||||||
|
pieLabel.Position = PieSeriesLabelPosition.Outside
|
||||||
|
End If
|
||||||
|
Case ChartTypeEnum.StackedBar
|
||||||
|
Dim stackedBarLabel As StackedBarSeriesLabel = TryCast(pSerie.Label, StackedBarSeriesLabel)
|
||||||
|
If stackedBarLabel IsNot Nothing Then
|
||||||
|
stackedBarLabel.Position = BarSeriesLabelPosition.Auto
|
||||||
|
End If
|
||||||
|
Case Else
|
||||||
|
|
||||||
|
End Select
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub SetChartTitle(pChartView As ChartControl, pTitle As String)
|
Private Sub SetChartTitle(pChartView As ChartControl, pTitle As String)
|
||||||
' Wenn bereits ein Titel vorhanden ist, wird kein neuer ergänzt
|
' Wenn bereits ein Titel vorhanden ist, wird kein neuer ergänzt
|
||||||
' relevant bei mehrere Charts in einem ChartControl
|
' relevant bei mehrere Charts in einem ChartControl
|
||||||
If pChartView.Titles.Count = 0 Then
|
If pChartView.Titles.Count = 0 Then
|
||||||
Dim oTitle As ChartTitle = New ChartTitle With {
|
Dim oTitle As New ChartTitle With {
|
||||||
.Text = pTitle
|
.Text = pTitle
|
||||||
}
|
}
|
||||||
pChartView.Titles.Add(oTitle)
|
pChartView.Titles.Add(oTitle)
|
||||||
@ -619,7 +664,7 @@ Public Class frmMonitor
|
|||||||
Return
|
Return
|
||||||
Else
|
Else
|
||||||
Dim oControl As Control = LayoutControl1.Controls.Find(oSearchParameter.PatternTitle, True).FirstOrDefault()
|
Dim oControl As Control = LayoutControl1.Controls.Find(oSearchParameter.PatternTitle, True).FirstOrDefault()
|
||||||
oControl.Text = e.EditValue
|
oControl.Text = CStr(e.EditValue)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Await LoadData()
|
Await LoadData()
|
||||||
@ -663,7 +708,7 @@ Public Class frmMonitor
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If pRootNode.Item("PARENT_ID") = 0 Then
|
If CType(pRootNode.Item("PARENT_ID"), Int32) = 0 Then
|
||||||
' Auswertung für Parent-Knoten
|
' Auswertung für Parent-Knoten
|
||||||
ExpandCollapseNode(pRootNode)
|
ExpandCollapseNode(pRootNode)
|
||||||
End If
|
End If
|
||||||
@ -738,6 +783,7 @@ Public Class frmMonitor
|
|||||||
AdornerUIManager2.Hide()
|
AdornerUIManager2.Hide()
|
||||||
AdornerUIManager2.Elements.Clear()
|
AdornerUIManager2.Elements.Clear()
|
||||||
|
|
||||||
|
' TODO - Hier passt etwas noch nicht
|
||||||
Root.Clear(disposeItemAndControls:=False)
|
Root.Clear(disposeItemAndControls:=False)
|
||||||
LayoutControl1.Clear(True, True)
|
LayoutControl1.Clear(True, True)
|
||||||
|
|
||||||
@ -768,6 +814,9 @@ Public Class frmMonitor
|
|||||||
Dim oSQL = pParam.ItemString
|
Dim oSQL = pParam.ItemString
|
||||||
Dim oTable = Database.GetDatatable(oSQL)
|
Dim oTable = Database.GetDatatable(oSQL)
|
||||||
Return oTable
|
Return oTable
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
Return Nothing
|
||||||
End Select
|
End Select
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@ -1196,7 +1245,7 @@ Public Class frmMonitor
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub GridViewResults_ColumnFilterChanged(sender As Object, e As EventArgs)
|
Private Sub GridViewResults_ColumnFilterChanged(sender As Object, e As EventArgs)
|
||||||
Dim oView As GridView = sender
|
Dim oView As GridView = CType(sender, GridView)
|
||||||
SetResultCount(oView.DataRowCount)
|
SetResultCount(oView.DataRowCount)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -1246,7 +1295,7 @@ Public Class frmMonitor
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetResultCount(pResults As Integer)
|
Private Sub SetResultCount(pResults As Integer)
|
||||||
lbResultCount.Caption = String.Format(lbResultCount.Tag, pResults)
|
lbResultCount.Caption = String.Format(CStr(lbResultCount.Tag), pResults)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetSearchTimeValue(pValue As String)
|
Private Sub SetSearchTimeValue(pValue As String)
|
||||||
@ -1258,7 +1307,7 @@ Public Class frmMonitor
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SetVersion()
|
Private Sub SetVersion()
|
||||||
lbVersion.Caption = String.Format(lbVersion.Tag, System.Reflection.Assembly.GetEntryAssembly().GetName().Version)
|
lbVersion.Caption = String.Format(CStr(lbVersion.Tag), System.Reflection.Assembly.GetEntryAssembly().GetName().Version)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub InitGrid()
|
Private Sub InitGrid()
|
||||||
@ -1327,8 +1376,8 @@ Public Class frmMonitor
|
|||||||
Try
|
Try
|
||||||
If Not IsNothing(SelectedChart) Then
|
If Not IsNothing(SelectedChart) Then
|
||||||
XtraSaveFileDialog1.Filter = "PDF Files (*.pdf*)|*.pdf"
|
XtraSaveFileDialog1.Filter = "PDF Files (*.pdf*)|*.pdf"
|
||||||
|
XtraSaveFileDialog1.FileName = SelectedChart.Titles(0).ToString()
|
||||||
If XtraSaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
|
If XtraSaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
|
||||||
' TODO: Filename
|
|
||||||
ExportChart2Pdf(SelectedChart, XtraSaveFileDialog1.FileName)
|
ExportChart2Pdf(SelectedChart, XtraSaveFileDialog1.FileName)
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
@ -1342,9 +1391,9 @@ Public Class frmMonitor
|
|||||||
Private Sub btnExportChart2PNG_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportChart2PNG.ItemClick
|
Private Sub btnExportChart2PNG_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportChart2PNG.ItemClick
|
||||||
Try
|
Try
|
||||||
If Not IsNothing(SelectedChart) Then
|
If Not IsNothing(SelectedChart) Then
|
||||||
XtraSaveFileDialog1.Filter = "PNG Files(* .png *)|*.png"
|
XtraSaveFileDialog1.Filter = "PNG Files (*.png*)|*.png"
|
||||||
|
XtraSaveFileDialog1.FileName = SelectedChart.Titles(0).ToString()
|
||||||
If XtraSaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
|
If XtraSaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
|
||||||
' TODO: Filename
|
|
||||||
ExportChartToImage(SelectedChart, XtraSaveFileDialog1.FileName)
|
ExportChartToImage(SelectedChart, XtraSaveFileDialog1.FileName)
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
|
|||||||
@ -116,19 +116,19 @@ Public Class GridLoader
|
|||||||
oChartViewResultContainer.Panel1.AddControl(oSplitContainerTop)
|
oChartViewResultContainer.Panel1.AddControl(oSplitContainerTop)
|
||||||
oChartViewResultContainer.Panel2.AddControl(oSplitContainerBottom)
|
oChartViewResultContainer.Panel2.AddControl(oSplitContainerBottom)
|
||||||
|
|
||||||
Dim oChartControlTopLeft As ChartControl = New ChartControl With {
|
Dim oChartControlTopLeft As New ChartControl With {
|
||||||
.Name = "ChartControlTopLeft",
|
.Name = "ChartControlTopLeft",
|
||||||
.Dock = DockStyle.Fill
|
.Dock = DockStyle.Fill
|
||||||
}
|
}
|
||||||
Dim oChartControlTopRight As ChartControl = New ChartControl With {
|
Dim oChartControlTopRight As New ChartControl With {
|
||||||
.Name = "ChartControlTopRight",
|
.Name = "ChartControlTopRight",
|
||||||
.Dock = DockStyle.Fill
|
.Dock = DockStyle.Fill
|
||||||
}
|
}
|
||||||
Dim oChartControlBottomLeft As ChartControl = New ChartControl With {
|
Dim oChartControlBottomLeft As New ChartControl With {
|
||||||
.Name = "ChartControlBottomLeft",
|
.Name = "ChartControlBottomLeft",
|
||||||
.Dock = DockStyle.Fill
|
.Dock = DockStyle.Fill
|
||||||
}
|
}
|
||||||
Dim oChartControlBottomRight As ChartControl = New ChartControl With {
|
Dim oChartControlBottomRight As New ChartControl With {
|
||||||
.Name = "ChartControlBottomRight",
|
.Name = "ChartControlBottomRight",
|
||||||
.Dock = DockStyle.Fill
|
.Dock = DockStyle.Fill
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,7 +93,7 @@ Public Class SearchLoader
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub LoadChartParameters()
|
Public Sub LoadChartParameters()
|
||||||
Dim oSQL As String = $"SELECT * FROM TBMON_CHARTS"
|
Dim oSQL As String = $"SELECT * FROM TBMON_CHARTS WHERE ACTIVE = 1"
|
||||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||||
Dim oParameters As New List(Of ChartParameter)
|
Dim oParameters As New List(Of ChartParameter)
|
||||||
|
|
||||||
@ -106,7 +106,8 @@ Public Class SearchLoader
|
|||||||
.SQLCommand = oRow.ItemEx("SQL_COMMAND", String.Empty),
|
.SQLCommand = oRow.ItemEx("SQL_COMMAND", String.Empty),
|
||||||
.ChartType = GetChartType(oRow.ItemEx("CHART_TYPE", String.Empty)),
|
.ChartType = GetChartType(oRow.ItemEx("CHART_TYPE", String.Empty)),
|
||||||
.Argument = oRow.ItemEx("ARGUMENT", String.Empty),
|
.Argument = oRow.ItemEx("ARGUMENT", String.Empty),
|
||||||
.Value = oRow.ItemEx("VALUE", String.Empty)
|
.Value = oRow.ItemEx("VALUE", String.Empty),
|
||||||
|
.LabelType = GetLabelType(oRow.ItemEx("LABEL_TYPE", String.Empty))
|
||||||
})
|
})
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@ -162,11 +163,24 @@ Public Class SearchLoader
|
|||||||
Return ChartTypeEnum.Line
|
Return ChartTypeEnum.Line
|
||||||
Case "PIE"
|
Case "PIE"
|
||||||
Return ChartTypeEnum.Pie
|
Return ChartTypeEnum.Pie
|
||||||
|
Case "STACKEDBAR"
|
||||||
|
Return ChartTypeEnum.StackedBar
|
||||||
Case Else
|
Case Else
|
||||||
Return ChartTypeEnum.Undefined
|
Return ChartTypeEnum.Undefined
|
||||||
End Select
|
End Select
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GetLabelType(pTypeString As String) As LabelTypeEnum
|
||||||
|
Select Case pTypeString.ToUpper
|
||||||
|
Case "NOLABELS"
|
||||||
|
Return LabelTypeEnum.NoLabels
|
||||||
|
Case "DEFAULT"
|
||||||
|
Return LabelTypeEnum.DefaultLabels
|
||||||
|
Case Else
|
||||||
|
Return LabelTypeEnum.NoLabels
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function GetChartPosType(pPosTypeId As Integer) As ChartPosEnum
|
Private Function GetChartPosType(pPosTypeId As Integer) As ChartPosEnum
|
||||||
Select Case pPosTypeId
|
Select Case pPosTypeId
|
||||||
Case 1
|
Case 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user