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.
|
---|