Using the MININTERVAL= and SCALE= Options(gantt6)
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: GANTT6 */
/* TITLE: Using the MININTERVAL= and SCALE= Options(gantt6) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: GANTT */
/* PROCS: CPM, SORT, GANTT */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: Example 6 in the GANTT Chapter (PM User's Guide) */
/* MISC: */
/* */
/****************************************************************/
options ps=60 ls=80;
title h=2 'Gantt Example 6';
title2 h=1.5 'Using the MININTERVAL= and SCALE= 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;
* print the schedule;
proc print;
id descrpt;
var dept e_: l_: t_float f_float;
run;
* set up required pattern statements;
goptions reset=pattern;
pattern1 c=blue v=s;
pattern2 c=blue v=x5;
pattern3 c=red v=s;
goptions vpos=43 hpos=80;
* plot the schedule;
proc gantt graphics;
chart / mininterval=week scale=10 dur=days
cmile=green nolegend caxis=black
ref='1dec03'd to '1feb04'd by month;
id descrpt;
run;