| 1 | KMPDUG2 ;OAK/RAK - CM Tools Graph Utility ;2/17/04  09:59
 | 
|---|
| 2 |  ;;2.0;CAPACITY MANAGEMENT TOOLS;;Mar 22, 2002
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | OPTIONS(KMPUOPTS) ;-- select options.
 | 
|---|
| 5 |  ;-----------------------------------------------------------------------
 | 
|---|
| 6 |  ; KMPUOPTS.. Result of selection.
 | 
|---|
| 7 |  ;            Exceptions: "" - No options selected.
 | 
|---|
| 8 |  ;                        ^  - User up-arrowed out.
 | 
|---|
| 9 |  ;-----------------------------------------------------------------------
 | 
|---|
| 10 |  N I,X,OUT
 | 
|---|
| 11 |  S KMPUOPTS="",OUT=0
 | 
|---|
| 12 |  S DTIME=$S($G(DTIME):DTIME,1:300)
 | 
|---|
| 13 |  F  D  Q:OUT
 | 
|---|
| 14 |  .W !?5,"The following graph selections are 'optional':"
 | 
|---|
| 15 |  .D DISPLAY(.KMPUOPTS) I KMPUOPTS="" S OUT=1 Q
 | 
|---|
| 16 |  .R !!,"Enter one or more option letter(s): ",X:DTIME
 | 
|---|
| 17 |  .I X="" S OUT=1,KMPUOPTS="" Q
 | 
|---|
| 18 |  .I X="^" S OUT=1,KMPUOPTS="^" Q
 | 
