DDGF1 ;SFISC/MKO-MAIN SCREEN ;02:46 PM 12 Oct 1994
;;22.0;VA FileMan;;Mar 30, 1999
;Per VHA Directive 10-93-142, this routine should not be modified.
D RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
S DDGFE=0 F S Y=$$READ W:$T(@Y)="" $C(7) D:$D(DDGFMSG) MSG^DDGF() D:$T(@Y)]"" @Y Q:DDGFE
Q
;
LNU I DY>$P(DDGFLIM,U) D RC(DY-1,DX)
Q
LND I DY<$P(DDGFLIM,U,3) D RC(DY+1,DX)
Q
CHR I DX<$P(DDGFLIM,U,4) D RC(DY,DX+1)
Q
CHL I DX>$P(DDGFLIM,U,2) D RC(DY,DX-1)
Q
;
ELR N Y,X
S Y=DY,X=DX
S X=$O(@DDGFREF@("RC",DDGFWID,Y,X))
D:X=""
. S Y=$O(@DDGFREF@("RC",DDGFWID,Y))
. S:Y="" Y=$O(@DDGFREF@("RC",DDGFWID,""))
. S:Y]"" X=$O(@DDGFREF@("RC",DDGFWID,Y,""))
D:X]"" RC(Y,X)
Q
ELL N Y,X
S Y=DY,X=DX
S X=$O(@DDGFREF@("RC",DDGFWID,Y,X),-1)
D:X=""
. S Y=$O(@DDGFREF@("RC",DDGFWID,Y),-1)
. S:Y="" Y=$O(@DDGFREF@("RC",DDGFWID,""),-1)
. S:Y]"" X=$O(@DDGFREF@("RC",DDGFWID,Y,""),-1)
D:X]"" RC(Y,X)
Q
;
TBR I DX<$P(DDGFLIM,U,4) D
. D RC(DY,$S(DX+5'<$P(DDGFLIM,U,4):$P(DDGFLIM,U,4),1:DX+5))
E I DY<$P(DDGFLIM,U,3) D RC(DY+1,$P(DDGFLIM,U,2))
Q
TBL I DX>$P(DDGFLIM,U,2) D
. D RC(DY,$S(DX-5'>$P(DDGFLIM,U,2):$P(DDGFLIM,U,2),1:DX-5))
E I DY>$P(DDGFLIM,U) D RC(DY-1,$P(DDGFLIM,U,4))
Q
;
SCT I DY>$P(DDGFLIM,U) D RC($P(DDGFLIM,U),DX)
Q
SCB I DY<$P(DDGFLIM,U,3) D RC($P(DDGFLIM,U,3),DX)
Q
SCR I DX<$P(DDGFLIM,U,4) D RC(DY,$P(DDGFLIM,U,4))
Q
SCL I DX>$P(DDGFLIM,U,2) D RC(DY,$P(DDGFLIM,U,2))
Q
;
SAVE ;Save data from DDGFREF
I 'DDGFPG D ERR(110) Q
G SAVE^DDGFSV
;
SELECT ;Select an item
I 'DDGFPG D ERR(110) Q
G SELECT^DDGFEL
;
EDIT ;Edit a caption or data length
I 'DDGFPG D ERR(110) Q
G EDIT^DDGFEL
;
FLDADD ;Add a new field to the form
I 'DDGFPG D ERR(110) Q
G ADD^DDGFFLDA
;
VIEW ;Go to block viewer
I 'DDGFPG D ERR(110) Q
I $O(@DDGFREF@("F",DDGFPG,""))="" D ERR(120) Q
G ^DDGF3
;
BKADD ;Add a new block
I 'DDGFPG D ERR(110) Q
G ADD^DDGFBK
;
HBKADD ;Add a header block
I 'DDGFPG D ERR(110) Q
G ADD^DDGFHBK
;
NXTPG ;Go to next page
I 'DDGFPG D ERR(110) Q
D NXTPRV^DDGFPG(1) Q
;
PRVPG ;Go to previous page
I 'DDGFPG D ERR(110) Q
D NXTPRV^DDGFPG(-1) Q
;
CLSPG ;Close pop-up page
G CLSPG^DDGFPG
;
PGSEL ;Select a new page
I 'DDGFPG D ERR(110) Q
G PGSEL^DDGFPG
;
PGADD ;Add a new page to the form
G ADD^DDGFPG
;
PGEDIT ;Edit attributes of a page
I 'DDGFPG D ERR(110) Q
G EDIT^DDGFPG
;
FMSEL ;Select another form
G SEL^DDGFFM
;
FMADD ;Add a new form
G ADD^DDGFFM
;
FMEDIT ;Edit the form
G EDIT^DDGFFM
;
HELP ;Invoke help screens
G HLP^DDGFH
;
TO ;Time-out
W $C(7)
G QUIT
;
QUIT ;Exit from form designer
I DDGLSCR>1 G CLSPG^DDGFPG
S DDGFE=1
Q
EXIT ;Save and exit
I DDGLSCR>1 G CLSPG^DDGFPG
S DDGFE=1
G SAVE^DDGFSV
;
RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
N DDGFS
I DDGFR D
. S DY=IOSL-6,DX=IOM-9,DDGFS="R"_(DDGFY+1)_",C"_(DDGFX+1)
. X IOXY W DDGFS_$J("",7-$L(DDGFS))
S DY=DDGFY,DX=DDGFX X IOXY
Q
;
READ() N S,Y
F R *Y:DTIME D C Q:Y'=-1
Q Y
;
C I Y<0 S Y="TO" Q
S S=""
C1 S S=S_$C(Y)
I DDGF("IN")'[(U_S) D I Y=-1 W $C(7) Q
. I $C(Y)'?1L S Y=-1 Q
. S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("IN")'[(U_S_U) Y=-1
;
I DDGF("IN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("OUT"),U,$L($P(DDGF("IN"),U_S_U),U)) Q
R *Y:5 G:Y'=-1 C1 W $C(7)
Q
;
ERR(X) ;
D MSG^DDGF($C(7)_$P($T(@X),";;",2,999)) H 3
D MSG^DDGF()
Q
110 ;;There are no pages on this form. Use PF2-P to add a page.
120 ;;There are no blocks on this page. Use PF2-B to add a block.
DDGF1 ;SFISC/MKO-MAIN SCREEN ;02:46 PM 12 Oct 1994
+1 ;;22.0;VA FileMan;;Mar 30, 1999
+2 ;Per VHA Directive 10-93-142, this routine should not be modified.
+3 DO RC($PIECE(DDGFLIM,U),$PIECE(DDGFLIM,U,2))
+4 SET DDGFE=0
FOR
SET Y=$$READ
IF $TEXT(@Y)=""
WRITE $CHAR(7)
IF $DATA(DDGFMSG)
DO MSG^DDGF()
IF $TEXT(@Y)]""
DO @Y
IF DDGFE
QUIT
+5 QUIT
+6 ;
LNU IF DY>$PIECE(DDGFLIM,U)
DO RC(DY-1,DX)
+1 QUIT
LND IF DY<$PIECE(DDGFLIM,U,3)
DO RC(DY+1,DX)
+1 QUIT
CHR IF DX<$PIECE(DDGFLIM,U,4)
DO RC(DY,DX+1)
+1 QUIT
CHL IF DX>$PIECE(DDGFLIM,U,2)
DO RC(DY,DX-1)
+1 QUIT
+2 ;
ELR NEW Y,X
+1 SET Y=DY
SET X=DX
+2 SET X=$ORDER(@DDGFREF@("RC",DDGFWID,Y,X))
+3 IF X=""
Begin DoDot:1
+4 SET Y=$ORDER(@DDGFREF@("RC",DDGFWID,Y))
+5 IF Y=""
SET Y=$ORDER(@DDGFREF@("RC",DDGFWID,""))
+6 IF Y]""
SET X=$ORDER(@DDGFREF@("RC",DDGFWID,Y,""))
End DoDot:1
+7 IF X]""
DO RC(Y,X)
+8 QUIT
ELL NEW Y,X
+1 SET Y=DY
SET X=DX
+2 SET X=$ORDER(@DDGFREF@("RC",DDGFWID,Y,X),-1)
+3 IF X=""
Begin DoDot:1
+4 SET Y=$ORDER(@DDGFREF@("RC",DDGFWID,Y),-1)
+5 IF Y=""
SET Y=$ORDER(@DDGFREF@("RC",DDGFWID,""),-1)
+6 IF Y]""
SET X=$ORDER(@DDGFREF@("RC",DDGFWID,Y,""),-1)
End DoDot:1
+7 IF X]""
DO RC(Y,X)
+8 QUIT
+9 ;
TBR IF DX<$PIECE(DDGFLIM,U,4)
Begin DoDot:1
+1 DO RC(DY,$SELECT(DX+5'<$PIECE(DDGFLIM,U,4):$PIECE(DDGFLIM,U,4),1:DX+5))
End DoDot:1
+2 IF '$TEST
IF DY<$PIECE(DDGFLIM,U,3)
DO RC(DY+1,$PIECE(DDGFLIM,U,2))
+3 QUIT
TBL IF DX>$PIECE(DDGFLIM,U,2)
Begin DoDot:1
+1 DO RC(DY,$SELECT(DX-5'>$PIECE(DDGFLIM,U,2):$PIECE(DDGFLIM,U,2),1:DX-5))
End DoDot:1
+2 IF '$TEST
IF DY>$PIECE(DDGFLIM,U)
DO RC(DY-1,$PIECE(DDGFLIM,U,4))
+3 QUIT
+4 ;
SCT IF DY>$PIECE(DDGFLIM,U)
DO RC($PIECE(DDGFLIM,U),DX)
+1 QUIT
SCB IF DY<$PIECE(DDGFLIM,U,3)
DO RC($PIECE(DDGFLIM,U,3),DX)
+1 QUIT
SCR IF DX<$PIECE(DDGFLIM,U,4)
DO RC(DY,$PIECE(DDGFLIM,U,4))
+1 QUIT
SCL IF DX>$PIECE(DDGFLIM,U,2)
DO RC(DY,$PIECE(DDGFLIM,U,2))
+1 QUIT
+2 ;
SAVE ;Save data from DDGFREF
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO SAVE^DDGFSV
+3 ;
SELECT ;Select an item
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO SELECT^DDGFEL
+3 ;
EDIT ;Edit a caption or data length
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO EDIT^DDGFEL
+3 ;
FLDADD ;Add a new field to the form
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO ADD^DDGFFLDA
+3 ;
VIEW ;Go to block viewer
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 IF $ORDER(@DDGFREF@("F",DDGFPG,""))=""
DO ERR(120)
QUIT
+3 GOTO ^DDGF3
+4 ;
BKADD ;Add a new block
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO ADD^DDGFBK
+3 ;
HBKADD ;Add a header block
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO ADD^DDGFHBK
+3 ;
NXTPG ;Go to next page
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 DO NXTPRV^DDGFPG(1)
QUIT
+3 ;
PRVPG ;Go to previous page
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 DO NXTPRV^DDGFPG(-1)
QUIT
+3 ;
CLSPG ;Close pop-up page
+1 GOTO CLSPG^DDGFPG
+2 ;
PGSEL ;Select a new page
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO PGSEL^DDGFPG
+3 ;
PGADD ;Add a new page to the form
+1 GOTO ADD^DDGFPG
+2 ;
PGEDIT ;Edit attributes of a page
+1 IF 'DDGFPG
DO ERR(110)
QUIT
+2 GOTO EDIT^DDGFPG
+3 ;
FMSEL ;Select another form
+1 GOTO SEL^DDGFFM
+2 ;
FMADD ;Add a new form
+1 GOTO ADD^DDGFFM
+2 ;
FMEDIT ;Edit the form
+1 GOTO EDIT^DDGFFM
+2 ;
HELP ;Invoke help screens
+1 GOTO HLP^DDGFH
+2 ;
TO ;Time-out
+1 WRITE $CHAR(7)
+2 GOTO QUIT
+3 ;
QUIT ;Exit from form designer
+1 IF DDGLSCR>1
GOTO CLSPG^DDGFPG
+2 SET DDGFE=1
+3 QUIT
EXIT ;Save and exit
+1 IF DDGLSCR>1
GOTO CLSPG^DDGFPG
+2 SET DDGFE=1
+3 GOTO SAVE^DDGFSV
+4 ;
RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
+1 NEW DDGFS
+2 IF DDGFR
Begin DoDot:1
+3 SET DY=IOSL-6
SET DX=IOM-9
SET DDGFS="R"_(DDGFY+1)_",C"_(DDGFX+1)
+4 XECUTE IOXY
WRITE DDGFS_$JUSTIFY("",7-$LENGTH(DDGFS))
End DoDot:1
+5 SET DY=DDGFY
SET DX=DDGFX
XECUTE IOXY
+6 QUIT
+7 ;
READ() NEW S,Y
+1 FOR
READ *Y:DTIME
DO C
IF Y'=-1
QUIT
+2 QUIT Y
+3 ;
C IF Y<0
SET Y="TO"
QUIT
+1 SET S=""
C1 SET S=S_$CHAR(Y)
+1 IF DDGF("IN")'[(U_S)
Begin DoDot:1
+2 IF $CHAR(Y)'?1L
SET Y=-1
QUIT
+3 SET S=$EXTRACT(S,1,$LENGTH(S)-1)_$CHAR(Y-32)
IF DDGF("IN")'[(U_S_U)
SET Y=-1
End DoDot:1
IF Y=-1
WRITE $CHAR(7)
QUIT
+4 ;
+5 IF DDGF("IN")[(U_S_U)
IF S'=$CHAR(27)
SET Y=$PIECE(DDGF("OUT"),U,$LENGTH($PIECE(DDGF("IN"),U_S_U),U))
QUIT
+6 READ *Y:5
IF Y'=-1
GOTO C1
WRITE $CHAR(7)
+7 QUIT
+8 ;
ERR(X) ;
+1 DO MSG^DDGF($CHAR(7)_$PIECE($TEXT(@X),";;",2,999))
HANG 3
+2 DO MSG^DDGF()
+3 QUIT
110 ;;There are no pages on this form. Use PF2-P to add a page.
120 ;;There are no blocks on this page. Use PF2-B to add a block.