Example: /ChartDirector/layergantt

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/ChartDirector/layergantt


Required plugins for this example: MBS ChartDirector Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /ChartDirector/layergantt

This example is the version from Fri, 2nd Aug 2012.

Project "layergantt.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class PicWindow Inherits Window
EventHandler Sub Open() // the names of the tasks dim labels(-1) as string = array("Market Research", "Define Specifications", "Overall Archiecture", "Project Planning", "Detail Design", "Software Development", "Test Plan", "Testing and QA", "User Documentation") // the planned start dates and end dates for the tasks dim startDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 16), CDXYChartMBS.chartTime(2004, 8, 30), CDXYChartMBS.chartTime(2004, 9, 13), CDXYChartMBS.chartTime(2004, 9, 20), CDXYChartMBS.chartTime(2004, 9, 27), CDXYChartMBS.chartTime(2004,10, 4), CDXYChartMBS.chartTime(2004, 10, 25), CDXYChartMBS.chartTime(2004, 11, 1), CDXYChartMBS.chartTime(2004, 11, 8)) dim endDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 30), CDXYChartMBS.chartTime(2004, 9, 13), CDXYChartMBS.chartTime(2004, 9, 27), CDXYChartMBS.chartTime(2004, 10, 4), CDXYChartMBS.chartTime(2004, 10, 11), CDXYChartMBS.chartTime(2004, 11, 8), CDXYChartMBS.chartTime(2004, 11, 8), CDXYChartMBS.chartTime(2004, 11, 22), CDXYChartMBS.chartTime(2004, 11, 22)) // the actual start dates and end dates for the tasks up to now dim actualStartDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 16), CDXYChartMBS.chartTime(2004, 8, 27), CDXYChartMBS.chartTime(2004, 9, 9), CDXYChartMBS.chartTime(2004, 9, 18), CDXYChartMBS.chartTime(2004, 9, 22)) dim actualEndDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 27), CDXYChartMBS.chartTime(2004, 9, 9), CDXYChartMBS.chartTime(2004, 9, 27), CDXYChartMBS.chartTime(2004, 10, 2), CDXYChartMBS.chartTime(2004, 10, 8)) // Create a XYChart object of size 620 x 280 pixels. Set background color to // light green (ccffcc) with 1 pixel 3D border effect. dim c as new CDXYChartMBS(620, 280, &hccffcc, &h000000, 1) // Add a title to the chart using 15 points Times Bold Itatic font, with white // (ffffff) text on a dark green (&h6000) background c.addTitle("Multi-Layer Gantt Chart Demo", "timesbi.ttf", 15, &hffffff).setBackground(&h006000) // Set the plotarea at (140, 55) and of size 460 x 200 pixels. Use alternative // white/grey background. Enable both horizontal and vertical grids by setting // their colors to grey (c0c0c0). Set vertical major grid (represents month // boundaries) 2 pixels in width c.setPlotArea(140, 55, 460, 200, &hffffff, &heeeeee, CDXYChartMBS.kLineColor, &hc0c0c0,&hc0c0c0).setGridWidth(2, 1, 1, 1) // swap the x and y axes to create a horziontal box-whisker chart c.swapXY // Set the y-axis scale to be date scale from Aug 16, 2004 to Nov 22, 2004, with // ticks every 7 days (1 week) c.yAxis.setDateScale(CDXYChartMBS.chartTime(2004, 8, 16), CDXYChartMBS.chartTime(2004, 11, 22), 86400 * 7) // Add a red (ff0000) dash line to represent the current day call c.yAxis.addMark(c.chartTime(2004, 10, 8),c.dashLineColor(&hff0000,c.kDashLine)) // Set multi-style axis label formatting. Month labels are in Arial Bold font in // "mmm d" format. Weekly labels just show the day of month and use minor tick // (by using '-' as first character of format string). c.yAxis.setMultiFormat(CDXYChartMBS.StartOfMonthFilter, "<*font=arialbd.ttf*>{value|mmm d}", CDXYChartMBS.StartOfDayFilter, "-{value|d}") // Set the y-axis to shown on the top (right + swapXY = top) c.setYAxisOnRight // Set the labels on the x axis call c.xAxis.setLabels(labels) // Reverse the x-axis scale so that it points downwards. c.xAxis.setReverse // Set the horizontal ticks and grid lines to be between the bars c.xAxis.setTickOffset(0.5) // Use blue (0000aa) as the color for the planned schedule dim plannedColor as integer = &h0000aa // Use a red hash pattern as the color for the actual dates. The pattern is // created as a 4 x 4 bitmap defined in memory as an array of colors. dim pattern1(-1) as integer pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hff0000 pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hff0000 pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hff0000 pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hff0000 pattern1.append &hffffff pattern1.append &hffffff pattern1.append &hffffff dim actualColor as integer actualColor = c.patternColor(pattern1, 4) // Add a box whisker layer to represent the actual dates. We add the actual dates // layer first, so it will be the top layer. dim actualLayer as CDBoxWhiskerLayerMBS actualLayer = c.addBoxLayer(actualStartDate, actualEndDate, actualColor, "Actual") // Set the bar height to 8 pixels so they will not block the bottom bar actualLayer.setDataWidth(8) // Add a box-whisker layer to represent the planned schedule date c.addBoxLayer(startDate, endDate, plannedColor, "Planned").setBorderColor(CDXYChartMBS.kSameAsMainColor) // Add a legend box on the top right corner (595, 60) of the plot area with 8 pt // Arial Bold font. Use a semi-transparent grey (80808080) background. dim b as CDLegendBoxMBS b = c.addLegend(595, 60, false, "arialbd.ttf", 8) b.setAlignment(CDXYChartMBS.kTopRight) b.setBackground(&h80808080, -1, 2) // Output the chart Backdrop=c.makeChartPicture End EventHandler
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project

The items on this page are in the following plugins: MBS ChartDirector Plugin.


💬 Ask a question or report a problem