Annotation of freem_fileman/DDGFHBK.m, revision 1.1.1.1
1.1 snw 1: DDGFHBK ;SFISC/MKO-ADD, EDIT, DELETE HEADER BLOCK ;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 ;Add a header block
6: ;Check to see if a header block already exists for this page
7: S DDGFBH=$P(^DIST(.403,+DDGFFM,40,DDGFPG,0),U,2)
8: I DDGFBH D MSG^DDGF($C(7)_"This page already has a header block.") H 2 D MSG^DDGF() K DDGFBH Q
9: ;
10: N B
11: S DDGFDY=DY,DDGFDX=DX
12: ;
13: ;Invoke form to enter block name
14: K DDGFBNUM,DDGFBNAM
15: D DDS(.404,"[DDGF HEADER BLOCK SELECT]")
16: G:$G(DDGFBNUM)=DDGFBH!'$G(DDGFBNUM) ADDQ
17: ;
18: I $D(^DIST(.403,+DDGFFM,40,DDGFPG,40,"B",DDGFBNUM)) D DDS(.404,"[DDGF BLOCK ADD]","",21) G ADDQ
19: ;
20: S $P(^DIST(.403,+DDGFFM,40,DDGFPG,0),U,2)=DDGFBNUM
21: ;
22: ;If this looks like a brand new block, stuff in DD number
23: I $L(^DIST(.404,DDGFBNUM,0),U)=1,'$O(^(0)) D
24: . S DIE="^DIST(.404,",DA=DDGFBNUM
25: . S DR="1////"_$P(^DIST(.403,+DDGFFM,0),U,8)
26: . D ^DIE K DIE,DA,DR
27: ;
28: D:DDGFBH DELETE^DDGFBK(DDGFBH,1)
29: D BK^DDGFLOAD(DDGFPG,DDGFBNUM,$P(DDGFLIM,U),$P(DDGFLIM,U,2),0,0,1,1)
30: ;
31: S DY=DDGFDY,DX=DDGFDX
32: S B=DDGFBNUM,C=$P(@DDGFREF@("F",DDGFPG,B),U,4)
33: S DDGFADD=1
34: K DDGFBNUM,DDGFBNAM
35: G EDIT
36: ;
37: ADDQ ;Abort adding a header block
38: D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
39: K DDGFANS,DDGFBH,DDGFBNUM,DDGFBNAM,DDGFDY,DDGFDX
40: Q
41: ;
42: EDIT ;Edit/Delete header block
43: ;In: B,C
44: N C1,C2,C3
45: S DDGFDY=DY,DDGFDX=DX,DDGFBH=B
46: S (DDGFBKNN,DDGFBKNO)=C
47: S DDSFILE=.403,DDSFILE(1)=.4031,DA(1)=+DDGFFM,DA=DDGFPG
48: S DR="[DDGF HEADER BLOCK EDIT]",DDSPARM="KTW"
49: D ^DDS K DDSFILE,DA,DR,DDSPARM
50: S DDGFBHN=$P(^DIST(.403,+DDGFFM,40,DDGFPG,0),U,2)
51: ;
52: I DDGFBHN'=DDGFBH D
53: . D DELETE^DDGFBK(DDGFBH,DDGFBHN)
54: . D:DDGFBHN BK^DDGFLOAD(DDGFPG,DDGFBHN,$P(DDGFLIM,U),$P(DDGFLIM,U,2),0,0,1,1)
55: ;
56: S C=DDGFBKNN,B=DDGFBHN
57: ;
58: ;Update TMP if coordinates or name changed, or new block
59: I DDGFBKNN'=DDGFBKNO!$G(DDGFADD) D
60: . D WRITE^DDGLIBW(DDGFWIDB,$J("",$L(DDGFBKNO)),$P(DDGFLIM,U),$P(DDGFLIM,U,2),"",1)
61: . D WRITE^DDGLIBW(DDGFWIDB,C,$P(DDGFLIM,U),$P(DDGFLIM,U,2),"",1)
62: ;
63: D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
64: S:'$G(DDGFADD) DDGFE=1
65: K DDGFADD,DDGFBH,DDGFBHN,DDGFBKNN,DDGFBKNO,DDGFDY,DDGFDX
66: Q
67: ;
68: DDS(DDSFILE,DR,DA,DDSPAGE) ;
69: ;Call DDS
70: S DDSPARM="KTW" D ^DDS K DDSPARM
71: Q
72: ;
73: RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
74: N S
75: I DDGFR D
76: . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
77: . X IOXY W S_$J("",7-$L(S))
78: S DY=DDGFY,DX=DDGFX X IOXY
79: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>