Annotation of freem_fileman/DDGF4.m, revision 1.1.1.1

1.1       snw         1: DDGF4  ;SFISC/MKO-ACTIONS AFTER BLOCK SELECTION ;02:49 PM  12 Oct 1994
                      2:        ;;21.0;VA FileMan;;Dec 28, 1994
                      3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
                      4:        ;Input:
                      5:        ;  B     = Block number
                      6:        ;  C     = Block name
                      7:        ;  C1    = Block $Y
                      8:        ;  C2    = Block $X1
                      9:        ;  C3    = Block $X2
                     10:        ;  DDGFHDR = 1, if block is immobile (header block)
                     11:        ;
                     12:        N DDGFE
                     13:        S:'$G(DDGFHDR) DDGFHDR=0
                     14:        D PAINTS
                     15:        ;
                     16:        S DDGFE=0 F  S Y=$$READ W:$T(@Y)="" $C(7) D:$T(@Y)]"" @Y Q:DDGFE
                     17:        D CLEANUP
                     18:        Q
                     19:        ;
                     20: LNU    Q:C1'>$P(DDGFLIM,U)!DDGFHDR
                     21:        D REDRAW
                     22:        S C1=C1-1,DY=DY-1
                     23:        D PAINTS
                     24:        Q
                     25: LND    Q:C1'<$P(DDGFLIM,U,3)!DDGFHDR
                     26:        D REDRAW
                     27:        S C1=C1+1,DY=DY+1
                     28:        D PAINTS
                     29:        Q
                     30: CHR    Q:C2'<$P(DDGFLIM,U,4)!DDGFHDR
                     31:        D REDRAW
                     32:        S C2=C2+1,DX=DX+1
                     33:        D PAINTS
                     34:        Q
                     35: CHL    Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
                     36:        D REDRAW
                     37:        S C2=C2-1,DX=DX-1
                     38:        D PAINTS
                     39:        Q
                     40: TBR    N X
                     41:        Q:C2+$L(C)>$P(DDGFLIM,U,4)!DDGFHDR
                     42:        D REDRAW
                     43:        S X=$$MIN(5,$P(DDGFLIM,U,4)-C2-$L(C)+1)
                     44:        S C2=C2+X,DX=DX+X
                     45:        D PAINTS
                     46:        Q
                     47: TBL    N X
                     48:        Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
                     49:        D REDRAW
                     50:        S X=$$MIN(5,C2-$P(DDGFLIM,U,2))
                     51:        S C2=C2-X,DX=DX-X
                     52:        D PAINTS
                     53:        Q
                     54: SCT    Q:C1'>$P(DDGFLIM,U)!DDGFHDR
                     55:        D REDRAW
                     56:        S (C1,DY)=$P(DDGFLIM,U)
                     57:        D PAINTS
                     58:        Q
                     59: SCB    Q:C1'<$P(DDGFLIM,U,3)!DDGFHDR
                     60:        D REDRAW
                     61:        S (C1,DY)=$P(DDGFLIM,U,3)
                     62:        D PAINTS
                     63:        Q
                     64: SCR    N X
                     65:        Q:C2+$L(C)>$P(DDGFLIM,U,4)!DDGFHDR
                     66:        D REDRAW
                     67:        S X=$P(DDGFLIM,U,4)-C2-$L(C)+1
                     68:        S C2=C2+X,DX=DX+X
                     69:        D PAINTS
                     70:        Q
                     71: SCL    N X
                     72:        Q:C2'>$P(DDGFLIM,U,2)!DDGFHDR
                     73:        D REDRAW
                     74:        S X=C2-$P(DDGFLIM,U,2)
                     75:        S C2=C2-X,DX=DX-X
                     76:        D PAINTS
                     77:        Q
                     78:        ;
                     79: EDIT   ;Edit block parameters
                     80:        G:'$G(DDGFHDR) EDIT^DDGFBK
                     81:        G EDIT^DDGFHBK
                     82:        ;
                     83: REORDER        ;Reorder fields on block
                     84:        D EN^DDGFORD(B)
                     85:        Q
                     86:        ;
                     87: TO     ;Time-out
                     88:        W $C(7)
                     89:        G DESELECT
                     90:        ;
                     91: DESELECT       ;
                     92:        S DDGFE=1
                     93:        Q
                     94:        ;
                     95: CLEANUP        ;
                     96:        I '$G(DDGFBDEL) D
                     97:        . S C3=C2+$L(C)-1
                     98:        . S @DDGFREF@("F",DDGFPG,B)=C1_U_C2_U_C3_U_C_U_1,DDGFCHG=1
                     99:        . S @DDGFREF@("BKRC",DDGFWIDB,C1,C2,C3,B)=$S($G(DDGFHDR):"H",1:"")
                    100:        ;
                    101:        I '$G(DDGFEBV),'$G(DDGFBDEL) D
                    102:        . D WRITE^DDGLIBW(DDGFWIDB,C,C1-$P(DDGFLIM,U),C2-$P(DDGFLIM,U,2))
                    103:        . X IOXY
                    104:        K DDGFHDR,DDGFBDEL
                    105:        Q
                    106:        ;
                    107: RC(DDGFY,DDGFX)        ;Update status line, reset DX and DY, move cursor
                    108:        N S
                    109:        I DDGFR D
                    110:        . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
                    111:        . X IOXY W S_$J("",7-$L(S))
                    112:        S DY=DDGFY,DX=DDGFX X IOXY
                    113:        Q
                    114:        ;
                    115: REDRAW ;
                    116:        D REPAINT^DDGLIBW(DDGFWIDB,(C1-$P(DDGFLIM,U))_U_(C2-$P(DDGFLIM,U,2))_U_1_U_$$MIN($L(C),$P(DDGFLIM,U,4)-C2+1))
                    117:        Q
                    118:        ;
                    119: PAINTS ;
                    120:        N Y,X
                    121:        S Y=DY,X=DX
                    122:        S DY=C1,DX=C2 X IOXY
                    123:        W $P(DDGLVID,DDGLDEL,6)_$E(C,1,$$MIN($L(C),$P(DDGFLIM,U,4)-C2+1))_$P(DDGLVID,DDGLDEL,10)
                    124:        D RC(Y,X)
                    125:        Q
                    126:        ;
                    127: MIN(X,Y,Z)     ;Return the minimum of two or three numbers
                    128:        N A
                    129:        S A=$S(X<Y:X,1:Y)
                    130:        Q:$G(Z)="" A
                    131:        Q $S(A<Z:A,1:Z)
                    132:        ;
                    133: READ() N S,Y
                    134:        F  R *Y:DTIME D C Q:Y'=-1
                    135:        Q Y
                    136:        ;
                    137: C      I Y<0 S Y="TO" Q
                    138:        S S=""
                    139: C1     S S=S_$C(Y)
                    140:        I DDGF("SIN")'[(U_S) D  I Y=-1 W $C(7) Q
                    141:        . I $C(Y)'?1L S Y=-1 Q
                    142:        . S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("SIN")'[(U_S_U) Y=-1
                    143:        ;
                    144:        I DDGF("SIN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("SOUT"),U,$L($P(DDGF("SIN"),U_S_U),U)) Q
                    145:        R *Y:5 G:Y'=-1 C1 W $C(7)
                    146:        Q

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