CLASS GanttGraph EXTENDS Graph
(Defined in: jpgraph_gantt.php : 331)
 GanttGraph  Graph  
 Add() 
 CreateSimple() 
 GanttGraph() 
 SetDateRange() 
 SetLabelVMarginFactor() 
 SetSimpleFont() 
 SetSimpleStyle() 
 SetVMarginFactor() 
 ShowHeaders() 
 Stroke() 
 
 

Class usage and Overview
Create a Gantt graph. The Gantt graph can then be built up by adding activity bars and milestones.

 

See also related classes:
GanttBar, GanttVLine and MileStone

 


Class Methods

 

 

function Add($aObject)
Add a new Gantt object

ArgumentDefaultDescription
$aObject  Gantt plot object

Description
Add a gantt object to the graph. A gantt object is an instance of either:  

Example

$vline = new GanttVLine("2002-02-28");
$vline->title->Set("2002-02-28");
$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
$graph->Add($vline);

 

 

function CreateSimple($data,$constrains,$progress)
A utility function to help create the Gantt charts

ArgumentDefaultDescription
$data  Gantt bar specification (See below)
$constrains array() Constrain specification (see below)
$progress array() Progress specification (see below)

Description
For a simple Gantt graphs this will simplify it's creation. The idea is that this method accepts a number of data arrays which specifies the activities in the Gantt graph.

Description of arguments

 
 
See also
GanttPlotObject::SetConstrain, Progress::Set, GanttGraph::SetSimpleFont and GanttGraph::SetSimpleStyle

Example

$data = array(
  array(0,ACTYPE_GROUP,    "Phase 1",  "2001-10-26","2001-11-23",''),
  array(1,ACTYPE_NORMAL,   "  Label 2",  "2001-10-26","2001-11-16",''),
  array(2,ACTYPE_NORMAL,   "  Label 3", "2001-11-20","2001-11-22",''),
  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );

// The constrains between the activities
$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
            array(2,3,CONSTRAIN_STARTSTART));

$progress = array(array(1,0.4));

// Create the basic graph
$graph = new GanttGraph();
$graph->title->Set("Example with grouping and constrains");

// Setup scale
$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);

// Add the specified activities
$graph->CreateSimple($data,$constrains,$progress);

// .. and stroke the graph
$graph->Stroke();

 

 

function GanttGraph($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline)
Create a new GanttGraph

ArgumentDefaultDescription
$aWidth 0 Width of graph
$aHeight 0 Height of graph
$aCachedName "" Filename to use if cache is enables
$aTimeOut 0 Timeout in minutes
$aInline true True=Stream back to browser

Description
Construct a new GanttGraph. This differs slightly from the standard Graph or PlotGraph in that you are not required to specify width and height of the graph. Instead these can be left out and will be automatically be determined.

As a further refinement you can just specify width and have the height be automtically determined.  
 

See also
Graph::Graph

Example

// Setup Gantt graph
$graph = new GanttGraph();
$graph->SetShadow();
$graph->SetBox();

// Only show part of the Gantt
$graph->SetDateRange('2001-11-22','2002-1-24');

 

 

function SetDateRange($aStart,$aEnd)
Specify date range for Gantt chart.

ArgumentDefaultDescription
$aStart  Start date
$aEnd  End date

Description
Specify the date range for Gantt graphs. If this is not set it will be automtically determined from the input data.

All gantt chart objects, like bar activities, will be clipped to the spcified date range should they happen to be wider then the specified range.

The date is specified as a normal date string according to the chosen locale.  

Example

$graph->SetDateRange('2001-11-22','2002-1-24');

 

 

function SetLabelVMarginFactor($aVal)
Set margin vertical factor.

ArgumentDefaultDescription
$aVal  Margin factor

Description
Specify the fraction of the font height that should be added as vertical margin between the labels. 

Example

$ganttgraph->SetLabelVMarginFactor(0.7);

 

 

function SetSimpleFont($aFont,$aSize)
Specify font for simplified Gantt graph

ArgumentDefaultDescription
$aFont  Font family
$aSize  Font size

Description
Specify font for simplified Gantt graph constructed with CreateSimple 
 
See also
GanttGraph::CreateSimple

Example

$ganttgraph->SetSimpleFont(FF_FONT2);

 

 

function SetSimpleStyle($aBand,$aColor,$aBkgColor)
Specify style parameters for graphs constructed with CreateSimple

ArgumentDefaultDescription
$aBand  Patern style
$aColor  Pattern color
$aBkgColor  Pattern background color

Description
Specify looks for bars in Gantt graph when the gantt chart is created with CreateSimple.

The pattern style can be one of

  1. GANTT_RDIAG, Right diagonal lines
  2. GANTT_LDIAG, Left diagonal lines
  3. GANTT_SOLID, Solid one color
  4. GANTT_LVERT, Vertical lines
  5. GANTT_LHOR, Horizontal lines
  6. GANTT_VLINE, Vertical lines
  7. GANTT_HLINE, Horizontal lines
  8. GANTT_3DPLANE, A 3D plane
  9. GANTT_HVCROSS, Crosses
  10. GANTT_DIAGCROSS, Diagonal crosses
 
 
See also
GanttGraph::CreateSimple and GanttBar::SetPattern

Example

$ganttgraph->SetSimpleStyle(GANTT_SOLID,'orange','orange');

 

 

function SetVMarginFactor($aVal)
Specify the margin factor for lines in the gantt graph

ArgumentDefaultDescription
$aVal  Vertical margin factor

Description
Specify the margin factor for lines in the Gantt graph. A factor of 1 makes each line take just as much space as it needs. A factor of 1.5 makes it 1.5 linmes apart and a factor of 2 makes it double-line spacing and so on.

Hint: When using icon in titles it is usually a good idea to use a margin factor > 1  
 

See also
GanttGraph::SetLabelVMarginFactor

Example

$graph->SetVMarginFactor(2);

 

 

function ShowHeaders($aFlg)
Determine what headers/scales to display.

ArgumentDefaultDescription
$aFlg  Logic OR of flags to specify what headers should be displayed.

Description
Specify what headers should be displayed on the Gantt charts. Possible headers are: To specify multiple header you just bitwise OR the wanted number of headers together.  

Example

// Show all headers
$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);

 

 

function Stroke($aStrokeFileName)
Internal. Stroke the gantt chart.

ArgumentDefaultDescription
$aStrokeFileName "" Filename to stroke image to

Description
Internal. Stroke the gantt chart. If a filename is specified then the graph will be stroked to that file and will not be sent back to the browser.

This should as usual be the last method called in your script.  
 

See also
Graph::Stroke

Example

$ganttgraph->Stroke();