Use of MINDATE and MAXDATE Options (gantt7)
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: GANTT7 */
/* TITLE: Use of MINDATE and MAXDATE Options (gantt7) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: GANTT */
/* PROCS: CPM, SORT, GANTT */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: Example 7 in the GANTT Chapter (PM User's Guide) */
/* MISC: */
/* */
/****************************************************************/
title h=2 'Gantt Example 7';
title2 h=1.5 'Using the MINDATE= and MAXDATE= Options';
data widgaoa;
format task $12.;
input task & days tail head;
datalines;
Approve Plan 5 1 2
Drawings 10 2 3
Study Market 5 2 4
Write Specs 5 2 3
Prototype 15 3 5
Mkt. Strat. 10 4 6
Materials 10 5 7
Facility 10 5 7
Init. Prod. 10 7 8
Evaluate 10 8 9
Test Market 15 6 9
Changes 5 9 10
Production 0 10 11
Marketing 0 6 12
Dummy 0 8 6
;
data details;
format task $12. dept $13. descrpt $30.;
input task & dept & descrpt & ;
label dept = "Department"
descrpt = "Activity Description";
datalines;
Approve Plan Planning Finalize and Approve Plan
Drawings Engineering Prepare Drawings
Study Market Marketing Analyze Potential Markets
Write Specs Engineering Write Specifications
Prototype Engineering Build Prototype
Mkt. Strat. Marketing Develop Marketing Concept
Materials Manufacturing Procure Raw Materials
Facility Manufacturing Prepare Manufacturing Facility
Init. Prod. Manufacturing Initial Production Run
Evaluate Testing Evaluate Product In-House
Test Market Testing Mail Product to Sample Market
Changes Engineering Engineering Changes
Production Manufacturing Begin Full Scale Production
Marketing Marketing Begin Full Scale Marketing
Dummy . Production Milestone
;
data widgeta;
merge widgaoa details;
run;
* schedule the project;
proc cpm data=widgeta date='1dec03'd out=save;
tailnode tail;
headnode head;
duration days;
id task dept descrpt;
run;
* sort the schedule by the early start date ;
proc sort;
by e_start;
run;
* set up required pattern statements;
goptions reset=pattern;
pattern1 c=blue v=s;
pattern2 c=blue v=e;
pattern3 c=red v=s;
goptions vpos=40 hpos=100;
* plot the schedule;
proc gantt graphics data=save;
chart / mindate='1jan04'd maxdate='2feb04'd
ref='5jan04'd to '2feb04'd by week
reflabel cref=black lref=2 caxis=black
compress dur=days nojobnum;
id task;
run;