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
|
||||
Area
|
||||
Pie
|
||||
StackedBar
|
||||
End Enum
|
||||
|
||||
Public Enum LabelTypeEnum
|
||||
NoLabels
|
||||
DefaultLabels
|
||||
End Enum
|
||||
|
||||
End Namespace
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
Public Argument As String
|
||||
Public Value As String
|
||||
Public SearchId As Integer
|
||||
Public LabelType As Constants.LabelTypeEnum
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return Title
|
||||
|
||||
@ -24,8 +24,7 @@ Imports DevExpress.XtraEditors
|
||||
Imports System.Drawing.Imaging
|
||||
Imports System.IO
|
||||
Imports DevExpress.XtraBars
|
||||
Imports DevExpress.Utils.CommonDialogs
|
||||
Imports System.Windows.Forms.VisualStyles
|
||||
|
||||
|
||||
Public Class frmMonitor
|
||||
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 FileResultTabs As List(Of XtraTabPage)
|
||||
Private FileResultViewerIndex As Integer = 0
|
||||
'Private FileResultViewerIndex As Integer = 0
|
||||
|
||||
Private HtmlResultViewers As List(Of RichEditControl)
|
||||
Private HtmlResultTabs As List(Of XtraTabPage)
|
||||
@ -184,7 +183,7 @@ Public Class frmMonitor
|
||||
|
||||
Private Function LoadGDPicture() As String
|
||||
Dim oSQL = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'"
|
||||
Return Database.GetScalarValue(oSQL)
|
||||
Return CStr(Database.GetScalarValue(oSQL))
|
||||
End Function
|
||||
|
||||
|
||||
@ -203,7 +202,7 @@ Public Class frmMonitor
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim oSearch As Search = cmbSearches.EditValue
|
||||
Dim oSearch As Search = CType(cmbSearches.EditValue, Search)
|
||||
|
||||
InvisibleMarkedColumns.Clear()
|
||||
VisibleMarkedColumns.Clear()
|
||||
@ -223,7 +222,7 @@ Public Class frmMonitor
|
||||
|
||||
Dim oControls As List(Of Control) = LayoutControl1.Controls.Cast(Of Control).ToList()
|
||||
Dim oSQL As String
|
||||
Dim oTable As DataTable
|
||||
Dim oTable As DataTable = Nothing
|
||||
|
||||
If oSearch.SQLCommand.Length > 0 Then
|
||||
oSQL = Patterns.ReplaceControlValues(oSearch.SQLCommand, oControls)
|
||||
@ -442,13 +441,17 @@ Public Class frmMonitor
|
||||
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}"
|
||||
oSerie = New Series(pChartParameters.Title, ViewType.Pie) With {
|
||||
.LegendTextPattern = "{A}"
|
||||
}
|
||||
Case ChartTypeEnum.StackedBar
|
||||
oSerie = New Series(pChartParameters.Title, ViewType.StackedBar)
|
||||
Case Else
|
||||
Return Nothing
|
||||
End Select
|
||||
|
||||
SetSerieLabels(oSerie, pChartParameters.ChartType, pChartParameters.LabelType)
|
||||
|
||||
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)
|
||||
@ -457,8 +460,8 @@ Public Class frmMonitor
|
||||
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)
|
||||
Dim value1 As String = CStr(oRow.Item(xAxisTitle))
|
||||
Dim value2 As String = CStr(oRow.Item(yAxisTitle))
|
||||
oSerie.Points.Add(New SeriesPoint(value1, value2))
|
||||
Next
|
||||
|
||||
@ -468,11 +471,53 @@ Public Class frmMonitor
|
||||
|
||||
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)
|
||||
' 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 {
|
||||
Dim oTitle As New ChartTitle With {
|
||||
.Text = pTitle
|
||||
}
|
||||
pChartView.Titles.Add(oTitle)
|
||||
@ -619,7 +664,7 @@ Public Class frmMonitor
|
||||
Return
|
||||
Else
|
||||
Dim oControl As Control = LayoutControl1.Controls.Find(oSearchParameter.PatternTitle, True).FirstOrDefault()
|
||||
oControl.Text = e.EditValue
|
||||
oControl.Text = CStr(e.EditValue)
|
||||
End If
|
||||
|
||||
Await LoadData()
|
||||
@ -663,7 +708,7 @@ Public Class frmMonitor
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If pRootNode.Item("PARENT_ID") = 0 Then
|
||||
If CType(pRootNode.Item("PARENT_ID"), Int32) = 0 Then
|
||||
' Auswertung für Parent-Knoten
|
||||
ExpandCollapseNode(pRootNode)
|
||||
End If
|
||||
@ -738,6 +783,7 @@ Public Class frmMonitor
|
||||
AdornerUIManager2.Hide()
|
||||
AdornerUIManager2.Elements.Clear()
|
||||
|
||||
' TODO - Hier passt etwas noch nicht
|
||||
Root.Clear(disposeItemAndControls:=False)
|
||||
LayoutControl1.Clear(True, True)
|
||||
|
||||
@ -768,6 +814,9 @@ Public Class frmMonitor
|
||||
Dim oSQL = pParam.ItemString
|
||||
Dim oTable = Database.GetDatatable(oSQL)
|
||||
Return oTable
|
||||
|
||||
Case Else
|
||||
Return Nothing
|
||||
End Select
|
||||
End Function
|
||||
|
||||
@ -1196,7 +1245,7 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
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)
|
||||
End Sub
|
||||
|
||||
@ -1246,7 +1295,7 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
Private Sub SetResultCount(pResults As Integer)
|
||||
lbResultCount.Caption = String.Format(lbResultCount.Tag, pResults)
|
||||
lbResultCount.Caption = String.Format(CStr(lbResultCount.Tag), pResults)
|
||||
End Sub
|
||||
|
||||
Private Sub SetSearchTimeValue(pValue As String)
|
||||
@ -1258,7 +1307,7 @@ Public Class frmMonitor
|
||||
End Sub
|
||||
|
||||
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
|
||||
|
||||
Private Sub InitGrid()
|
||||
@ -1327,8 +1376,8 @@ Public Class frmMonitor
|
||||
Try
|
||||
If Not IsNothing(SelectedChart) Then
|
||||
XtraSaveFileDialog1.Filter = "PDF Files (*.pdf*)|*.pdf"
|
||||
XtraSaveFileDialog1.FileName = SelectedChart.Titles(0).ToString()
|
||||
If XtraSaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
|
||||
' TODO: Filename
|
||||
ExportChart2Pdf(SelectedChart, XtraSaveFileDialog1.FileName)
|
||||
End If
|
||||
Else
|
||||
@ -1342,9 +1391,9 @@ Public Class frmMonitor
|
||||
Private Sub btnExportChart2PNG_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExportChart2PNG.ItemClick
|
||||
Try
|
||||
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
|
||||
' TODO: Filename
|
||||
ExportChartToImage(SelectedChart, XtraSaveFileDialog1.FileName)
|
||||
End If
|
||||
Else
|
||||
|
||||
@ -116,19 +116,19 @@ Public Class GridLoader
|
||||
oChartViewResultContainer.Panel1.AddControl(oSplitContainerTop)
|
||||
oChartViewResultContainer.Panel2.AddControl(oSplitContainerBottom)
|
||||
|
||||
Dim oChartControlTopLeft As ChartControl = New ChartControl With {
|
||||
Dim oChartControlTopLeft As New ChartControl With {
|
||||
.Name = "ChartControlTopLeft",
|
||||
.Dock = DockStyle.Fill
|
||||
}
|
||||
Dim oChartControlTopRight As ChartControl = New ChartControl With {
|
||||
Dim oChartControlTopRight As New ChartControl With {
|
||||
.Name = "ChartControlTopRight",
|
||||
.Dock = DockStyle.Fill
|
||||
}
|
||||
Dim oChartControlBottomLeft As ChartControl = New ChartControl With {
|
||||
Dim oChartControlBottomLeft As New ChartControl With {
|
||||
.Name = "ChartControlBottomLeft",
|
||||
.Dock = DockStyle.Fill
|
||||
}
|
||||
Dim oChartControlBottomRight As ChartControl = New ChartControl With {
|
||||
Dim oChartControlBottomRight As New ChartControl With {
|
||||
.Name = "ChartControlBottomRight",
|
||||
.Dock = DockStyle.Fill
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ Public Class SearchLoader
|
||||
End Sub
|
||||
|
||||
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 oParameters As New List(Of ChartParameter)
|
||||
|
||||
@ -106,7 +106,8 @@ Public Class SearchLoader
|
||||
.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)
|
||||
.Value = oRow.ItemEx("VALUE", String.Empty),
|
||||
.LabelType = GetLabelType(oRow.ItemEx("LABEL_TYPE", String.Empty))
|
||||
})
|
||||
Next
|
||||
|
||||
@ -162,11 +163,24 @@ Public Class SearchLoader
|
||||
Return ChartTypeEnum.Line
|
||||
Case "PIE"
|
||||
Return ChartTypeEnum.Pie
|
||||
Case "STACKEDBAR"
|
||||
Return ChartTypeEnum.StackedBar
|
||||
Case Else
|
||||
Return ChartTypeEnum.Undefined
|
||||
End Select
|
||||
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
|
||||
Select Case pPosTypeId
|
||||
Case 1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user