|---|
| 19 |  .I X["?" D HELP W @IOF Q
 | 
|---|
| 20 |  .;
 | 
|---|
| 21 |  .; remove any commas, dashes or spaces.
 | 
|---|
| 22 |  .S X=$TR(X,",- ",""),X=$$UP^XLFSTR(X)
 | 
|---|
| 23 |  .;
 | 
|---|
| 24 |  .; check for invalid answer.
 | 
|---|
| 25 |  .D CHECK Q:KMPUOPTS=""
 | 
|---|
| 26 |  .;
 | 
|---|
| 27 |  .I X["A",(X'["V") D  Q
 | 
|---|
| 28 |  ..W *7,!!?10,"Angle Data Titles only available with a Vertical Graph..."
 | 
|---|
| 29 |  .;
 | 
|---|
| 30 |  .; if vertical display warning message.
 | 
|---|
| 31 |  .I X["V" D 
 | 
|---|
| 32 |  ..W !!?7,"...please be aware that because of screen limitations Vertical"
 | 
|---|
| 33 |  ..W !?7,"   Graphs are not as accurate as Horizontal Graphs and should be"
 | 
|---|
| 34 |  ..W !?7,"   used for visual comparison rather than detailed analysis..."
 | 
|---|
| 35 |  .;
 | 
|---|
| 36 |  .S KMPUOPTS=X,OUT=1
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | CHECK ;-- check for valid answer.
 | 
|---|
| 41 |  N I
 | 
|---|
| 42 |  F I=1:1:$L(X) I KMPUOPTS'[$E(X,I) D  Q
 | 
|---|
| 43 |  .W *7,!!?10,"'",$E(X,I),"' is not an available option."
 | 
|---|
| 44 |  .S KMPUOPTS=""
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | DISPLAY(KMPUOPT) ;-- display available options.
 | 
|---|
| 48 |  ;-----------------------------------------------------------------------
 | 
|---|
| 49 |  ; KMPUOPT... Will be set to available options.
 | 
|---|
| 50 |  ;-----------------------------------------------------------------------
 | 
|---|
| 51 |  N I S KMPUOPT="" W !
 | 
|---|
| 52 |  F I=1:1 Q:$T(OPT+I)']""  D 
 | 
|---|
| 53 |  .W !?7,$P($T(OPT+I),";",3)," - ",$P($T(OPT+I),";",4)
 | 
|---|
| 54 |  .S KMPUOPT=KMPUOPT_$P($T(OPT+I),";",3)
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | FTR(FOOTER,VALUE) ;print footer
 | 
|---|
| 58 |  ;--------------------------------------------------------------------
 | 
|---|
| 59 |  ;  line feed to IOSL-3 and place message on screen
 | 
|---|
| 60 |  ;  if IOSL or IOM are not defined routine will quit
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  ;  FOOTER - text to appear at the bottom of the screen
 | 
|---|
| 63 |  ;           if footer is not defined then the message
 | 
|---|
| 64 |  ;           'Press RETURN to continue, '^' to exit'   will appear
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;  footer appears in the middle of the screen
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  ;  VALUE - value returned:
 | 
|---|
| 69 |  ;          "" - if IOSL or IOM are not defined
 | 
|---|
| 70 |  ;           0 - if an uparrow '^' is entered
 | 
|---|
| 71 |  ;           1 - if return is entered
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  S VALUE=""
 | 
|---|
| 74 |  I '$G(IOSL)!('$G(IOM)) Q
 | 
|---|
| 75 |  N DIR,I,X,Y
 | 
|---|
| 76 |  I $G(FOOTER)']""  S FOOTER="Press RETURN to continue, '^' to exit"
 | 
|---|
| 77 |  I $G(IORVON)']""!($G(IORVOFF)']"") N IORVON,IORVOFF,X D 
 | 
|---|
| 78 |  .S X="IORVON;IORVOFF" D ENDR^%ZISS
 | 
|---|
| 79 |  S FOOTER=IORVON_" "_FOOTER_" "_IORVOFF
 | 
|---|
| 80 |  S DIR(0)="EA",DIR("A")=$J(" ",(IOM-$L(FOOTER)/2))_FOOTER
 | 
|---|
| 81 |  F I=$Y:1:(IOSL-3) W !
 | 
|---|
| 82 |  D ^DIR S VALUE=Y
 | 
|---|
| 83 |  Q
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | HELP ;--help display for options.
 | 
|---|
| 86 |  N KMPUOUT
 | 
|---|
| 87 |  W @IOF
 | 
|---|
| 88 |  W !,"A: Angle data titles..:  Angle the titles (for Vertical Graphs only)."
 | 
|---|
| 89 |  W !,"               Example:    __________"
 | 
|---|
| 90 |  W !,"                           |        |"
 | 
|---|
| 91 |  W !,"                           |        |"
 | 
|---|
| 92 |  W !,"                           |        |"
 | 
|---|
| 93 |  W !,"                           __________"
 | 
|---|
| 94 |  W !,"                           J  F  M  A"
 | 
|---|
| 95 |  W !,"                            a  e  a  p"
 | 
|---|
| 96 |  W !,"                             n  b  r  r"
 | 
|---|
| 97 |  W !
 | 
|---|
| 98 |  W !,"D: Double space data..: Will place an empty column/row between graph bars"
 | 
|---|
| 99 |  W !,"                        (it is highly recommended that double spacing be used"
 | 
|---|
| 100 |  W !,"                        with Vertical graphs)."
 | 
|---|
| 101 |  W !
 | 
|---|
| 102 |  W !,"G: Grid...............: Print grid lines on graph."
 | 
|---|
| 103 |  W !,"               example:   ______________________________"
 | 
|---|
| 104 |  W !,"                     Jan  |    |    |    |    |    |    |"
 | 
|---|
| 105 |  W !,"                     Feb  |    |    |    |    |    |    |"
 | 
|---|
| 106 |  W !,"                     Mar  |    |    |    |    |    |    |"
 | 
|---|
| 107 |  W !,"                     Apr  |    |    |    |    |    |    |"
 | 
|---|
| 108 |  W !,"                          ______________________________"
 | 
|---|
| 109 |  D FTR("",.KMPUOUT) Q:'KMPUOUT  W @IOF
 | 
|---|
| 110 |  W !,"S: Scientific Notation: If values are 1000 or greater the graph will normally"
 | 
|---|
| 111 |  W !,"                        display a description as...: (x10k),  (x100k), etc."
 | 
|---|
| 112 |  W !,"                      - Scientific notation will be: (x10^2), (x10^3), etc."
 | 
|---|
| 113 |  W !
 | 
|---|
| 114 |  W !,"V: Vertical graph.....: The default is horizontal display."
 | 
|---|
| 115 |  W !,"                      - Selecting this option will display data vertically"
 | 
|---|
| 116 |  W !,"                        (graph bars running top to bottom)."
 | 
|---|
| 117 |  D FTR("Press <RET> to continue: ") W @IOF,!!!
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 | OPT ;list of options
 | 
|---|
| 121 |  ;;A;Angle data titles (vertical graph only).
 | 
|---|
| 122 |  ;;D;Double space data.
 | 
|---|
| 123 |  ;;G;Grid.
 | 
|---|
| 124 |  ;;S;Scientific Notation.
 | 
|---|
| 125 |  ;;V;Vertical graph.
 | 
|---|