DDGFUPDP ;SFISC/MKO-UPDATE PAGE COORDINATES ;01:37 PM 19 Jan 1994
;;22.0;VA FileMan;;Mar 30, 1999
;Per VHA Directive 10-93-142, this routine should not be modified.
;
PAGE(P1,P2,P3,P4,T,A) ;
;
D DESTROY^DDGLIBW(DDGFWID,1),DESTROY^DDGLIBW(DDGFWIDB,1)
I P3]"" D
. D REPALL^DDGLIBW($G(A))
. D CREATE^DDGLIBW(DDGFWID,P1_U_P2_U_(P3-P1+1)_U_(P4-P2+1),1)
. S DDGFLIM=P1_U_P2_U_P3_U_P4
E D
. D CLOSEALL^DDGLIBW()
. D CREATE^DDGLIBW(DDGFWID,P1_U_P2_U_(IOSL-7-P1)_U_(IOM-1-P2))
. S DDGFLIM=P1_U_P2_U_(IOSL-8)_U_(IOM-2)
D:T="PTOP" TOP(P1,P2,P3,P4)
D:T="PBRC" BRC(P1,P2,P3,P4)
Q
;
TOP(P1,P2,P3,P4) ;Update page image
;
N B,C,C1,C2,C3,D1,D2,D3,F,I,L,N,P,X1,Y1
;
S P=DDGFPG
S N=@DDGFREF@("F",P)
S Y1=P1-$P(N,U),X1=P2-$P(N,U,2)
I 'Y1,'X1 Q
;
I $P(N,U,3)]"" D
. K @DDGFREF@("RC",DDGFWID,$P(N,U),$P(N,U,2),$P(N,U,4),"P","P","PTOP")
. K @DDGFREF@("RC",DDGFWID,$P(N,U,3),$P(N,U,4),$P(N,U,4),"P","P","PBRC")
I $G(P3)]"" D
. S @DDGFREF@("RC",DDGFWID,P1,P2,P4,"P","P","PTOP")=""
. S @DDGFREF@("RC",DDGFWID,P3,P4,P4,"P","P","PBRC")=""
;
S $P(N,U,1,4)=P1_U_P2_U_P3_U_P4,$P(N,U,7)=1,DDGFCHG=1
S @DDGFREF@("F",P)=N
;
;Loop through all blocks on page
S B="" F S B=$O(@DDGFREF@("F",P,B)) Q:B="" D
. S N=@DDGFREF@("F",P,B)
. S @DDGFREF@("BKRC",DDGFWIDB,$P(N,U)+Y1,$P(N,U,2)+X1,$P(N,U,3)+X1,B)=@DDGFREF@("BKRC",DDGFWIDB,$P(N,U),$P(N,U,2),$P(N,U,3),B)
. K @DDGFREF@("BKRC",DDGFWIDB,$P(N,U),$P(N,U,2),$P(N,U,3),B)
. S $P(N,U,1,3)=$P(N,U)+Y1_U_($P(N,U,2)+X1)_U_($P(N,U,3)+X1)
. S @DDGFREF@("F",P,B)=N
. ;
. S F="" F S F=$O(@DDGFREF@("F",P,B,F)) Q:F="" D
.. S N=@DDGFREF@("F",P,B,F)
.. S C1=$P(N,U),C2=$P(N,U,2),C3=$P(N,U,3),C=$P(N,U,4)
.. S D1=$P(N,U,5),D2=$P(N,U,6),D3=$P(N,U,7),L=$P(N,U,8)
.. ;
.. I Y1 S:C1]"" $P(N,U)=C1+Y1 S:L $P(N,U,5)=D1+Y1
.. I X1 D
... I C]"" F I=2,3 S $P(N,U,I)=$P(N,U,I)+X1
... I L F I=6,7 S $P(N,U,I)=$P(N,U,I)+X1
.. S @DDGFREF@("F",P,B,F)=N
.. ;
.. I C]"" D
... K @DDGFREF@("RC",DDGFWID,C1,C2,C3,B,F,"C")
... S @DDGFREF@("RC",DDGFWID,$P(N,U),$P(N,U,2),$P(N,U,3),B,F,"C")=""
.. I L D
... K @DDGFREF@("RC",DDGFWID,D1,D2,D3,B,F,"D")
... S @DDGFREF@("RC",DDGFWID,$P(N,U,5),$P(N,U,6),$P(N,U,7),B,F,"D")=""
.. ;
.. D:C]"" WRITE^DDGLIBW(DDGFWID,C,$P(N,U)-P1,$P(N,U,2)-P2)
.. D:L WRITE^DDGLIBW(DDGFWID,$TR($J("",L)," ","_"),$P(N,U,5)-P1,$P(N,U,6)-P2)
Q
;
BRC(P1,P2,P3,P4) ;Change bottom right coordinate of page
N B,C,F,L,N,P
S P=DDGFPG
S N=@DDGFREF@("F",P)
I $P(N,U,3)]"" D
. K @DDGFREF@("RC",DDGFWID,$P(N,U),$P(N,U,2),$P(N,U,4),"P","P","PTOP")
. K @DDGFREF@("RC",DDGFWID,$P(N,U,3),$P(N,U,4),$P(N,U,4),"P","P","PBRC")
I $G(P3)]"" D
. S @DDGFREF@("RC",DDGFWID,P1,P2,P4,"P","P","PTOP")=""
. S @DDGFREF@("RC",DDGFWID,P3,P4,P4,"P","P","PBRC")=""
;
S $P(N,U,1,4)=P1_U_P2_U_P3_U_P4,$P(N,U,7)=1,DDGFCHG=1
S @DDGFREF@("F",P)=N
;
;Loop through all blocks/fields on page
S B="" F S B=$O(@DDGFREF@("F",P,B)) Q:B="" D
. S F="" F S F=$O(@DDGFREF@("F",P,B,F)) Q:F="" D
.. S N=@DDGFREF@("F",P,B,F)
.. S C=$P(N,U,4),L=$P(N,U,8)
.. ;
.. I C]"" D WRITE^DDGLIBW(DDGFWID,C,$P(N,U)-P1,$P(N,U,2)-P2)
.. I L D WRITE^DDGLIBW(DDGFWID,$TR($J("",L)," ","_"),$P(N,U,5)-P1,$P(N,U,6)-P2)
Q
DDGFUPDP ;SFISC/MKO-UPDATE PAGE COORDINATES ;01:37 PM 19 Jan 1994
+1 ;;22.0;VA FileMan;;Mar 30, 1999
+2 ;Per VHA Directive 10-93-142, this routine should not be modified.
+3 ;
PAGE(P1,P2,P3,P4,T,A) ;
+1 ;
+2 DO DESTROY^DDGLIBW(DDGFWID,1)
DO DESTROY^DDGLIBW(DDGFWIDB,1)
+3 IF P3]""
Begin DoDot:1
+4 DO REPALL^DDGLIBW($GET(A))
+5 DO CREATE^DDGLIBW(DDGFWID,P1_U_P2_U_(P3-P1+1)_U_(P4-P2+1),1)
+6 SET DDGFLIM=P1_U_P2_U_P3_U_P4
End DoDot:1
+7 IF '$TEST
Begin DoDot:1
+8 DO CLOSEALL^DDGLIBW()
+9 DO CREATE^DDGLIBW(DDGFWID,P1_U_P2_U_(IOSL-7-P1)_U_(IOM-1-P2))
+10 SET DDGFLIM=P1_U_P2_U_(IOSL-8)_U_(IOM-2)
End DoDot:1
+11 IF T="PTOP"
DO TOP(P1,P2,P3,P4)
+12 IF T="PBRC"
DO BRC(P1,P2,P3,P4)
+13 QUIT
+14 ;
TOP(P1,P2,P3,P4) ;Update page image
+1 ;
+2 NEW B,C,C1,C2,C3,D1,D2,D3,F,I,L,N,P,X1,Y1
+3 ;
+4 SET P=DDGFPG
+5 SET N=@DDGFREF@("F",P)
+6 SET Y1=P1-$PIECE(N,U)
SET X1=P2-$PIECE(N,U,2)
+7 IF 'Y1
IF 'X1
QUIT
+8 ;
+9 IF $PIECE(N,U,3)]""
Begin DoDot:1
+10 KILL @DDGFREF@("RC",DDGFWID,$PIECE(N,U),$PIECE(N,U,2),$PIECE(N,U,4),"P","P","PTOP")
+11 KILL @DDGFREF@("RC",DDGFWID,$PIECE(N,U,3),$PIECE(N,U,4),$PIECE(N,U,4),"P","P","PBRC")
End DoDot:1
+12 IF $GET(P3)]""
Begin DoDot:1
+13 SET @DDGFREF@("RC",DDGFWID,P1,P2,P4,"P","P","PTOP")=""
+14 SET @DDGFREF@("RC",DDGFWID,P3,P4,P4,"P","P","PBRC")=""
End DoDot:1
+15 ;
+16 SET $PIECE(N,U,1,4)=P1_U_P2_U_P3_U_P4
SET $PIECE(N,U,7)=1
SET DDGFCHG=1
+17 SET @DDGFREF@("F",P)=N
+18 ;
+19 ;Loop through all blocks on page
+20 SET B=""
FOR
SET B=$ORDER(@DDGFREF@("F",P,B))
IF B=""
QUIT
Begin DoDot:1
+21 SET N=@DDGFREF@("F",P,B)
+22 SET @DDGFREF@("BKRC",DDGFWIDB,$PIECE(N,U)+Y1,$PIECE(N,U,2)+X1,$PIECE(N,U,3)+X1,B)=@DDGFREF@("BKRC",DDGFWIDB,$PIECE(N,U),$PIECE(N,U,2),$PIECE(N,U,3),B)
+23 KILL @DDGFREF@("BKRC",DDGFWIDB,$PIECE(N,U),$PIECE(N,U,2),$PIECE(N,U,3),B)
+24 SET $PIECE(N,U,1,3)=$PIECE(N,U)+Y1_U_($PIECE(N,U,2)+X1)_U_($PIECE(N,U,3)+X1)
+25 SET @DDGFREF@("F",P,B)=N
+26 ;
+27 SET F=""
FOR
SET F=$ORDER(@DDGFREF@("F",P,B,F))
IF F=""
QUIT
Begin DoDot:2
+28 SET N=@DDGFREF@("F",P,B,F)
+29 SET C1=$PIECE(N,U)
SET C2=$PIECE(N,U,2)
SET C3=$PIECE(N,U,3)
SET C=$PIECE(N,U,4)
+30 SET D1=$PIECE(N,U,5)
SET D2=$PIECE(N,U,6)
SET D3=$PIECE(N,U,7)
SET L=$PIECE(N,U,8)
+31 ;
+32 IF Y1
IF C1]""
SET $PIECE(N,U)=C1+Y1
IF L
SET $PIECE(N,U,5)=D1+Y1
+33 IF X1
Begin DoDot:3
+34 IF C]""
FOR I=2,3
SET $PIECE(N,U,I)=$PIECE(N,U,I)+X1
+35 IF L
FOR I=6,7
SET $PIECE(N,U,I)=$PIECE(N,U,I)+X1
End DoDot:3
+36 SET @DDGFREF@("F",P,B,F)=N
+37 ;
+38 IF C]""
Begin DoDot:3
+39 KILL @DDGFREF@("RC",DDGFWID,C1,C2,C3,B,F,"C")
+40 SET @DDGFREF@("RC",DDGFWID,$PIECE(N,U),$PIECE(N,U,2),$PIECE(N,U,3),B,F,"C")=""
End DoDot:3
+41 IF L
Begin DoDot:3
+42 KILL @DDGFREF@("RC",DDGFWID,D1,D2,D3,B,F,"D")
+43 SET @DDGFREF@("RC",DDGFWID,$PIECE(N,U,5),$PIECE(N,U,6),$PIECE(N,U,7),B,F,"D")=""
End DoDot:3
+44 ;
+45 IF C]""
DO WRITE^DDGLIBW(DDGFWID,C,$PIECE(N,U)-P1,$PIECE(N,U,2)-P2)
+46 IF L
DO WRITE^DDGLIBW(DDGFWID,$TRANSLATE($JUSTIFY("",L)," ","_"),$PIECE(N,U,5)-P1,$PIECE(N,U,6)-P2)
End DoDot:2
End DoDot:1
+47 QUIT
+48 ;
BRC(P1,P2,P3,P4) ;Change bottom right coordinate of page
+1 NEW B,C,F,L,N,P
+2 SET P=DDGFPG
+3 SET N=@DDGFREF@("F",P)
+4 IF $PIECE(N,U,3)]""
Begin DoDot:1
+5 KILL @DDGFREF@("RC",DDGFWID,$PIECE(N,U),$PIECE(N,U,2),$PIECE(N,U,4),"P","P","PTOP")
+6 KILL @DDGFREF@("RC",DDGFWID,$PIECE(N,U,3),$PIECE(N,U,4),$PIECE(N,U,4),"P","P","PBRC")
End DoDot:1
+7 IF $GET(P3)]""
Begin DoDot:1
+8 SET @DDGFREF@("RC",DDGFWID,P1,P2,P4,"P","P","PTOP")=""
+9 SET @DDGFREF@("RC",DDGFWID,P3,P4,P4,"P","P","PBRC")=""
End DoDot:1
+10 ;
+11 SET $PIECE(N,U,1,4)=P1_U_P2_U_P3_U_P4
SET $PIECE(N,U,7)=1
SET DDGFCHG=1
+12 SET @DDGFREF@("F",P)=N
+13 ;
+14 ;Loop through all blocks/fields on page
+15 SET B=""
FOR
SET B=$ORDER(@DDGFREF@("F",P,B))
IF B=""
QUIT
Begin DoDot:1
+16 SET F=""
FOR
SET F=$ORDER(@DDGFREF@("F",P,B,F))
IF F=""
QUIT
Begin DoDot:2
+17 SET N=@DDGFREF@("F",P,B,F)
+18 SET C=$PIECE(N,U,4)
SET L=$PIECE(N,U,8)
+19 ;
+20 IF C]""
DO WRITE^DDGLIBW(DDGFWID,C,$PIECE(N,U)-P1,$PIECE(N,U,2)-P2)
+21 IF L
DO WRITE^DDGLIBW(DDGFWID,$TRANSLATE($JUSTIFY("",L)," ","_"),$PIECE(N,U,5)-P1,$PIECE(N,U,6)-P2)
End DoDot:2
End DoDot:1
+22 QUIT