Files
RecordOrganizer/app/DD-Record-Organiser/frmDiagrams.vb
2016-10-05 16:56:00 +02:00

95 lines
3.6 KiB
VB.net

Imports DevExpress.XtraCharts
Public Class frmDiagrams
Private Sub frmDiagrams_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim CHART_ENTITY_SQL As String = "SELECT * FROM TBPMO_CHART_ENTITY WHERE ENTITY_ID = " & CURRENT_FORM_ID
Dim CHART_ENTITY_DT As DataTable = ClassDatabase.Return_Datatable(CHART_ENTITY_SQL)
' Check if Bottom Chart containers are needed
Select Case CHART_ENTITY_DT.Rows.Count
Case 0
MsgBox("No Diagrams found")
Case 1
' Show only ChartTopLeft
SplitContainerTop.Panel2Collapsed = True
' Collapse SplitContainerBottom
SplitContainerMain.Panel2Collapsed = True
Case 2
' Collapse SplitContainerBottom
SplitContainerMain.Panel2Collapsed = True
Case 3
' Collapse ChartBottomRight
SplitContainerBottom.Panel2Collapsed = True
' Show SplitContainerBottom
SplitContainerMain.Panel2Collapsed = False
Case 4
' Show SplitContainerBottom
SplitContainerMain.Panel2Collapsed = False
End Select
'Adjust With and Height of containers
Dim containerW = Me.Width / 2
SplitContainerTop.SplitterDistance = containerW
SplitContainerBottom.SplitterDistance = containerW
Dim containerH = Me.Height / 2
SplitContainerMain.SplitterDistance = containerH
' Create Charts
For Each row As DataRow In CHART_ENTITY_DT.Rows
Dim series As Series
Dim chart As ChartControl
Dim i As Integer = CHART_ENTITY_DT.Rows.IndexOf(row)
Dim type = row.Item("TYPE_CHART")
Dim title = row.Item("TITLE")
Dim guid = row.Item("GUID")
Dim value = row.Item("VALUE")
Dim argument = row.Item("ARGUMENT")
Dim sql = row.Item("SQL_COMMAND")
Dim DATA_DT As DataTable = ClassDatabase.Return_Datatable(sql)
' Create series based on type
Select Case type
Case "BAR"
series = New Series(title, ViewType.Bar)
Case "LINE"
series = New Series(title, ViewType.Line)
Case "AREA"
series = New Series(title, ViewType.Area)
Case Else
Throw New Exception("Unknown Chart type for id " & title)
End Select
' Select Current Chart
Select Case i
Case 0
chart = ChartTopLeft
Case 1
chart = ChartTopRight
Case 2
chart = ChartBottomLeft
Case Else
chart = ChartBottomRight
End Select
' Set DataSource
chart.DataSource = DATA_DT
' Set shown Columns for Chart
series.ArgumentDataMember = argument
series.ValueDataMembers.AddRange(New String() {value})
' Show Data
chart.Series.Add(series)
Next
Catch ex As Exception
MsgBox("Error While loading Diagram Data: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
End Class