The GANTT Procedure

Example 8.2 Customizing the Gantt Chart

This example shows how to control the format of the Gantt chart using CHART statement options. The Schedule data set used by PROC GANTT is the same as that used in Example 8.1. Output 8.2.1 is on three pages; the first page contains a detailed description of the various symbols used by the procedure to plot the schedule. This description is produced by using the SUMMARY option. The next two pages contain the Gantt chart. The LINEPRINTER option invokes the procedure in line-printer mode. The FILL option causes the first page to be filled as completely as possible before the second page is started. Thus, the first page of the chart contains 20 activities while the second page contains only 8 activities.

The MININTERVAL=WEEK specification defines the units of time for axis labeling. The SCALE=5 specification causes five columns of the chart to be used to display one week. The SKIP=2 specification causes two lines to be skipped between observations. The NOLEGEND option suppresses displaying of the legend, while the NOJOBNUM option causes job numbers to be omitted. The CRITFLAG option is used to produce the flag to the left of the main chart indicating if an activity is critical. Specifying BETWEEN=2 sets the number of columns between consecutive ID columns equal to 2. The REF= option produces the reference lines shown on the chart on the specified dates. The ID statement is used to display the activity names to the left of the chart. The ID statement also causes the activity 'strip' to appear only once in the chart. Thus, there are only 28 activities in this chart instead of 29, as in Example 8.1.

title 'Gantt Example 2';
title2 'Customizing the Gantt Chart';

proc gantt lineprinter;
   chart / summary
           fill
           mininterval=week scale=5
           skip=2
           nolegend
           nojobnum critflag between=2
           ref='10jun04'd to '30aug04'd by 15;
   id activity;
   run;

Output 8.2.1: Customizing the Gantt Chart

Gantt Example 2
Customizing the Gantt Chart

                                       Summary                                        
                                                                                      
                                                                                      
                   Symbols used for different times on the schedule                   
                                                                                      
                   Variable      Symbol          Variable      Symbol                 
                                                                                      
                                                                                      
                   E_START         <             L_START         <                    
                   E_FINISH        >             L_FINISH        >                    
                                                                                      
                                                                                      
                                Miscellaneous Symbols                                 
                                                                                      
                  Symbol      Explanation                                             
                                                                                      
                    |         Reference Line                                          
                                                                                      
                    *         Overprint character when start or                       
                              finish times coincide                                   
                                                                                      
                  Symbols used for joining start and/or finish times                  
                                                                                      
                  Symbol      Explanation                                             
                                                                                      
                      -       Duration of non-critical job                            
                                                                                      
                      .       Slack time for non-critical job                         
                                                                                      
                      =       Duration of critical job                                
                                                                                      
                      -       Slack time(neg.) for supercritical job                  
                                                                                      
                      *       Duration of supercritical job                           



Gantt Example 2
Customizing the Gantt Chart

                                   Summary (Contd.)                                   
                                                                                      
                                                                                      
                           Some examples of typical strings                           
                                                                                      
                  String            Description                                       
                                                                                      
                  <--->...<...>     Duration followed by slack time:                  
                                    early finish before late start                    
                                                                                      
                  <---<--->...>     Duration followed by slack time:                  
                                    early finish after late start                     
                                                                                      
                  <---*...>         Duration followed by slack time:                  
                                    early finish equals late start                    
                                                                                      
                  *===*             Duration of job on critical path                  
                                                                                      
                  <--->---<***>     Duration preceded by negative slack               
                                    time for a supercritical job:                     
                                    late finish before early start                    
                                                                                      
                  <---<***>***>     Duration preceded by negative slack               
                                    time for a supercritical job:                     
                                    late finish after early start                     
                                                                                      
                  <---****>         Duration preceded by negative slack               
                                    time for a supercritical job:                     
                                    late finish equals early start                    
                                                                                      

Gantt Example 2
Customizing the Gantt Chart

                            JUN  JUN  JUL  JUL  JUL  JUL  AUG  AUG  AUG  AUG  AUG  SEP
activity             Flag   21   28   05   12   19   26   02   09   16   23   30   06 
                           -+----+----+----+----+----+----+----+----+----+----+----+- 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
form                  CR   |*==*          |         |          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
pour                  CR   |   **         |         |          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
core                  CR   |   |*=========*         |          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
strip                 CR   |   |          *=*       |          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
curtain_wall          CR   |   |          | *==*    |          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
plumbing                   |   |          | <------*|.....>    |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
risers                     |   |          | <--<--->|.>        |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
doors                      |   |          | *.......|.......<> |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
electrical_walls           |   |          | <------<|-->......>|          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
balance_elevator           |   |          | <->.....|.......<.>|          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
port_masonry               |   |          | <->.....|........<>|          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
finish_masonry             |   |          |   <->...|.........<|>         |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
glaze_sash            CR   |   |          |    *===*|          |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
spray_fireproof       CR   |   |          |        *|=*        |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
insulate_walls             |   |          |        <|->....<..>|          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
                           -+----+----+----+----+----+----+----+----+----+----+----+- 



Gantt Example 2
Customizing the Gantt Chart

                            JUN  JUN  JUL  JUL  JUL  JUL  AUG  AUG  AUG  AUG  AUG  SEP
activity             Flag   21   28   05   12   19   26   02   09   16   23   30   06 
                           -+----+----+----+----+----+----+----+----+----+----+----+- 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
ceil_ducts_fixture    CR   |   |          |         | *===*    |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
test                  CR   |   |          |         |     *=*  |          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
insulate_mechanical   CR   |   |          |         |       *=*|          |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
lath                  CR   |   |          |         |         *|*         |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
plaster               CR   |   |          |         |          |*===*     |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
marble_work                |   |          |         |          |<-<>>     |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
acoustic_tiles        CR   |   |          |         |          |    *===* |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
tiling                     |   |          |         |          |    <<>.> |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
floor_finish          CR   |   |          |         |          |    *===* |         | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
paint                 CR   |   |          |         |          |        *=|*        | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
finish_mechanical     CR   |   |          |         |          |        *=|*        | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
finish_paint          CR   |   |          |         |          |          |*=*      | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
caulking_cleanup      CR   |   |          |         |          |          |  *=*    | 
                           |   |          |         |          |          |         | 
                           |   |          |         |          |          |         | 
                           -+----+----+----+----+----+----+----+----+----+----+----+-