diff --git a/app/DD-Record-Organiser/frmDiagrams.Designer.vb b/app/DD-Record-Organiser/frmDiagrams.Designer.vb
index 7fb2ecd..2e23a94 100644
--- a/app/DD-Record-Organiser/frmDiagrams.Designer.vb
+++ b/app/DD-Record-Organiser/frmDiagrams.Designer.vb
@@ -26,10 +26,20 @@ Partial Class frmDiagrams
Me.SplitContainerMain = New System.Windows.Forms.SplitContainer()
Me.SplitContainerTop = New System.Windows.Forms.SplitContainer()
Me.ChartTopLeft = New DevExpress.XtraCharts.ChartControl()
+ Me.ToolStripTopLeft = New System.Windows.Forms.ToolStrip()
Me.ChartTopRight = New DevExpress.XtraCharts.ChartControl()
+ Me.ToolStripTopRight = New System.Windows.Forms.ToolStrip()
Me.SplitContainerBottom = New System.Windows.Forms.SplitContainer()
Me.ChartBottomLeft = New DevExpress.XtraCharts.ChartControl()
+ Me.ToolStripBottomLeft = New System.Windows.Forms.ToolStrip()
Me.ChartBottomRight = New DevExpress.XtraCharts.ChartControl()
+ Me.ToolStripBottomRight = New System.Windows.Forms.ToolStrip()
+ Me.ToolStripMain = New System.Windows.Forms.ToolStrip()
+ Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
+ Me.saveDialog = New System.Windows.Forms.SaveFileDialog()
+ Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
+ Me.txtExportTitle = New System.Windows.Forms.ToolStripTextBox()
+ Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerMain.Panel1.SuspendLayout()
Me.SplitContainerMain.Panel2.SuspendLayout()
@@ -46,12 +56,15 @@ Partial Class frmDiagrams
Me.SplitContainerBottom.SuspendLayout()
CType(Me.ChartBottomLeft, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ChartBottomRight, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.ToolStripMain.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainerMain
'
- Me.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill
- Me.SplitContainerMain.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainerMain.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.SplitContainerMain.Location = New System.Drawing.Point(0, 28)
Me.SplitContainerMain.Name = "SplitContainerMain"
Me.SplitContainerMain.Orientation = System.Windows.Forms.Orientation.Horizontal
'
@@ -62,8 +75,8 @@ Partial Class frmDiagrams
'SplitContainerMain.Panel2
'
Me.SplitContainerMain.Panel2.Controls.Add(Me.SplitContainerBottom)
- Me.SplitContainerMain.Size = New System.Drawing.Size(1160, 671)
- Me.SplitContainerMain.SplitterDistance = 386
+ Me.SplitContainerMain.Size = New System.Drawing.Size(1160, 643)
+ Me.SplitContainerMain.SplitterDistance = 369
Me.SplitContainerMain.TabIndex = 0
'
'SplitContainerTop
@@ -75,32 +88,52 @@ Partial Class frmDiagrams
'SplitContainerTop.Panel1
'
Me.SplitContainerTop.Panel1.Controls.Add(Me.ChartTopLeft)
+ Me.SplitContainerTop.Panel1.Controls.Add(Me.ToolStripTopLeft)
'
'SplitContainerTop.Panel2
'
Me.SplitContainerTop.Panel2.Controls.Add(Me.ChartTopRight)
- Me.SplitContainerTop.Size = New System.Drawing.Size(1160, 386)
+ Me.SplitContainerTop.Panel2.Controls.Add(Me.ToolStripTopRight)
+ Me.SplitContainerTop.Size = New System.Drawing.Size(1160, 369)
Me.SplitContainerTop.SplitterDistance = 386
Me.SplitContainerTop.TabIndex = 0
'
'ChartTopLeft
'
Me.ChartTopLeft.Dock = System.Windows.Forms.DockStyle.Fill
- Me.ChartTopLeft.Location = New System.Drawing.Point(0, 0)
+ Me.ChartTopLeft.Location = New System.Drawing.Point(0, 25)
Me.ChartTopLeft.Name = "ChartTopLeft"
Me.ChartTopLeft.SeriesSerializable = New DevExpress.XtraCharts.Series(-1) {}
- Me.ChartTopLeft.Size = New System.Drawing.Size(386, 386)
- Me.ChartTopLeft.TabIndex = 0
+ Me.ChartTopLeft.Size = New System.Drawing.Size(386, 344)
+ Me.ChartTopLeft.TabIndex = 2
+ '
+ 'ToolStripTopLeft
+ '
+ Me.ToolStripTopLeft.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.ToolStripTopLeft.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStripTopLeft.Name = "ToolStripTopLeft"
+ Me.ToolStripTopLeft.Size = New System.Drawing.Size(386, 25)
+ Me.ToolStripTopLeft.TabIndex = 1
+ Me.ToolStripTopLeft.Text = "ToolStrip1"
'
'ChartTopRight
'
Me.ChartTopRight.Dock = System.Windows.Forms.DockStyle.Fill
- Me.ChartTopRight.Location = New System.Drawing.Point(0, 0)
+ Me.ChartTopRight.Location = New System.Drawing.Point(0, 25)
Me.ChartTopRight.Name = "ChartTopRight"
Me.ChartTopRight.SeriesSerializable = New DevExpress.XtraCharts.Series(-1) {}
- Me.ChartTopRight.Size = New System.Drawing.Size(770, 386)
+ Me.ChartTopRight.Size = New System.Drawing.Size(770, 344)
Me.ChartTopRight.TabIndex = 1
'
+ 'ToolStripTopRight
+ '
+ Me.ToolStripTopRight.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.ToolStripTopRight.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStripTopRight.Name = "ToolStripTopRight"
+ Me.ToolStripTopRight.Size = New System.Drawing.Size(770, 25)
+ Me.ToolStripTopRight.TabIndex = 0
+ Me.ToolStripTopRight.Text = "ToolStrip2"
+ '
'SplitContainerBottom
'
Me.SplitContainerBottom.Dock = System.Windows.Forms.DockStyle.Fill
@@ -110,37 +143,92 @@ Partial Class frmDiagrams
'SplitContainerBottom.Panel1
'
Me.SplitContainerBottom.Panel1.Controls.Add(Me.ChartBottomLeft)
+ Me.SplitContainerBottom.Panel1.Controls.Add(Me.ToolStripBottomLeft)
'
'SplitContainerBottom.Panel2
'
Me.SplitContainerBottom.Panel2.Controls.Add(Me.ChartBottomRight)
- Me.SplitContainerBottom.Size = New System.Drawing.Size(1160, 281)
+ Me.SplitContainerBottom.Panel2.Controls.Add(Me.ToolStripBottomRight)
+ Me.SplitContainerBottom.Size = New System.Drawing.Size(1160, 270)
Me.SplitContainerBottom.SplitterDistance = 386
Me.SplitContainerBottom.TabIndex = 0
'
'ChartBottomLeft
'
Me.ChartBottomLeft.Dock = System.Windows.Forms.DockStyle.Fill
- Me.ChartBottomLeft.Location = New System.Drawing.Point(0, 0)
+ Me.ChartBottomLeft.Location = New System.Drawing.Point(0, 25)
Me.ChartBottomLeft.Name = "ChartBottomLeft"
Me.ChartBottomLeft.SeriesSerializable = New DevExpress.XtraCharts.Series(-1) {}
- Me.ChartBottomLeft.Size = New System.Drawing.Size(386, 281)
- Me.ChartBottomLeft.TabIndex = 0
+ Me.ChartBottomLeft.Size = New System.Drawing.Size(386, 245)
+ Me.ChartBottomLeft.TabIndex = 1
+ '
+ 'ToolStripBottomLeft
+ '
+ Me.ToolStripBottomLeft.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.ToolStripBottomLeft.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStripBottomLeft.Name = "ToolStripBottomLeft"
+ Me.ToolStripBottomLeft.Size = New System.Drawing.Size(386, 25)
+ Me.ToolStripBottomLeft.TabIndex = 0
+ Me.ToolStripBottomLeft.Text = "ToolStrip4"
'
'ChartBottomRight
'
Me.ChartBottomRight.Dock = System.Windows.Forms.DockStyle.Fill
- Me.ChartBottomRight.Location = New System.Drawing.Point(0, 0)
+ Me.ChartBottomRight.Location = New System.Drawing.Point(0, 25)
Me.ChartBottomRight.Name = "ChartBottomRight"
Me.ChartBottomRight.SeriesSerializable = New DevExpress.XtraCharts.Series(-1) {}
- Me.ChartBottomRight.Size = New System.Drawing.Size(770, 281)
- Me.ChartBottomRight.TabIndex = 0
+ Me.ChartBottomRight.Size = New System.Drawing.Size(770, 245)
+ Me.ChartBottomRight.TabIndex = 1
+ '
+ 'ToolStripBottomRight
+ '
+ Me.ToolStripBottomRight.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.ToolStripBottomRight.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStripBottomRight.Name = "ToolStripBottomRight"
+ Me.ToolStripBottomRight.Size = New System.Drawing.Size(770, 25)
+ Me.ToolStripBottomRight.TabIndex = 0
+ Me.ToolStripBottomRight.Text = "ToolStrip3"
+ '
+ 'ToolStripMain
+ '
+ Me.ToolStripMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.ToolStripMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton1, Me.ToolStripSeparator1, Me.ToolStripLabel1, Me.txtExportTitle})
+ Me.ToolStripMain.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStripMain.Name = "ToolStripMain"
+ Me.ToolStripMain.Size = New System.Drawing.Size(1160, 25)
+ Me.ToolStripMain.TabIndex = 1
+ Me.ToolStripMain.Text = "ToolStrip1"
+ '
+ 'ToolStripButton1
+ '
+ Me.ToolStripButton1.Image = Global.DD_Record_Organiser.My.Resources.Resources.pdf
+ Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButton1.Name = "ToolStripButton1"
+ Me.ToolStripButton1.Size = New System.Drawing.Size(101, 22)
+ Me.ToolStripButton1.Text = "Export als PDF"
+ '
+ 'ToolStripLabel1
+ '
+ Me.ToolStripLabel1.Name = "ToolStripLabel1"
+ Me.ToolStripLabel1.Size = New System.Drawing.Size(87, 22)
+ Me.ToolStripLabel1.Text = "Titel für Export:"
+ '
+ 'txtExportTitle
+ '
+ Me.txtExportTitle.Name = "txtExportTitle"
+ Me.txtExportTitle.Size = New System.Drawing.Size(150, 25)
+ '
+ 'ToolStripSeparator1
+ '
+ Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+ Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25)
'
'frmDiagrams
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1160, 671)
+ Me.Controls.Add(Me.ToolStripMain)
Me.Controls.Add(Me.SplitContainerMain)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmDiagrams"
@@ -150,25 +238,42 @@ Partial Class frmDiagrams
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerMain.ResumeLayout(False)
Me.SplitContainerTop.Panel1.ResumeLayout(False)
+ Me.SplitContainerTop.Panel1.PerformLayout()
Me.SplitContainerTop.Panel2.ResumeLayout(False)
+ Me.SplitContainerTop.Panel2.PerformLayout()
CType(Me.SplitContainerTop, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerTop.ResumeLayout(False)
CType(Me.ChartTopLeft, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChartTopRight, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerBottom.Panel1.ResumeLayout(False)
+ Me.SplitContainerBottom.Panel1.PerformLayout()
Me.SplitContainerBottom.Panel2.ResumeLayout(False)
+ Me.SplitContainerBottom.Panel2.PerformLayout()
CType(Me.SplitContainerBottom, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerBottom.ResumeLayout(False)
CType(Me.ChartBottomLeft, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChartBottomRight, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ToolStripMain.ResumeLayout(False)
+ Me.ToolStripMain.PerformLayout()
Me.ResumeLayout(False)
+ Me.PerformLayout()
End Sub
Friend WithEvents SplitContainerMain As System.Windows.Forms.SplitContainer
Friend WithEvents SplitContainerTop As System.Windows.Forms.SplitContainer
Friend WithEvents SplitContainerBottom As System.Windows.Forms.SplitContainer
Friend WithEvents ChartTopLeft As DevExpress.XtraCharts.ChartControl
+ Friend WithEvents ToolStripTopLeft As System.Windows.Forms.ToolStrip
Friend WithEvents ChartTopRight As DevExpress.XtraCharts.ChartControl
+ Friend WithEvents ToolStripTopRight As System.Windows.Forms.ToolStrip
Friend WithEvents ChartBottomLeft As DevExpress.XtraCharts.ChartControl
+ Friend WithEvents ToolStripBottomLeft As System.Windows.Forms.ToolStrip
Friend WithEvents ChartBottomRight As DevExpress.XtraCharts.ChartControl
+ Friend WithEvents ToolStripBottomRight As System.Windows.Forms.ToolStrip
+ Friend WithEvents ToolStripMain As System.Windows.Forms.ToolStrip
+ Friend WithEvents saveDialog As System.Windows.Forms.SaveFileDialog
+ Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
+ Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
+ Friend WithEvents ToolStripLabel1 As System.Windows.Forms.ToolStripLabel
+ Friend WithEvents txtExportTitle As System.Windows.Forms.ToolStripTextBox
End Class
diff --git a/app/DD-Record-Organiser/frmDiagrams.resx b/app/DD-Record-Organiser/frmDiagrams.resx
index fa68ea4..17164c9 100644
--- a/app/DD-Record-Organiser/frmDiagrams.resx
+++ b/app/DD-Record-Organiser/frmDiagrams.resx
@@ -117,6 +117,24 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 128, 17
+
+
+ 270, 17
+
+
+ 591, 17
+
+
+ 421, 17
+
+
+ 753, 17
+
+
+ 17, 17
+
diff --git a/app/DD-Record-Organiser/frmDiagrams.vb b/app/DD-Record-Organiser/frmDiagrams.vb
index 063210d..dd26520 100644
--- a/app/DD-Record-Organiser/frmDiagrams.vb
+++ b/app/DD-Record-Organiser/frmDiagrams.vb
@@ -1,6 +1,131 @@
-Imports DevExpress.XtraCharts
+Imports System.IO
+Imports System.Drawing.Imaging
+Imports DevExpress.XtraCharts
+Imports DevExpress.XtraPrinting
+Imports DevExpress.XtraPrintingLinks
Public Class frmDiagrams
+ Private toolbars As List(Of ToolStrip)
+ Private charts As List(Of ChartControl)
+ Private groupCount As Integer
+
+ Private CHART_TITLE_STRING As String
+
+ Private Sub frmDiagrams_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ Dim CHART_ENTITY_SQL, CHART_GROUPS_SQL, CHART_TITLE_SQL As String
+ Dim CHART_ENTITY_DT, CHART_GROUPS_DT As DataTable
+
+ CHART_TITLE_SQL = String.Format("SELECT NAME FROM TBPMO_FORM WHERE GUID = {0}", CURRENT_FORM_ID)
+ CHART_ENTITY_SQL = String.Format("SELECT * FROM TBPMO_CHART_ENTITY WHERE ENTITY_ID = {0}", CURRENT_FORM_ID)
+ CHART_GROUPS_SQL = String.Format("SELECT DISTINCT GROUP_ID FROM TBPMO_CHART_ENTITY WHERE ENTITY_ID = {0} ORDER BY GROUP_ID", CURRENT_FORM_ID)
+ CHART_TITLE_STRING = ClassDatabase.Execute_Scalar(CHART_TITLE_SQL)
+ CHART_ENTITY_DT = ClassDatabase.Return_Datatable(CHART_ENTITY_SQL)
+ CHART_GROUPS_DT = ClassDatabase.Return_Datatable(CHART_GROUPS_SQL)
+
+ Dim Groups As DataRowCollection = CHART_GROUPS_DT.Rows
+ groupCount = Groups.Count
+ toolbars = New List(Of ToolStrip) From {ToolStripTopLeft, ToolStripTopRight, ToolStripBottomLeft, ToolStripBottomRight}
+ charts = New List(Of ChartControl) From {ChartTopLeft, ChartTopRight, ChartBottomLeft, ChartBottomRight}
+
+ If groupCount = 0 Then
+ MsgBox("No Diagrams found")
+ Me.Close()
+ End If
+
+ Load_Settings()
+
+ Configure_Chart_Tool_Bars()
+ Configure_Split_Containers(groupCount)
+
+ If groupCount > 1 Then
+ For Each gRow As DataRow In Groups
+ Dim groupIndex As Integer = Groups.IndexOf(gRow)
+ Dim groupName As String = gRow.Item("GROUP_ID")
+
+ Dim groupCharts = CHART_ENTITY_DT.Select(String.Format("GROUP_ID = '{0}'", groupName))
+ Dim chart As ChartControl
+
+ For Each cRow As DataRow In groupCharts
+
+ Dim type = cRow.Item("TYPE_CHART")
+ Dim title = cRow.Item("TITLE")
+ Dim guid = cRow.Item("GUID")
+ Dim value = cRow.Item("VALUE")
+ Dim argument = cRow.Item("ARGUMENT")
+ Dim sql = cRow.Item("SQL_COMMAND")
+
+ Dim DATA_DT As DataTable = ClassDatabase.Return_Datatable(sql)
+
+ Dim series As Series = Create_Series(title, type)
+
+ ' Select Current Chart
+ chart = Select_Chart(groupIndex)
+ chart = charts.Item(groupIndex)
+
+ ' Set DataSource
+ chart.DataSource = DATA_DT
+
+ ' Set shown Columns for Chart
+ series.ArgumentDataMember = argument
+ series.ValueDataMembers.AddRange(New String() {value})
+
+ 'set some options
+ chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True
+
+ ' Show Data
+ chart.Series.Add(series)
+
+ Next ' End Charts
+ Next 'End Groups
+ Else
+ ' Create Charts
+ For Each row As DataRow In CHART_ENTITY_DT.Rows
+
+ Dim chart As ChartControl
+
+ Dim chartIndex 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
+ Dim series As Series = Create_Series(title, type)
+
+ ' Select Current Chart
+ chart = Select_Chart(chartIndex)
+
+ ' Set DataSource
+ chart.DataSource = DATA_DT
+
+ ' Set shown Columns for Chart
+ series.ArgumentDataMember = argument
+ series.ValueDataMembers.AddRange(New String() {value})
+
+ 'set some options
+ chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True
+ chart.OptionsPrint.SizeMode = Printing.PrintSizeMode.Stretch
+
+ ' Show Data
+ chart.Series.Add(series)
+ Next
+ End If
+
+ End Sub
+
+ Private Sub frmDiagrams_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+ Dim XMLPath As String = Get_Splitter_Layout_Filename()
+ Dim layout As New ClassLayout(XMLPath)
+ Dim settings As New List(Of ClassSetting)
+
+ settings = Get_Settings(settings)
+ layout.Save(settings)
+ End Sub
Private Function Get_Splitter_Layout_Filename() As String
Dim Filename As String = String.Format("{0}-Diagram-SplitterLayout.xml", CURRENT_FORM_ID)
@@ -57,8 +182,6 @@ Public Class frmDiagrams
Private Sub Configure_Split_Containers(VisibleContainers As Integer)
Select Case VisibleContainers
- Case 0
- MsgBox("No Diagrams found")
Case 1
' Show only ChartTopLeft
SplitContainerTop.Panel2Collapsed = True
@@ -78,15 +201,6 @@ Public Class frmDiagrams
End Select
End Sub
- Private Sub frmDiagrams_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
- Dim XMLPath As String = Get_Splitter_Layout_Filename()
- Dim layout As New ClassLayout(XMLPath)
- Dim settings As New List(Of ClassSetting)
-
- settings = Get_Settings(settings)
- layout.Save(settings)
- End Sub
-
Private Function Create_Series(title As String, type As String) As Series
Dim series As Series
@@ -123,97 +237,144 @@ Public Class frmDiagrams
End Select
End Function
- Private Sub frmDiagrams_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Dim CHART_ENTITY_SQL, CHART_GROUPS_SQL As String
- Dim CHART_ENTITY_DT, CHART_GROUPS_DT As DataTable
+ Private Sub Configure_Chart_Tool_Bars()
+ ToolStripTopLeft.Tag = ChartTopLeft
+ ToolStripTopRight.Tag = ChartTopRight
+ ToolStripBottomLeft.Tag = ChartBottomLeft
+ ToolStripBottomRight.Tag = ChartBottomRight
- CHART_ENTITY_SQL = String.Format("SELECT * FROM TBPMO_CHART_ENTITY WHERE ENTITY_ID = {0}", CURRENT_FORM_ID)
- CHART_GROUPS_SQL = String.Format("SELECT DISTINCT GROUP_ID FROM TBPMO_CHART_ENTITY WHERE ENTITY_ID = {0} ORDER BY GROUP_ID", CURRENT_FORM_ID)
- CHART_ENTITY_DT = ClassDatabase.Return_Datatable(CHART_ENTITY_SQL)
- CHART_GROUPS_DT = ClassDatabase.Return_Datatable(CHART_GROUPS_SQL)
+ For Each toolbar As ToolStrip In toolbars
+ toolbar.Items.Add("Export to Excel", My.Resources.xls, AddressOf ExportToExcel_Click)
+ toolbar.Items.Add("Export to PDF", My.Resources.pdf, AddressOf ExportToPdf_Click)
+ toolbar.Items.Add("Export to Image", My.Resources.bmp, AddressOf ExportToImage_Click)
+ Next
+ End Sub
- Dim Groups As DataRowCollection = CHART_GROUPS_DT.Rows
- Dim GroupCount As Integer = Groups.Count
+ Private Sub Confirm_Open_File(filepath As String)
+ Dim filename As String = New FileInfo(filepath).Name
+ Dim message As String
- Load_Settings()
- Configure_Split_Containers(GroupCount)
-
- If GroupCount > 1 Then
- For Each gRow As DataRow In Groups
- Dim groupIndex As Integer = Groups.IndexOf(gRow)
- Dim groupName As String = gRow.Item("GROUP_ID")
-
- Dim groupCharts = CHART_ENTITY_DT.Select(String.Format("GROUP_ID = '{0}'", groupName))
- Dim chart As ChartControl
-
- For Each cRow As DataRow In groupCharts
-
- Dim type = cRow.Item("TYPE_CHART")
- Dim title = cRow.Item("TITLE")
- Dim guid = cRow.Item("GUID")
- Dim value = cRow.Item("VALUE")
- Dim argument = cRow.Item("ARGUMENT")
- Dim sql = cRow.Item("SQL_COMMAND")
-
- Dim DATA_DT As DataTable = ClassDatabase.Return_Datatable(sql)
-
- Dim series As Series = Create_Series(title, type)
-
- ' Select Current Chart
- chart = Select_Chart(groupIndex)
-
- ' Set DataSource
- chart.DataSource = DATA_DT
-
- ' Set shown Columns for Chart
- series.ArgumentDataMember = argument
- series.ValueDataMembers.AddRange(New String() {value})
-
- 'set some options
- chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True
-
- ' Show Data
- chart.Series.Add(series)
-
- Next ' End Charts
- Next 'End Groups
+ If USER_LANGUAGE = "de_DE" Then
+ message = String.Format("Datei {0} erstellt. Jetzt öffnen?", filename)
Else
- ' Create Charts
- For Each row As DataRow In CHART_ENTITY_DT.Rows
-
- Dim chart As ChartControl
-
- Dim chartIndex 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
- Dim series As Series = Create_Series(title, type)
-
- ' Select Current Chart
- chart = Select_Chart(chartIndex)
-
- ' Set DataSource
- chart.DataSource = DATA_DT
-
- ' Set shown Columns for Chart
- series.ArgumentDataMember = argument
- series.ValueDataMembers.AddRange(New String() {value})
-
- 'set some options
- chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True
-
- ' Show Data
- chart.Series.Add(series)
- Next
+ message = String.Format("File {0} created. Open now?", filename)
End If
-
+
+ Dim successResult As DialogResult = MessageBox.Show(message, "Success", MessageBoxButtons.YesNo)
+ If successResult = Windows.Forms.DialogResult.Yes Then
+ Process.Start(filepath)
+ End If
+ End Sub
+
+ Private Sub ExportToPdf_Click(sender As ToolStripItem, e As EventArgs)
+ Dim item As ToolStripItem = sender
+ Dim toolbar As ToolStrip = item.GetCurrentParent()
+ Dim chart As ChartControl = toolbar.Tag
+ ExportCharts(New List(Of ChartControl) From {chart}, "pdf")
+ End Sub
+
+ Private Sub ExportToExcel_Click(sender As ToolStripItem, e As EventArgs)
+ Dim item As ToolStripItem = sender
+ Dim toolbar As ToolStrip = item.GetCurrentParent()
+ Dim chart As ChartControl = toolbar.Tag
+ ExportCharts(New List(Of ChartControl) From {chart}, "xls")
+ End Sub
+
+ Private Sub ExportToImage_Click(sender As ToolStripItem, e As EventArgs)
+ Dim item As ToolStripItem = sender
+ Dim toolbar As ToolStrip = item.GetCurrentParent()
+ Dim chart As ChartControl = toolbar.Tag
+ ExportCharts(New List(Of ChartControl) From {chart}, "img")
+ End Sub
+
+ Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+ ExportCharts(charts, "pdf")
+ End Sub
+
+ Private Sub ExportCharts(_charts As List(Of ChartControl), Optional ext As String = "pdf")
+ Try
+ ' Setup the 'page'
+ Dim printingSystem As New PrintingSystem
+ Dim compositeLink As New CompositeLink(printingSystem)
+ Dim count = 1 ' chart counter
+ compositeLink.Landscape = True ' set to landscape
+ AddHandler compositeLink.CreateMarginalHeaderArea, AddressOf compositeLink_CreateMarginalHeaderArea
+
+ ' Create Title
+ Dim titleLink As New Link()
+ AddHandler titleLink.CreateDetailHeaderArea, AddressOf titleLink_CreateDetailHeaderArea
+ compositeLink.Links.Add(titleLink)
+
+ ' Loop through charts
+ For Each chart As ChartControl In _charts
+ chart.OptionsPrint.SizeMode = Printing.PrintSizeMode.Zoom
+
+ Dim link As New PrintableComponentLink()
+ link.Component = chart
+ compositeLink.Links.Add(link)
+
+ If groupCount <= count Then
+ Exit For
+ Else
+ count = count + 1
+ End If
+ Next
+
+ Select Case ext
+ Case "img"
+ saveDialog.Filter = "PNG Images|*.png"
+ Case "xls"
+ saveDialog.Filter = "Excel Files|*.xlsx"
+ Case Else
+ saveDialog.Filter = "PDF Files|*.pdf"
+ End Select
+
+ saveDialog.FileName = String.Format("ADDI_Report_Export_{0}", Date.Now().ToString("dd-MM-yyyy"))
+
+ Dim result As DialogResult = saveDialog.ShowDialog()
+
+ If result = Windows.Forms.DialogResult.OK Then
+ Dim filename As String = saveDialog.FileName
+
+ Select Case ext
+ Case "img"
+ compositeLink.ExportToImage(filename)
+ Case "xls"
+ compositeLink.ExportToXlsx(filename)
+ Case Else
+ compositeLink.ExportToPdf(filename)
+ End Select
+
+ Application.DoEvents()
+ Confirm_Open_File(filename)
+ End If
+ Catch ex As Exception
+ MsgBox("Error while exporting Charts: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
+ End Try
+ End Sub
+
+ Private Sub compositeLink_CreateMarginalHeaderArea(sender As Object, e As CreateAreaEventArgs)
+ e.Graph.Font = New Font("Segoe UI", 10)
+ e.Graph.DrawPageInfo(PageInfo.DateTime, "{0:dd.MM.yyyy hhhh:mmmm}", Color.Black, New RectangleF(0, 0, 200, 50), BorderSide.None)
+ End Sub
+
+ Private Sub titleLink_CreateDetailHeaderArea(sender As Object, e As CreateAreaEventArgs)
+ Dim tbTitle As New TextBrick
+ Dim title As String
+
+ If txtExportTitle.Text.Trim <> String.Empty Then
+ title = txtExportTitle.Text
+ Else
+ title = CHART_TITLE_STRING
+ End If
+
+ tbTitle.Text = title
+ tbTitle.Font = New Font("Segoe UI", 18)
+ tbTitle.Rect = New RectangleF(0, 0, 300, 40)
+ tbTitle.BorderWidth = 0
+ tbTitle.BackColor = Color.Transparent
+ tbTitle.HorzAlignment = DevExpress.Utils.HorzAlignment.Near
+
+ e.Graph.DrawBrick(tbTitle)
End Sub
End Class
\ No newline at end of file