1 | DDGLIBH ;SFISC/MKO-SCREEN EDITOR HELP ;08:00 AM 23 Feb 1995
|
---|
2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | HLP(DDGLHN1,DDGLHN2,DDGLSUB,DDGLPLN) ;
|
---|
6 | ;DDGLHN1 = Entry number in Dialog file of first help screen
|
---|
7 | ;DDGLHN2 = Entry number of last help screen
|
---|
8 | ;DDGLSUB = Subscript in ^TMP to copy help to
|
---|
9 | ;DDGLPLN = $Y to print prompt
|
---|
10 | ;
|
---|
11 | N DX,DY,DDGLI,DDGLJ,DDGLSC,DDGLTX,DDGLX,DIHELP,DDGL0
|
---|
12 | S DDGL0=$C(31)
|
---|
13 | D:'$D(DDGLH) GETKEY
|
---|
14 | I $D(IOTM)[0 N IOTM S IOTM=1
|
---|
15 | I $D(IOBM)[0 N IOBM S IOBM=IOSL
|
---|
16 | I '$G(DDGLPLN) S DDGLPLN=IOBM-1
|
---|
17 | S DDGLSC=DDGLHN1
|
---|
18 | ;
|
---|
19 | D DISP(DDGLHN1)
|
---|
20 | ;
|
---|
21 | F S DDGLX=$$READ D @DDGLX Q:DDGLX=U
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | UP I DDGLSC>DDGLHN1 S DDGLSC=DDGLSC-1 D DISP(DDGLSC)
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | DN I DDGLSC<DDGLHN2 S DDGLSC=DDGLSC+1 D DISP(DDGLSC)
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | TO W $C(7)
|
---|
31 | QT S DDGLX=U
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | PT ;Prompt for device and print
|
---|
35 | ;Clear screen
|
---|
36 | N POP
|
---|
37 | N %,%A,%B,%B1,%B2,%B3,%BA,%C,%E,%G,%H,%I,%J,%K,%M,%N
|
---|
38 | N %P,%S,%T,%W,%X,%Y
|
---|
39 | N %A0,%D1,%D2,%DT,%J1,%W0
|
---|
40 | ;
|
---|
41 | S DY=IOTM-1,DX=0 X IOXY
|
---|
42 | W $P(DDGLVID,DDGLDEL)_"PRINT THE HELP SCREENS"_$P(DDGLVID,DDGLDEL,10)_$P(DDGLCLR,DDGLDEL)
|
---|
43 | F DDGLI=1:1:IOBM-IOTM W $C(13,10)_$P(DDGLCLR,DDGLDEL)
|
---|
44 | S DY=IOTM+1,DX=0 X IOXY
|
---|
45 | ;
|
---|
46 | X DDGLZOSF("EON"),DDGLZOSF("TRMOFF")
|
---|
47 | S X=$G(IOM,80) X ^%ZOSF("RM")
|
---|
48 | W $P(DDGLVID,DDGLDEL,9)
|
---|
49 | ;
|
---|
50 | DEVICE ;Device prompt
|
---|
51 | N IOF,IOSL
|
---|
52 | S IOF="#",IOSL=IOBM-IOTM+1 ;In case help frames are invoked
|
---|
53 | S %ZIS=$S($D(^%ZTSK):"Q",1:""),%ZIS("B")=""
|
---|
54 | D ^%ZIS K %ZIS
|
---|
55 | ;
|
---|
56 | I POP D
|
---|
57 | . W !!,"Report canceled!"
|
---|
58 | . H 2
|
---|
59 | ;
|
---|
60 | ;Queue report
|
---|
61 | E I $D(IO("Q")),$D(^%ZTSK) D
|
---|
62 | . S ZTRTN="PRINT^DDGLIBH"
|
---|
63 | . S ZTDESC="Help screen printout."
|
---|
64 | . N I F I="DDGLHN1","DDGLHN2" S ZTSAVE(I)=""
|
---|
65 | . D ^%ZTLOAD
|
---|
66 | . I $D(ZTSK)#2 W !,"Report queued!",!,"Task number: "_ZTSK,!
|
---|
67 | . E W !,"Report canceled!",!
|
---|
68 | . K ZTSK
|
---|
69 | . S IOP="HOME" D ^%ZIS
|
---|
70 | ;
|
---|
71 | E I $E(IOST,1,2)="C-" D G DEVICE
|
---|
72 | . W !,$C(7)_"You cannot print the help screens on a CRT.",!
|
---|
73 | ;
|
---|
74 | ;Non-queued report
|
---|
75 | E D
|
---|
76 | . W !,"Printing ..."
|
---|
77 | . U IO
|
---|
78 | . D PRINT
|
---|
79 | . X $G(^%ZIS("C"))
|
---|
80 | ;
|
---|
81 | ;Repaint help screen
|
---|
82 | X DDGLZOSF("EOFF"),DDGLZOSF("TRMON")
|
---|
83 | S X=0 X ^%ZOSF("RM")
|
---|
84 | W $P(DDGLVID,DDGLDEL,8)
|
---|
85 | D DISP(DDGLSC)
|
---|
86 | Q
|
---|
87 | ;
|
---|
88 | PRINT ;
|
---|
89 | N DDGLJ,DDGLL,DDGLP
|
---|
90 | F DDGLI=DDGLHN1:1:DDGLHN2 D
|
---|
91 | . I DDGLI'=DDGLHN1 D
|
---|
92 | .. I $Y+$O(^DI(.84,DDGLI,2," "),-1)+2'<IOSL W @IOF
|
---|
93 | .. E W !!
|
---|
94 | . S DDGLJ=0
|
---|
95 | . F S DDGLJ=$O(^DI(.84,DDGLI,2,DDGLJ)) Q:'DDGLJ D
|
---|
96 | .. S DDGLL=$G(^DI(.84,DDGLI,2,DDGLJ,0))
|
---|
97 | .. F Q:DDGLL'["\" D
|
---|
98 | ... S DDGLP=$F(DDGLL,"\") Q:$E(DDGLL,DDGLP)="\"
|
---|
99 | ... S $E(DDGLL,DDGLP-1,DDGLP)=""
|
---|
100 | .. W !,DDGLL
|
---|
101 | ;
|
---|
102 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | DISP(DDGLHN) ;Print help screen DDGLHN
|
---|
106 | N DDGLHARR
|
---|
107 | S DDGLHARR=$NA(^TMP(DDGLSUB,$J,DDGLHN))
|
---|
108 | D:'$D(@DDGLHARR) BLD^DIALOG(DDGLHN,"","",DDGLHARR)
|
---|
109 | ;
|
---|
110 | S DY=IOTM-1,DX=0 X IOXY
|
---|
111 | F DDGLI=1:1 Q:'$D(@DDGLHARR@(DDGLI)) S DDGLTX=^(DDGLI) D
|
---|
112 | . I DDGLTX["\B" F S DDGLJ=$F(DDGLTX,"\B") Q:'DDGLJ D
|
---|
113 | .. S $E(DDGLTX,DDGLJ-2,DDGLJ-1)=$P(DDGLVID,DDGLDEL)
|
---|
114 | . I DDGLTX["\n" F S DDGLJ=$F(DDGLTX,"\n") Q:'DDGLJ D
|
---|
115 | .. S $E(DDGLTX,DDGLJ-2,DDGLJ-1)=$P(DDGLVID,DDGLDEL,10)
|
---|
116 | . W $S(DDGLI>1:$C(13,10),1:"")_DDGLTX_$P(DDGLCLR,DDGLDEL)
|
---|
117 | ;
|
---|
118 | F DDGLI=DDGLI:1:IOBM-IOTM+1 W $C(13,10)_$P(DDGLCLR,DDGLDEL)
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | READ() ;
|
---|
122 | S DY=DDGLPLN,DX=0 X IOXY
|
---|
123 | W $P(DDGLCLR,DDGLDEL)_"Press "
|
---|
124 | W:DDGLSC>DDGLHN1 $P(DDGLVID,DDGLDEL)_"<Up>"_$P(DDGLVID,DDGLDEL,10)_" for previous page, "
|
---|
125 | W:DDGLSC<DDGLHN2 $P(DDGLVID,DDGLDEL)_"<Down>"_$P(DDGLVID,DDGLDEL,10)_" for next page, "
|
---|
126 | W $P(DDGLVID,DDGLDEL)_"P"_$P(DDGLVID,DDGLDEL,10)_" to print, "
|
---|
127 | W $P(DDGLVID,DDGLDEL)_"^"_$P(DDGLVID,DDGLDEL,10)_" to exit: "
|
---|
128 | D GETCH(DTIME,.DDGLX)
|
---|
129 | S DY=DDGLPLN,DX=0 X IOXY W $P(DDGLCLR,DDGLDEL)
|
---|
130 | Q DDGLX
|
---|
131 | ;
|
---|
132 | GETCH(DTIME,Y) ;Out: Y = Mnemonic
|
---|
133 | F D Q:Y'=-1
|
---|
134 | . R *Y:DTIME
|
---|
135 | . I Y<0 S Y="TO" Q
|
---|
136 | . D MNE(.Y)
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | MNE(Y) ;Out: Y = Mnemonic, or -1 if invalid
|
---|
140 | N S,F
|
---|
141 | S S="",F=0
|
---|
142 | F D MNELOOP Q:F
|
---|
143 | Q
|
---|
144 | ;
|
---|
145 | MNELOOP ;Read more
|
---|
146 | S S=S_$C(Y)
|
---|
147 | I DDGLH("IN")'[(DDGL0_S) D I Y=-1 D FLUSH Q
|
---|
148 | . I $C(Y)'?1L S Y=-1 Q
|
---|
149 | . S S=$E(S,1,$L(S)-1)_$C(Y-32)
|
---|
150 | . S:DDGLH("IN")'[(DDGL0_S_DDGL0) Y=-1
|
---|
151 | ;
|
---|
152 | I DDGLH("IN")[(DDGL0_S_DDGL0),S'=$C(27) D Q
|
---|
153 | . S Y=$P(DDGLH("OUT"),DDGL0,$L($P(DDGLH("IN"),DDGL0_S_DDGL0),DDGL0)),F=1
|
---|
154 | ;
|
---|
155 | R *Y:5 D:Y=-1 FLUSH
|
---|
156 | Q
|
---|
157 | ;
|
---|
158 | FLUSH ;
|
---|
159 | N DDGLZ
|
---|
160 | S F=1 W $C(7) F R *DDGLZ:0 E Q
|
---|
161 | Q
|
---|
162 | ;
|
---|
163 | GETKEY ;Get key sequences and defaults
|
---|
164 | N AU,AD,F1,PREVSC,NEXTSC
|
---|
165 | N I,K,N,T
|
---|
166 | S AU=$P(DDGLKEY,U,2)
|
---|
167 | S AD=$P(DDGLKEY,U,3)
|
---|
168 | S F1=$P(DDGLKEY,U,6)
|
---|
169 | S PREVSC=$P(DDGLKEY,U,14)
|
---|
170 | S NEXTSC=$P(DDGLKEY,U,15)
|
---|
171 | ;
|
---|
172 | K DDGLH
|
---|
173 | S DDGLH("IN")="",DDGLH("OUT")=""
|
---|
174 | F I=1:1 S T=$P($T(MAP+I),";;",2,999) Q:T="" D
|
---|
175 | . S @("K="_$P(T,";",2))
|
---|
176 | . I DDGLH("IN")'[(DDGL0_K),K]"" D
|
---|
177 | .. S DDGLH("IN")=DDGLH("IN")_DDGL0_K
|
---|
178 | .. S DDGLH("OUT")=DDGLH("OUT")_$P(T,";")_DDGL0
|
---|
179 | S DDGLH("IN")=DDGLH("IN")_DDGL0
|
---|
180 | S DDGLH("OUT")=$E(DDGLH("OUT"),1,$L(DDGLH("OUT"))-1)
|
---|
181 | Q
|
---|
182 | ;
|
---|
183 | MAP ;Keys
|
---|
184 | ;;DN;$C(13)
|
---|
185 | ;;DN;AD
|
---|
186 | ;;DN;F1_AD
|
---|
187 | ;;DN;NEXTSC
|
---|
188 | ;;UP;AU
|
---|
189 | ;;UP;F1_AU
|
---|
190 | ;;UP;PREVSC
|
---|
191 | ;;QT;F1_"E"
|
---|
192 | ;;QT;F1_"Q"
|
---|
193 | ;;QT;"^"
|
---|
194 | ;;PT;"P"
|
---|