Annotation of freem_fileman/DDGFPG.m, revision 1.1.1.1
1.1 snw 1: DDGFPG ;SFISC/MKO-ADD A NEW PAGE ;01:48 PM 22 Nov 1994
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: ;
5: ADD ;Invoke forms to add a new page
6: S DDGFDY=DY,DDGFDX=DX K DDGFPNUM
7: ;
8: ;Ask for new page number
9: S DDSFILE=.403,DDSFILE(1)=.4031
10: S DA(1)=+DDGFFM,DA="",DR="[DDGF PAGE ADD]",DDSPARM="KTW"
11: D ^DDS K DDSFILE,DA,DR,DDSPARM
12: ;
13: G:$D(DDGFPNUM)[0 ADDQ
14: ;
15: ;Ask 'are you sure' page should be added
16: K DDGFANS
17: S DDSFILE=.403,DDSFILE(1)=.4031
18: S DR="[DDGF PAGE ADD]",DA(1)=+DDGFFM,DA="",DDSPARM="KTW",DDSPAGE=11
19: D ^DDS K DDSFILE,DA,DR,DDSPARM,DDSPAGE
20: ;
21: I '$G(DDGFANS) K DDGFANS G ADDQ
22: K DDGFANS
23: ;
24: ;Add page to form
25: S DIC="^DIST(.403,+DDGFFM,40,",DIC(0)="L",DA(1)=+DDGFFM
26: S DIC("P")=$P(^DD(.403,40,0),U,2),X=DDGFPNUM
27: D FILE^DICN K DIC,DA,X G:Y=-1 ADDQ
28: S DDGFPG=+Y
29: ;
30: ;Stuff in values for coordinates and name
31: S DIE="^DIST(.403,"_+DDGFFM_",40,",DA(1)=+DDGFFM,DA=DDGFPG
32: S DR="2////1,1;7////Page "_DDGFPNUM
33: D ^DIE K DIE,DA,DR
34: ;
35: K DDGFPNUM
36: D LOADPG
37: S DDGFNEW=1
38: G EDIT
39: ;
40: ADDQ D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
41: K DDGFPNUM,DDGFDY,DDGFDX
42: Q
43: ;
44: EDIT ;Invoke form to edit a page
45: ;Input: DDGFNEW (optional)
46: ; Set by ADD to indicate this is a brand new page.
47: ;
48: S DDGFDY=DY,DDGFDX=DX
49: S DDGFND=@DDGFREF@("F",DDGFPG)
50: S (DDGFTLC,DDGFTLC0)=$P(DDGFND,U)+1_","_($P(DDGFND,U,2)+1)
51: S (DDGFLRC,DDGFLRC0)=$S($P(DDGFND,U,3)]"":$P(DDGFND,U,3)+1_","_($P(DDGFND,U,4)+1),1:"")
52: S (DDGFPNM,DDGFPNM0)=$P(DDGFND,U,5)
53: S DDGFPAR=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,1)),U,2)
54: ;
55: S DDSFILE=.403,DDSFILE(1)=.4031,DDSPARM="KTW"
56: S DA(1)=+DDGFFM,DA=DDGFPG,DR="[DDGF PAGE EDIT]"
57: D ^DDS K DDSFILE,DA,DR,DDSPARM
58: ;
59: S DDGFND=$G(^DIST(.403,+DDGFFM,40,DDGFPG,0))
60: ;
61: ;If page was deleted, destroy windows and set new page
62: I DDGFND="" D Q:DDGFE
63: . I $D(DDGFWID)#2,$$EXIST^DDGLIBW(DDGFWID) D DESTROY^DDGLIBW(DDGFWID)
64: . I $D(DDGFWIDB)#2,$$EXIST^DDGLIBW(DDGFWIDB) D DESTROY^DDGLIBW(DDGFWIDB)
65: . K @DDGFREF@("F",DDGFPG),@DDGFREF@("RC",DDGFWID),@DDGFREF@("BKRC",DDGFWIDB)
66: . I $D(@DDGFREF@("ASUB","B",DDGFPG)) D DEL^DDGFASUB(DDGFPG)
67: . S DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",""))
68: . S:DDGFPG]"" DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",DDGFPG,""))
69: . D LOADPG,REFRESH^DDGF,RC(DDGFDY,DDGFDX)
70: ;
71: E D
72: . S:DDGFPNM'=DDGFPNM0 $P(@DDGFREF@("F",DDGFPG),U,5)=DDGFPNM,$P(^(DDGFPG),U,7)=1,DDGFCHG=1
73: . D:DDGFPAR'=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,1)),U,2) EDIT^DDGFASUB(DDGFPG)
74: . I DDGFTLC'=DDGFTLC0!(DDGFLRC'=DDGFLRC0) D
75: .. D PAGE^DDGFUPDP($P(DDGFTLC,",")-1,$P(DDGFTLC,",",2)-1,$S(DDGFLRC]"":$P(DDGFLRC,",")-1,1:""),$S(DDGFLRC]"":$P(DDGFLRC,",",2)-1,1:""),$S(DDGFTLC=DDGFTLC0:"PBRC",1:"PTOP"))
76: .. D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
77: . E D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
78: ;
79: K DDGFDX,DDGFDY,DDGFND,DDGFNEW
80: K DDGFLRC,DDGFLRC0,DDGFPOP,DDGFPOP0,DDGFTLC,DDGFTLC0
81: K DDGFPAR,DDGFPNM,DDGFPNM0
82: Q
83: ;
84: PGSEL ;Select a new page
85: S DDGFDY=DY,DDGFDX=DX,DDGFPAGE=DDGFPG
86: ;
87: S DDSFILE=.403,DDSFILE(1)=.4031
88: S DR="[DDGF PAGE SELECT]",DDSPARM="KTW"
89: D ^DDS
90: K DDSFILE,DA,DR,DDSPAGE,DDSPARM
91: ;
92: I DDGFPAGE]"",DDGFPAGE'=DDGFPG S DDGFPG=DDGFPAGE D LOADPG
93: ;
94: D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
95: K DDGFPAGE,DDGFDY,DDGFDX
96: Q
97: ;
98: NXTPRV(F) ;Go to page
99: ;F=1:next page; -1:previous page
100: S DDGFPAGE=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,0)),U,$S($G(F)=-1:5,1:4))
101: G:DDGFPAGE="" NXTPRVQ
102: S DDGFPAGE=$O(^DIST(.403,+DDGFFM,40,"B",DDGFPAGE,""))
103: G:$D(^DIST(.403,+DDGFFM,40,+DDGFPAGE,0))[0!(DDGFPAGE=DDGFPG) NXTPRVQ
104: ;
105: S DDGFPG=DDGFPAGE
106: D LOADPG,REFRESH^DDGF,RC(DDGFDY,DDGFDX)
107: NXTPRVQ K DDGFPAGE,DDGFDY,DDGFDX
108: Q
109: ;
110: CLSPG ;Close page
111: Q:$G(DDGLSCR)'>1
112: D CLOSE^DDGLIBW(DDGFWID)
113: S DDGFPG=$E(DDGLSCR(DDGLSCR),2,999)
114: D PG^DDGFLOAD(+DDGFFM,DDGFPG,1)
115: D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
116: Q
117: ;
118: SUBPG ;Go into subpage
119: I $D(@DDGFREF@("ASUB",DDGFPG,B,F))#2 S DDGFSUBP=^(F)
120: E D
121: . S DDGFSUBP=+$P($G(^DIST(.404,B,40,F,7)),U,2)
122: . S DDGFSUBP=+$O(^DIST(.403,+DDGFFM,40,"B",DDGFSUBP,""))
123: ;
124: I $D(^DIST(.403,+DDGFFM,40,DDGFSUBP,0))[0 W $C(7) K DDGFSUBP Q
125: I DDGFSUBP=DDGFPG K DDGFSUBP Q
126: S DDGFE=1
127: Q
128: ;
129: SUBPG1 S DDGFPG=DDGFSUBP K DDGFSUBP
130: D PG^DDGFLOAD(+DDGFFM,DDGFPG)
131: D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
132: Q
133: ;
134: LOADPG ;Load new page
135: D PG^DDGFLOAD(+DDGFFM,DDGFPG,1)
136: S DDGFDY=$P(DDGFLIM,U),DDGFDX=$P(DDGFLIM,U,2)
137: Q
138: ;
139: RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
140: N S
141: I DDGFR D
142: . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
143: . X IOXY W S_$J("",7-$L(S))
144: S DY=DDGFY,DX=DDGFX X IOXY
145: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>