[613] | 1 | DDGLCBOX ;SFISC/MKO-COMBO BOX ;2:09 PM 26 Apr 1996
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | CBOX(DDGLGLO,DDGLOUT,DDGLROW,DDGLCOL,DDGLHT,DDGLWD,DDGLSEL,DDGLFLG) ;
|
---|
| 6 | Q:$G(DDGLGLO)=""
|
---|
| 7 | ;
|
---|
| 8 | N DDGLCBOX,DDGLSEL,DDGLI,DDGLNC,DDGLEMAP,DDGLTERM,DDGLDONE
|
---|
| 9 | ;
|
---|
| 10 | ;Create list box and set up defaults
|
---|
| 11 | D INIT
|
---|
| 12 | ;
|
---|
| 13 | ;Save the # columns and selected text
|
---|
| 14 | S DDGLI=DDGLCBOX(DDGLCBOX,"SV")
|
---|
| 15 | S DDGLNC=$P(DDGLI,U,5)
|
---|
| 16 | S DDGLSEL=DDGLCBOX(DDGLCBOX,"ITEM",$P(DDGLI,U,6))
|
---|
| 17 | K DDGLI
|
---|
| 18 | ;
|
---|
| 19 | ;Write the brackets for the edit field
|
---|
| 20 | S DY=DDGLROW,DX=DDGLCOL X IOXY
|
---|
| 21 | W "["_$J("",DDGLNC)_"]"
|
---|
| 22 | ;
|
---|
| 23 | ;Read for the edit box
|
---|
| 24 | S DDGLEMAP(1)="EKDN^DDGLCBOX;KEYDOWN"
|
---|
| 25 | S DDGLEMAP(2)="EQUIT^DDGLCBOX;$C(27,27)"
|
---|
| 26 | S DDGLEMAP(3)="EQUIT^DDGLCBOX;F1_""Q"""
|
---|
| 27 | S DDGLEMAP(4)="EQUIT^DDGLCBOX;F1_""C"""
|
---|
| 28 | S DDGLEMAP(5)="EEXIT^DDGLCBOX;F1_""E"""
|
---|
| 29 | ;
|
---|
| 30 | F D Q:$G(DDGLDONE)
|
---|
| 31 | . D EN^DIR0(DDGLROW,DDGLCOL+1,DDGLNC,1,DDGLSEL,245,0,.DDGLEMAP,"KTW",.DDGLSEL,.DDGLTERM)
|
---|
| 32 | . I $P(DDGLTERM,U)="N" S DDGLDONE=1 Q
|
---|
| 33 | . I $P(DDGLTERM,U)="QUIT" S DDGLDONE=1 Q
|
---|
| 34 | . I $P(DDGLTERM,U)="TO" S DDGLDONE=1 Q
|
---|
| 35 | . ;
|
---|
| 36 | . D READ^DDGLBXA(.DDGLCBOX,.DDGLOUT)
|
---|
| 37 | . I DDGLOUT("C")'="TAB" S DDGLDONE=1 Q
|
---|
| 38 | . S DDGLSEL=DDGLOUT(0)
|
---|
| 39 | ;
|
---|
| 40 | ;Clear edit field and destroy list box
|
---|
| 41 | S DY=DDGLROW,DX=DDGLCOL X IOXY
|
---|
| 42 | W $J("",DDGLNC+2)
|
---|
| 43 | D DESTROY^DDGLBXA(DDGLCBOX,$G(DDGLFLG))
|
---|
| 44 | Q
|
---|
| 45 | ;
|
---|
| 46 | EKDN ;
|
---|
| 47 | Q:"^UP^DOWN^RIGHT^LEFT^TAB^"[(U_Y_U)
|
---|
| 48 | ;
|
---|
| 49 | D E1^DIR01
|
---|
| 50 | S DIR0CH=""
|
---|
| 51 | Q:DIR0A=""
|
---|
| 52 | ;
|
---|
| 53 | N DDGLDX,DDGLDY
|
---|
| 54 | W $P(DDGLVID,DDGLDEL,10)
|
---|
| 55 | S DDGLDX=DX,DDGLDY=DY
|
---|
| 56 | ;
|
---|
| 57 | D UPDATE^DDGLBXA(.DDGLCBOX,DIR0A)
|
---|
| 58 | ;
|
---|
| 59 | W $P(DDGLVID,DDGLDEL,6)
|
---|
| 60 | S DX=DDGLDX,DY=DDGLDY
|
---|
| 61 | Q
|
---|
| 62 | EQUIT ;
|
---|
| 63 | S DIR0QT="1^QUIT"
|
---|
| 64 | Q
|
---|
| 65 | EEXIT ;
|
---|
| 66 | S DIR0QT="1^N"
|
---|
| 67 | Q
|
---|
| 68 | LTAB ;
|
---|
| 69 | K DDGLOUT
|
---|
| 70 | S DDGLOUT=$O(@DDGLGLO@(DDGLSEL,"")),DDGLOUT(0)=DDGLSEL
|
---|
| 71 | S DDGLOUT("C")="TAB"
|
---|
| 72 | S DDGLQT=1
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | LKDN ;
|
---|
| 76 | N DY,DX
|
---|
| 77 | S DY=DDGLROW-1,DX=DDGLCOL X IOXY
|
---|
| 78 | W DDGLSEL_$J("",DDGLNC-$L(DDGLSEL))
|
---|
| 79 | Q
|
---|
| 80 | ;
|
---|
| 81 | INIT ;Set defaults and create list box
|
---|
| 82 | ;Returns: DDGLCBOX array
|
---|
| 83 | ;
|
---|
| 84 | D INIT^DDGLIB0()
|
---|
| 85 | ;
|
---|
| 86 | ;Set defaults for row and column
|
---|
| 87 | N DDGLMAP
|
---|
| 88 | I $G(DDGLROW,-1)<0 S DDGLROW=5
|
---|
| 89 | E I DDGLROW+4>IOSL S DDGLROW=IOSL-4
|
---|
| 90 | I $G(DDGLCOL,-1)<0 S DDGLCOL=5
|
---|
| 91 | E I DDGLCOL+6>IOM S DDGLCOL=IOM-6
|
---|
| 92 | ;
|
---|
| 93 | ;Check DDGLHT and DDGLWD
|
---|
| 94 | S DDGLHT=$S($D(DDGLHT)[0:7,DDGLHT<3:3,1:DDGLHT)
|
---|
| 95 | S:DDGLROW+DDGLHT+2>IOSL DDGLHT=IOSL-DDGLROW
|
---|
| 96 | ;
|
---|
| 97 | S DDGLWD=$S($D(DDGLWD)[0:14,DDGLWD<5:5,1:DDGLWD)
|
---|
| 98 | S:DDGLCOL+DDGLWD+2>IOM DDGLWD=IOM-DDGLCOL
|
---|
| 99 | ;
|
---|
| 100 | S DDGLMAP(1)="LTAB^DDGLCBOX;$C(9)"
|
---|
| 101 | S DDGLMAP(2)="LKDN^DDGLCBOX;KEYDOWN"
|
---|
| 102 | ;
|
---|
| 103 | D CREATE^DDGLBXA(DDGLGLO,.DDGLCBOX,DDGLROW+1,DDGLCOL+1,DDGLHT,DDGLWD,$G(DDGLSEL),.DDGLMAP)
|
---|
| 104 | Q
|
---|
| 105 | ;
|
---|