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>