Annotation of freem_fileman/DDGF0.m, revision 1.1.1.1

1.1       snw         1: DDGF0  ;SFISC/MKO-SETUP, CLEANUP ;09:58 AM  9 Sep 1994
                      2:        ;;21.0;VA FileMan;;Dec 28, 1994
                      3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
                      4:        ;
                      5:        D INIT^DDGLIB0() Q:$G(DIERR)
                      6:        D SET,GETKEY
                      7:        Q
                      8:        ;
                      9: SET    ;Setup variables
                     10:        D:$D(DT)[0 DT^DICRW
                     11:        S (DIOVRD,DDGFR)=1,DDGFREF="^TMP(""DDGF"",$J)",DDGFCHG=0
                     12:        K @DDGFREF,DDGFFM
                     13:        Q
                     14:        ;
                     15: END    ;Clear screen, clean up variables
                     16:        I $D(DDGFFM)#2 D RECOMP
                     17: KILL   ;
                     18:        D:$G(DIERR) MSG^DIALOG("BW")
                     19:        X:$D(DDGLZOSF) DDGLZOSF("EON"),DDGLZOSF("TRMOFF")
                     20:        D KILL^DDGLIB0()
                     21:        K:$D(DDGFREF) @DDGFREF,DDGFREF
                     22:        K ^TMP("DDGFH",$J)
                     23:        K DDGF,DDGFBV,DDGFCHG,DDGFE,DDGFFILE,DDGFFM,DDGFLIM,DDGFMSG
                     24:        K DDGFPG,DDGFR,DDGFWID,DDGFWIDB
                     25:        K DDH
                     26:        Q
                     27:        ;
                     28: RECOMP ;Recompile form
                     29:        N DDGFLIST
                     30:        S DDGFLIST=$NA(^TMP("DDGFOF",$J))
                     31:        D MSG^DDGF("Recompiling ...")
                     32:        ;
                     33:        D GETBLKS(+DDGFFM,DDGFLIST)
                     34:        S DDSQUIET=1 D EN^DDSZ(DDGFFM) K DDSQUIET
                     35:        I $D(@DDGFLIST) D
                     36:        . N DDGFI
                     37:        . S DDGFI=""
                     38:        . F  S DDGFI=$O(@DDGFLIST@(DDGFI)) Q:'DDGFI  D EN^DDSZ(DDGFI)
                     39:        . K @DDGFLIST
                     40:        ;
                     41:        D MSG^DDGF("")
                     42:        S DX=0,DY=IOSL-1 X IOXY
                     43:        Q
                     44:        ;
                     45: GETBLKS(F,L)   ;
                     46:        ;Determine if any of the blocks loaded are
                     47:        ;used on other forms.
                     48:        ; L(Form#)=""        Other forms that need recompiling
                     49:        ;
                     50:        N P,B
                     51:        S P=0 F  S P=$O(@DDGFREF@("F",P)) Q:'P  D
                     52:        . S B=0
                     53:        . F  S B=$O(@DDGFREF@("F",P,B)) Q:'B  D:'$D(@L@("B",B))
                     54:        .. S @L@("B",B)=""
                     55:        .. D OTHER(B,F,L)
                     56:        K @L@("B")
                     57:        Q
                     58:        ;
                     59: OTHER(B,F,L)   ;
                     60:        ;Return list L of forms other than F that use block B
                     61:        ; L(Form#)=""
                     62:        N F1
                     63:        S F1=""
                     64:        F  S F1=$O(^DIST(.403,"AB",B,F1)) Q:F1=""  I F1'=F S @L@(F1)=""
                     65:        S F1="" F  S F1=$O(^DIST(.403,"AC",B,F1)) Q:F1=""  I F1'=F S @L@(F1)=""
                     66:        Q
                     67:        ;
                     68: GETKEY ;Get key sequences and defaults
                     69:        N AU,AD,AR,AL,F1,F2,F3,F4,I,K,N,T
                     70:        S AU=$P(DDGLKEY,U,2)
                     71:        S AD=$P(DDGLKEY,U,3)
                     72:        S AR=$P(DDGLKEY,U,4)
                     73:        S AL=$P(DDGLKEY,U,5)
                     74:        S F1=$P(DDGLKEY,U,6)
                     75:        S F2=$P(DDGLKEY,U,7)
                     76:        S F3=$P(DDGLKEY,U,8)
                     77:        S F4=$P(DDGLKEY,U,9)
                     78:        ;
                     79:        F N="","S","D" D
                     80:        . S DDGF(N_"IN")="",DDGF(N_"OUT")=""
                     81:        . F I=1:1 S T=$P($T(@(N_"MAP")+I),";;",2,999) Q:T=""  D
                     82:        .. S @("K="_$P(T,";",2))
                     83:        .. I DDGF(N_"IN")'[(U_K) D
                     84:        ... S DDGF(N_"IN")=DDGF(N_"IN")_U_K
                     85:        ... S DDGF(N_"OUT")=DDGF(N_"OUT")_$P(T,";")_U
                     86:        . S DDGF(N_"IN")=DDGF(N_"IN")_U
                     87:        . S DDGF(N_"OUT")=$E(DDGF(N_"OUT"),1,$L(DDGF(N_"OUT"))-1)
                     88:        Q
                     89:        ;
                     90: MAP    ;Keys for main screen
                     91:        ;;LNU;AU;          line up
                     92:        ;;LND;AD;          line down
                     93:        ;;CHR;AR;          char right
                     94:        ;;CHL;AL;          char left
                     95:        ;;ELR;$C(9);       element right
                     96:        ;;ELL;"Q";         element left
                     97:        ;;TBR;"S";         tab right
                     98:        ;;TBL;"A";         tab left
                     99:        ;;EXIT;F1_"E";     exit
                    100:        ;;QUIT;F1_"Q";     quit
                    101:        ;;ROWCOL;"R";      row/col indicator toggle
                    102:        ;;SCT;F1_AU;       top of screen
                    103:        ;;SCB;F1_AD;       bottom of screen
                    104:        ;;SCR;F1_AR;       right edge of screen
                    105:        ;;SCL;F1_AL;       left edge of screen
                    106:        ;;SAVE;F1_"S";     save changes
                    107:        ;;SELECT;" ";      select an element
                    108:        ;;SELECT;$C(13);   select an element
                    109:        ;;SELFILE;F1_1;    select file
                    110:        ;;VIEW;F1_"V";     view toggle
                    111:        ;;EDIT;F3;         edit caption or data length
                    112:        ;;FLDADD;F2_"F";   add a new field
                    113:        ;;BKADD;F2_"B";    add a new block
                    114:        ;;NXTPG;F1_F1_AD;  go to next page
                    115:        ;;PRVPG;F1_F1_AU;  go to previous page
                    116:        ;;CLSPG;F1_"C";    close popup page
                    117:        ;;PGSEL;F1_"P";    select another page
                    118:        ;;PGADD;F2_"P";    add a new page
                    119:        ;;PGEDIT;F4_"P";   edit page attributes
                    120:        ;;FMSEL;F1_"M";    select another form
                    121:        ;;FMADD;F2_"M";    add a new form
                    122:        ;;FMEDIT;F4_"M";   edit form attributes
                    123:        ;;HELP;F1_"H"
                    124:        ;;
                    125: SMAP   ;Keys for moving selected gadgets
                    126:        ;;LNU;AU;          line up
                    127:        ;;LND;AD;          line down
                    128:        ;;CHR;AR;          char right
                    129:        ;;CHL;AL;          char left
                    130:        ;;TBR;$C(9);       tab right
                    131:        ;;TBR;"S";          "   "
                    132:        ;;TBL;"Q";         tab left
                    133:        ;;TBL;"A";          "   "
                    134:        ;;ROWCOL;"R";      row/col indicator toggle
                    135:        ;;SCT;F1_AU;       top of screen
                    136:        ;;SCB;F1_AD;       bottom of screen
                    137:        ;;SCR;F1_AR;       right edge of screen
                    138:        ;;SCL;F1_AL;       left edge of screen
                    139:        ;;SUBPG;F1_"D";    go into a multiples pop-up page
                    140:        ;;DESELECT;" ";    deselect an element
                    141:        ;;DESELECT;$C(13); deselect an element
                    142:        ;;EDIT;F4;         edit properties
                    143:        ;;REORDER;F1_"O" ; reorder fields in block
                    144:        ;;
                    145: DMAP   ;Keys for changing data length
                    146:        ;;CHR;AR;          char right
                    147:        ;;CHL;AL;          char left
                    148:        ;;DONE;$C(13);     done
                    149:        ;;DONE;" ";        done
                    150:        ;;DONE;F3;         done
                    151:        ;;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>