Resources

AOA Network Using the Annotate Facility (netdr17)

/****************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                 */
/*                                                              */
/*    NAME: NETDR17                                             */
/*   TITLE: AOA Network Using the Annotate Facility (netdr17)   */
/* PRODUCT: OR                                                  */
/*  SYSTEM: ALL                                                 */
/*    KEYS: NETDRAW                                             */
/*   PROCS: FORMAT, NETDRAW                                     */
/*    DATA:                                                     */
/*                                                              */
/* SUPPORT:                             UPDATE:                 */
/*     REF: Example 17 from the NETDRAW Chapter(PM User's Guide)*/
/*    MISC:                                                     */
/*                                                              */
/****************************************************************/

data widgaoa;
   format task $12. ;
   input task & days tail head _x_ _y_;
   datalines;
Approve Plan   5   1   2   1  2
Drawings      10   2   3   4  2
Study Market   5   2   4   4  2
Write Specs    5   2   3   4  2
Prototype     15   3   5   7  1
Mkt. Strat.   10   4   6  10  3
Materials     10   5   7  10  1
Facility      10   5   7  10  1
Init. Prod.   10   7   8  13  1
Evaluate      10   8   9  16  1
Test Market   15   6   9  18  2
Changes        5   9  10  20  1
Production     0  10  11  23  1
Marketing      0   6  12  19  2
Dummy          0   8   6  16  1
.              .  11   .  26  1
.              .  12   .  22  3
;


pattern1 v=e c=red;
title j=l h=3 ' Project: Widget Manufacture';
title2 j=l h=2 ' Network in Activity-on-Arc Format';
footnote j=r h=2 'Initial Layout ';

proc netdraw graphics data=widgaoa out=netout;
   actnet / act=tail
            succ=head
            id=(tail)
            align=_x_
            zone=_y_
            ybetween = 10
            nodefid
            nolabel
            pcompress
            htext=2;
   label _y_=' Y \ X ';
run;


data netin;
  set netout;
  if _from_=4 and _to_=6 and _seq_>0 then _x_=16.5;
  run;

data anno1;
   set netout;
   if _seq_=0;
   /* Set up required variable lengths, etc. */
   length function color style   $8;
   length xsys ysys hsys         $1;
   length when position          $1;
   length TEXT                   $12;
   xsys     = '2';
   ysys     = '2';
   hsys     = '4';
   when     = 'a';
   function = 'label   ';
   size = 2;
   position = '5';
   TEXT = left(put(tail, f2.));
   x=_x_;
   if _y_ = 1 then y=_y_-.3;
   else            y=_y_+.5;
   run;


data anno2;
   /* Set up required variable lengths, etc. */
   length function color style   $8;
   length xsys ysys hsys         $1;
   length when position          $1;
   length TEXT                   $12;
   xsys     = '2';
   ysys     = '2';
   hsys     = '4';
   when     = 'a';
   function = 'label   ';
   size = 2;
   position = '5';
   x=2.5;  y=1.8;  TEXT='Approve Plan'; output;
   x=5.5;  y=.8;   TEXT='Drawings';     output;
   x=5.7;  y=1.4;  TEXT='Write Specs';  output;
   x=7;    y=3.4;  TEXT='Study Market';  output;
   x=8.5;  y=.8;   TEXT='Prototype';    output;
   x=11.5; y=1.4;  TEXT='Facility';     output;
   x=11.5; y=.8;   TEXT='Materials';    output;
   x=14.5; y=.9;   TEXT='Init. Prod';   output;
   x=13.5; y=3.4;  TEXT='Mkt. Strat.';  output;
   x=18;   y=.8;   TEXT='Evaluate';     output;
   x=21.5; y=.8;   TEXT='Changes';      output;
   x=24.5; y=.8;   TEXT='Production';   output;
   x=20;   y=3.4;  TEXT='Marketing';    output;
   position=6;
   x=16.6; y=1.5;  TEXT='Dummy';        output;
   x=18.6; y=1.5;  TEXT='Test Market';  output;
   ;

data anno;
   set anno1 anno2;
   run;


footnote j=r h=2 'Annotated and Modified Layout ';
pattern1 v=s c=red;

proc netdraw graphics data=netin anno=anno;
   actnet / nodefid
            nolabel
            boxwidth=1
            pcompress
            novcenter
            vmargin=20
            xbetween=10;
run;