Controlling Arc Routing Algorithm (netdre07)

/****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: NETDRE07                                            */
/*   TITLE: Controlling Arc Routing Algorithm (netdre07)        */
/* PRODUCT: OR                                                  */
/*  SYSTEM: ALL                                                 */
/*    KEYS: NETDRAW                                             */
/*   PROCS: CPM, NETDRAW                                        */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT:                             UPDATE:                 */
/*     REF: Example 7 from the NETDRAW Chapter (PM User's Guide)*/
/*    MISC:                                                     */
/*                                                              */
/****************************************************************/

data exmp1;
   input task     $ 1-16
         duration
         succesr1 $ 21-35
         succesr2 $ 36-50
         succesr3 $ 51-65;
   datalines;
Drill Well       4  Pump House
Pump House       3  Install Pipe
Power Line       3  Install Pipe
Excavate         5  Install Pipe   Install Pump   Foundation
Deliver Material 2  Assemble Tank
Assemble Tank    4  Erect Tower
Foundation       4  Erect Tower
Install Pump     6
Install Pipe     2
Erect Tower      6
;

proc cpm data=exmp1 date='1jan04'd out=sched;
   activity task;
   duration duration;
   successor succesr1 succesr2 succesr3;
   run;

pattern1 v=e c=green;
pattern2 v=e c=red;

title j=l h=3 ' Site: Old Well Road';
title2 j=l h=2 ' Date: January 1, 2004';
footnote j=r h=2 'Default Layout ';
proc netdraw data=sched graphics;
   actnet / act = task
            dur = duration
            succ = (succesr1-succesr3)
            boxht = 3 xbetween = 10
            separatearcs
            htext=2
            pcompress;
   run;

footnote j=r h=2 'Controlled Layout ';
proc netdraw data=sched graphics;
   actnet / act = task
            dur = duration
            succ = (succesr1-succesr3)
            boxht = 3 xbetween = 10
            separatearcs
            htracks=1
            htext=2
            pcompress
            dp;
   run;