Plotting the Resource Constrained Schedule
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: GANTTE13 */
/* TITLE: Plotting the Resource Constrained Schedule */
/* (gantte13) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: GANTT */
/* PROCS: CPM, SORT, GANTT */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: Example 13 in the GANTT Chapter (PM User's Guide) */
/* MISC: */
/* */
/****************************************************************/
options ps=60 ls=80;
/* Activity-on-Node representation of the project */
data widgr19;
format Task $12. succ $12. ;
input Task & days succ & prodman hrdware minseg;
datalines;
Approve Plan 5 Drawings 1 . .
Approve Plan 5 Study Market 1 . .
Approve Plan 5 Write Specs 1 . .
Drawings 10 Prototype . 1 1
Study Market 5 Mkt. Strat. . . .
Write Specs 5 Prototype . . .
Prototype 15 Materials 1 . .
Prototype 15 Facility 1 . .
Mkt. Strat. 10 Test Market 1 . 1
Mkt. Strat. 10 Marketing 1 . 1
Materials 10 Init. Prod. . . .
Facility 10 Init. Prod. . . .
Init. Prod. 10 Test Market 1 . .
Init. Prod. 10 Marketing 1 . .
Init. Prod. 10 Evaluate 1 . .
Evaluate 10 Changes 1 . .
Test Market 15 Changes . . .
Changes 5 Production . . .
Production 0 . 1 . .
Marketing 0 . . . .
;
data widgrin;
format per date7.;
input per & date7. otype $ prodman hrdware;
datalines;
. restype 1 1
01dec03 reslevel 1 1
10dec03 reslevel . 0
12dec03 reslevel . 1
;
data holdata;
format hol date7.;
input hol & date7.;
datalines;
25dec03
01jan04
;
pattern1 c=green v=s; /* duration of a non-critical activity */
pattern2 c=green v=e; /* slack time for a noncrit. activity */
pattern3 c=red v=s; /* duration of a critical activity */
pattern4 c=magenta v=e; /* slack time for a supercrit. activity */
pattern5 c=magenta v=s; /* duration of a supercrit. activity */
pattern6 c=cyan v=s; /* actual duration of an activity */
pattern7 c=black v=e; /* break due to a holiday */
pattern8 c=blue v=s; /* resource schedule of activity */
pattern9 c=brown v=s; /* baseline schedule of activity */
proc cpm date='01dec03'd data=widgr19 out=spltschd
holidata=holdata resin=widgrin resout=spltrout
interval=weekday collapse;
activity task;
duration days;
successor succ;
holiday hol;
resource prodman hrdware / period=per obstype=otype
minsegmtdur=minseg
rcs avl;
id task;
run;
title 'Gantt Example 13';
title2 'Project Schedule: Splitting Allowed';
proc print data=spltschd;
run;
title h=1.75 'Gantt Example 13';
title2 h=1.25 'Resource Constrained Schedule';
* set vpos to 50 and hpos to 100;
goptions vpos=50 hpos=100;
* plot the resource-constrained schedule using proc gantt;
proc gantt data=spltschd holidata=holdata;
chart / holiday=(hol) dur=days
height=1.6 pcompress;
id task;
run;