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>