Gantt chart in vb.net windows application
-
29-06-2021 - |
Question
I am looking for developing Gantt chart application in vb.net windows application. I wants to know is there any free third party tool or some demo application so that I can learn about it.
Solution
You can use System.Windows.Forms.DataVisualization.Charting to do so. Here is some sample code.
Dim newSeries As New Series
openConn()'opens the connection
openRS("SELECT * FROM Data")'pull data from database
Do Until rs.EOF
newSeries = New Series'create a new dataSeries
yPlot1 = CDbl(rs.Fields("Start Date").Value.ToOADate())'set beginning of bar
yPlot2 = CDbl(DateAdd(DateInterval.Day, rs.Fields("Duration").Value, rs.Fields("Start Date").Value).ToOADate())'set end of bar
newSeries.ChartType = SeriesChartType.RangeBar
newSeries.YValuesPerPoint = 2
newSeries.CustomProperties = "DrawSideBySide=false"
xOrdinal = rs.Fields("Ordinal").Value
newSeries.Points.AddXY(xOrdinal, yPlot1, yPlot2)
newSeries.Points(0).ToolTip = rs.Fields("Task Name").Value.ToString
newSeries.Name = rs.Fields("Task Name").Value.ToString
newSeries.Points(0).Color = Color.FromKnownColor(DirectCast([Enum].Parse(GetType(KnownColor), CStr(rs.Fields("Color").Value.ToString)), KnownColor))
newSeries.Points(0).AxisLabel = rs.Fields("Ordinal Name").Value.ToString
seriesList.Add(newSeries)
rs.MoveNext()
Loop
rs = Nothing
cn.Close()
cn = Nothing
Chart1.Series.Clear()
For Each plotSeries As Series In seriesList
Chart1.Series.Add(plotSeries)
Next
Chart1.ChartAreas(0).AxisX.Interval = 1
Chart1.ChartAreas(0).AxisY.Interval = 7
Chart1.ChartAreas(0).AxisX.IsReversed = True
Chart1.ChartAreas(0).AxisY.IsStartedFromZero = False
Chart1.ChartAreas(0).AxisY.IsMarginVisible = False
Chart1.ChartAreas(0).AxisY.IntervalType = DateTimeIntervalType.Days
Chart1.ChartAreas(0).AxisY.Minimum = CDbl(#4/1/2012#.ToOADate())
Chart1.ChartAreas(0).AxisY.Maximum = CDbl(#6/30/2012#.ToOADate())
Chart1.ChartAreas(0).AxisY.LabelStyle.Format = "ddd M/d"
Chart1.Update()
You will need a Chart control on your form (Chart1). And of course, your data may be different, but this may give you the step you are missing. You can also check out the following document for further details.
http://wiki.visualwebgui.com/pages/images/6/6a/MSChartsGanttChartAndPrinting.pdf
OTHER TIPS
You can easily draw GANTT chart using GDI API in VB.NET. Take a look at codeproject article.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow