Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DDGF0

DDGF0.m

Go to the documentation of this file.
  1. DDGF0 ;SFISC/MKO-SETUP, CLEANUP ;09:58 AM 9 Sep 1994
  1. ;;22.0;VA FileMan;**160**;Mar 30, 1999;Build 23
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. D INIT^DDGLIB0() Q:$G(DIERR)
  1. D SET,GETKEY
  1. Q
  1. ;
  1. SET ;Setup variables
  1. D:$D(DT)[0 DT^DICRW
  1. S (DIOVRD,DDGFR)=1,DDGFREF="^TMP(""DDGF"",$J)",DDGFCHG=0
  1. K @DDGFREF,DDGFFM
  1. Q
  1. ;
  1. END ;Clear screen, clean up variables
  1. I $D(DDGFFM)#2 D RECOMP
  1. KILL ;
  1. D:$G(DIERR) MSG^DIALOG("BW")
  1. X:$D(DDGLZOSF) DDGLZOSF("EON"),DDGLZOSF("TRMOFF")
  1. D KILL^DDGLIB0()
  1. K:$D(DDGFREF) @DDGFREF,DDGFREF
  1. K ^TMP("DDGFH",$J)
  1. K DDGF,DDGFBV,DDGFCHG,DDGFE,DDGFFILE,DDGFFM,DDGFLIM,DDGFMSG
  1. K DDGFPG,DDGFR,DDGFWID,DDGFWIDB
  1. K DDH
  1. Q
  1. ;
  1. RECOMP ;Recompile form
  1. N DDGFLIST
  1. S DDGFLIST=$NA(^TMP("DDGFOF",$J))
  1. D MSG^DDGF("Recompiling ...")
  1. ;
  1. D GETBLKS(+DDGFFM,DDGFLIST)
  1. S DDSQUIET=1 D EN^DDSZ(DDGFFM) K DDSQUIET
  1. I $D(@DDGFLIST) D
  1. . N DDGFI
  1. . S DDGFI=""
  1. . F S DDGFI=$O(@DDGFLIST@(DDGFI)) Q:'DDGFI D EN^DDSZ(DDGFI)
  1. . K @DDGFLIST
  1. ;
  1. D MSG^DDGF("")
  1. S DX=0,DY=IOSL-1 X IOXY
  1. Q
  1. ;
  1. GETBLKS(F,L) ;
  1. ;Determine if any of the blocks loaded are
  1. ;used on other forms.
  1. ; L(Form#)="" Other forms that need recompiling
  1. ;
  1. N P,B
  1. S P=0 F S P=$O(@DDGFREF@("F",P)) Q:'P D
  1. . S B=0
  1. . F S B=$O(@DDGFREF@("F",P,B)) Q:'B D:'$D(@L@("B",B))
  1. .. S @L@("B",B)=""
  1. .. D OTHER(B,F,L)
  1. K @L@("B")
  1. Q
  1. ;
  1. OTHER(B,F,L) ;
  1. ;Return list L of forms other than F that use block B
  1. ; L(Form#)=""
  1. N F1
  1. S F1=""
  1. F S F1=$O(^DIST(.403,"AB",B,F1)) Q:F1="" I F1'=F S @L@(F1)=""
  1. S F1="" F S F1=$O(^DIST(.403,"AC",B,F1)) Q:F1="" I F1'=F S @L@(F1)=""
  1. Q
  1. ;
  1. GETKEY ;Get key sequences and defaults
  1. N AU,AD,AR,AL,F1,F2,F3,F4,I,K,N,T
  1. S AU=$P(DDGLKEY,U,2)
  1. S AD=$P(DDGLKEY,U,3)
  1. S AR=$P(DDGLKEY,U,4)
  1. S AL=$P(DDGLKEY,U,5)
  1. S F1=$P(DDGLKEY,U,6)
  1. S F2=$P(DDGLKEY,U,7)
  1. S F3=$P(DDGLKEY,U,8)
  1. S F4=$P(DDGLKEY,U,9)
  1. ;
  1. F N="","S","D" D
  1. . S DDGF(N_"IN")="",DDGF(N_"OUT")=""
  1. . F I=1:1 S T=$P($T(@(N_"MAP")+I),";;",2,999) Q:T="" D
  1. .. S @("K="_$P(T,";",2))
  1. .. I DDGF(N_"IN")'[(U_K) D
  1. ... S DDGF(N_"IN")=DDGF(N_"IN")_U_K
  1. ... S DDGF(N_"OUT")=DDGF(N_"OUT")_$P(T,";")_U
  1. . S DDGF(N_"IN")=DDGF(N_"IN")_U
  1. . S DDGF(N_"OUT")=$E(DDGF(N_"OUT"),1,$L(DDGF(N_"OUT"))-1)
  1. Q
  1. ;
  1. MAP ;Keys for main screen
  1. ;;LNU;AU; line up
  1. ;;LND;AD; line down
  1. ;;CHR;AR; char right
  1. ;;CHL;AL; char left
  1. ;;ELR;$C(9); element right
  1. ;;ELL;"Q"; element left
  1. ;;TBR;"S"; tab right
  1. ;;TBL;"A"; tab left
  1. ;;EXIT;F1_"E"; exit
  1. ;;QUIT;F1_"Q"; quit
  1. ;;ROWCOL;"R"; row/col indicator toggle
  1. ;;SCT;F1_AU; top of screen
  1. ;;SCB;F1_AD; bottom of screen
  1. ;;SCR;F1_AR; right edge of screen
  1. ;;SCL;F1_AL; left edge of screen
  1. ;;SAVE;F1_"S"; save changes
  1. ;;SELECT;" "; select an element
  1. ;;SELECT;$C(13); select an element
  1. ;;SELFILE;F1_1; select file
  1. ;;VIEW;F1_"V"; view toggle
  1. ;;EDIT;F3; edit caption or data length
  1. ;;FLDADD;F2_"F"; add a new field
  1. ;;BKADD;F2_"B"; add a new block
  1. ;;NXTPG;F1_F1_AD; go to next page
  1. ;;PRVPG;F1_F1_AU; go to previous page
  1. ;;CLSPG;F1_"C"; close popup page
  1. ;;PGSEL;F1_"P"; select another page
  1. ;;PGADD;F2_"P"; add a new page
  1. ;;PGEDIT;F4_"P"; edit page attributes
  1. ;;FMSEL;F1_"M"; select another form
  1. ;;FMADD;F2_"M"; add a new form
  1. ;;FMEDIT;F4_"M"; edit form attributes
  1. ;;HELP;F1_"H"
  1. ;;
  1. SMAP ;Keys for moving selected gadgets
  1. ;;LNU;AU; line up
  1. ;;LND;AD; line down
  1. ;;CHR;AR; char right
  1. ;;CHL;AL; char left
  1. ;;TBR;$C(9); tab right
  1. ;;TBR;"S"; " "
  1. ;;TBL;"Q"; tab left
  1. ;;TBL;"A"; " "
  1. ;;ROWCOL;"R"; row/col indicator toggle
  1. ;;SCT;F1_AU; top of screen
  1. ;;SCB;F1_AD; bottom of screen
  1. ;;SCR;F1_AR; right edge of screen
  1. ;;SCL;F1_AL; left edge of screen
  1. ;;SUBPG;F1_"D"; go into a multiples pop-up page
  1. ;;DESELECT;" "; deselect an element
  1. ;;DESELECT;$C(13); deselect an element
  1. ;;EDIT;F4; edit properties
  1. ;;REORDER;F1_"O"; reorder fields in block
  1. ;;
  1. DMAP ;Keys for changing data length
  1. ;;CHR;AR; char right
  1. ;;CHL;AL; char left
  1. ;;DONE;$C(13); done
  1. ;;DONE;" "; done
  1. ;;DONE;F3; done
  1. ;;