Annotation of freem_fileman/DDGF4.m, revision 1.1.1.1
1.1 snw 1: DDGF4 ;SFISC/MKO-ACTIONS AFTER BLOCK SELECTION ;02:49 PM 12 Oct 1994
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: ;Input:
5: ; B = Block number
6: ; C = Block name
7: ; C1 = Block $Y
8: ; C2 = Block $X1
9: ; C3 = Block $X2
10: ; DDGFHDR = 1, if block is immobile (header block)
11: ;
12: N DDGFE
13: S:'$G(DDGFHDR) DDGFHDR=0
14: D PAINTS
15: ;
16: S DDGFE=0 F S Y=$$READ W:$T(@Y)="" $C(7) D:$T(@Y)]"" @Y Q:DDGFE
17: D CLEANUP
18: Q
19: ;
20: LNU Q:C1'>$P(DDGFLIM,U)!DDGFHDR
21: D REDRAW
22: S C1=C1-1,DY=DY-1
23: D PAINTS
24: Q
25: LND Q:C1'<$P(DDGFLIM,U,3)!DDGFHDR
26: D REDRAW
27: S C1=C1+1,DY=DY+1
28: D PAINTS
29: Q
30: CHR Q:C2'<$P(DDGFLIM,U,4)!DDGFHDR
31: D REDRAW
32: S C2=C2+1,DX=DX+1
33: D PAINTS
34: Q
35: CHL Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
36: D REDRAW
37: S C2=C2-1,DX=DX-1
38: D PAINTS
39: Q
40: TBR N X
41: Q:C2+$L(C)>$P(DDGFLIM,U,4)!DDGFHDR
42: D REDRAW
43: S X=$$MIN(5,$P(DDGFLIM,U,4)-C2-$L(C)+1)
44: S C2=C2+X,DX=DX+X
45: D PAINTS
46: Q
47: TBL N X
48: Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
49: D REDRAW
50: S X=$$MIN(5,C2-$P(DDGFLIM,U,2))
51: S C2=C2-X,DX=DX-X
52: D PAINTS
53: Q
54: SCT Q:C1'>$P(DDGFLIM,U)!DDGFHDR
55: D REDRAW
56: S (C1,DY)=$P(DDGFLIM,U)
57: D PAINTS
58: Q
59: SCB Q:C1'<$P(DDGFLIM,U,3)!DDGFHDR
60: D REDRAW
61: S (C1,DY)=$P(DDGFLIM,U,3)
62: D PAINTS
63: Q
64: SCR N X
65: Q:C2+$L(C)>$P(DDGFLIM,U,4)!DDGFHDR
66: D REDRAW
67: S X=$P(DDGFLIM,U,4)-C2-$L(C)+1
68: S C2=C2+X,DX=DX+X
69: D PAINTS
70: Q
71: SCL N X
72: Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
73: D REDRAW
74: S X=C2-$P(DDGFLIM,U,2)
75: S C2=C2-X,DX=DX-X
76: D PAINTS
77: Q
78: ;
79: EDIT ;Edit block parameters
80: G:'$G(DDGFHDR) EDIT^DDGFBK
81: G EDIT^DDGFHBK
82: ;
83: REORDER ;Reorder fields on block
84: D EN^DDGFORD(B)
85: Q
86: ;
87: TO ;Time-out
88: W $C(7)
89: G DESELECT
90: ;
91: DESELECT ;
92: S DDGFE=1
93: Q
94: ;
95: CLEANUP ;
96: I '$G(DDGFBDEL) D
97: . S C3=C2+$L(C)-1
98: . S @DDGFREF@("F",DDGFPG,B)=C1_U_C2_U_C3_U_C_U_1,DDGFCHG=1
99: . S @DDGFREF@("BKRC",DDGFWIDB,C1,C2,C3,B)=$S($G(DDGFHDR):"H",1:"")
100: ;
101: I '$G(DDGFEBV),'$G(DDGFBDEL) D
102: . D WRITE^DDGLIBW(DDGFWIDB,C,C1-$P(DDGFLIM,U),C2-$P(DDGFLIM,U,2))
103: . X IOXY
104: K DDGFHDR,DDGFBDEL
105: Q
106: ;
107: RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
108: N S
109: I DDGFR D
110: . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
111: . X IOXY W S_$J("",7-$L(S))
112: S DY=DDGFY,DX=DDGFX X IOXY
113: Q
114: ;
115: REDRAW ;
116: D REPAINT^DDGLIBW(DDGFWIDB,(C1-$P(DDGFLIM,U))_U_(C2-$P(DDGFLIM,U,2))_U_1_U_$$MIN($L(C),$P(DDGFLIM,U,4)-C2+1))
117: Q
118: ;
119: PAINTS ;
120: N Y,X
121: S Y=DY,X=DX
122: S DY=C1,DX=C2 X IOXY
123: W $P(DDGLVID,DDGLDEL,6)_$E(C,1,$$MIN($L(C),$P(DDGFLIM,U,4)-C2+1))_$P(DDGLVID,DDGLDEL,10)
124: D RC(Y,X)
125: Q
126: ;
127: MIN(X,Y,Z) ;Return the minimum of two or three numbers
128: N A
129: S A=$S(X<Y:X,1:Y)
130: Q:$G(Z)="" A
131: Q $S(A<Z:A,1:Z)
132: ;
133: READ() N S,Y
134: F R *Y:DTIME D C Q:Y'=-1
135: Q Y
136: ;
137: C I Y<0 S Y="TO" Q
138: S S=""
139: C1 S S=S_$C(Y)
140: I DDGF("SIN")'[(U_S) D I Y=-1 W $C(7) Q
141: . I $C(Y)'?1L S Y=-1 Q
142: . S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("SIN")'[(U_S_U) Y=-1
143: ;
144: I DDGF("SIN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("SOUT"),U,$L($P(DDGF("SIN"),U_S_U),U)) Q
145: R *Y:5 G:Y'=-1 C1 W $C(7)
146: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>