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

DDGLCBOX.m

Go to the documentation of this file.
  1. DDGLCBOX ;SFISC/MKO-COMBO BOX ;2:09 PM 26 Apr 1996
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. CBOX(DDGLGLO,DDGLOUT,DDGLROW,DDGLCOL,DDGLHT,DDGLWD,DDGLSEL,DDGLFLG) ;
  1. Q:$G(DDGLGLO)=""
  1. ;
  1. N DDGLCBOX,DDGLSEL,DDGLI,DDGLNC,DDGLEMAP,DDGLTERM,DDGLDONE
  1. ;
  1. ;Create list box and set up defaults
  1. D INIT
  1. ;
  1. ;Save the # columns and selected text
  1. S DDGLI=DDGLCBOX(DDGLCBOX,"SV")
  1. S DDGLNC=$P(DDGLI,U,5)
  1. S DDGLSEL=DDGLCBOX(DDGLCBOX,"ITEM",$P(DDGLI,U,6))
  1. K DDGLI
  1. ;
  1. ;Write the brackets for the edit field
  1. S DY=DDGLROW,DX=DDGLCOL X IOXY
  1. W "["_$J("",DDGLNC)_"]"
  1. ;
  1. ;Read for the edit box
  1. S DDGLEMAP(1)="EKDN^DDGLCBOX;KEYDOWN"
  1. S DDGLEMAP(2)="EQUIT^DDGLCBOX;$C(27,27)"
  1. S DDGLEMAP(3)="EQUIT^DDGLCBOX;F1_""Q"""
  1. S DDGLEMAP(4)="EQUIT^DDGLCBOX;F1_""C"""
  1. S DDGLEMAP(5)="EEXIT^DDGLCBOX;F1_""E"""
  1. ;
  1. F D Q:$G(DDGLDONE)
  1. . D EN^DIR0(DDGLROW,DDGLCOL+1,DDGLNC,1,DDGLSEL,245,0,.DDGLEMAP,"KTW",.DDGLSEL,.DDGLTERM)
  1. . I $P(DDGLTERM,U)="N" S DDGLDONE=1 Q
  1. . I $P(DDGLTERM,U)="QUIT" S DDGLDONE=1 Q
  1. . I $P(DDGLTERM,U)="TO" S DDGLDONE=1 Q
  1. . ;
  1. . D READ^DDGLBXA(.DDGLCBOX,.DDGLOUT)
  1. . I DDGLOUT("C")'="TAB" S DDGLDONE=1 Q
  1. . S DDGLSEL=DDGLOUT(0)
  1. ;
  1. ;Clear edit field and destroy list box
  1. S DY=DDGLROW,DX=DDGLCOL X IOXY
  1. W $J("",DDGLNC+2)
  1. D DESTROY^DDGLBXA(DDGLCBOX,$G(DDGLFLG))
  1. Q
  1. ;
  1. EKDN ;
  1. Q:"^UP^DOWN^RIGHT^LEFT^TAB^"[(U_Y_U)
  1. ;
  1. D E1^DIR01
  1. S DIR0CH=""
  1. Q:DIR0A=""
  1. ;
  1. N DDGLDX,DDGLDY
  1. W $P(DDGLVID,DDGLDEL,10)
  1. S DDGLDX=DX,DDGLDY=DY
  1. ;
  1. D UPDATE^DDGLBXA(.DDGLCBOX,DIR0A)
  1. ;
  1. W $P(DDGLVID,DDGLDEL,6)
  1. S DX=DDGLDX,DY=DDGLDY
  1. Q
  1. EQUIT ;
  1. S DIR0QT="1^QUIT"
  1. Q
  1. EEXIT ;
  1. S DIR0QT="1^N"
  1. Q
  1. LTAB ;
  1. K DDGLOUT
  1. S DDGLOUT=$O(@DDGLGLO@(DDGLSEL,"")),DDGLOUT(0)=DDGLSEL
  1. S DDGLOUT("C")="TAB"
  1. S DDGLQT=1
  1. Q
  1. ;
  1. LKDN ;
  1. N DY,DX
  1. S DY=DDGLROW-1,DX=DDGLCOL X IOXY
  1. W DDGLSEL_$J("",DDGLNC-$L(DDGLSEL))
  1. Q
  1. ;
  1. INIT ;Set defaults and create list box
  1. ;Returns: DDGLCBOX array
  1. ;
  1. D INIT^DDGLIB0()
  1. ;
  1. ;Set defaults for row and column
  1. N DDGLMAP
  1. I $G(DDGLROW,-1)<0 S DDGLROW=5
  1. E I DDGLROW+4>IOSL S DDGLROW=IOSL-4
  1. I $G(DDGLCOL,-1)<0 S DDGLCOL=5
  1. E I DDGLCOL+6>IOM S DDGLCOL=IOM-6
  1. ;
  1. ;Check DDGLHT and DDGLWD
  1. S DDGLHT=$S($D(DDGLHT)[0:7,DDGLHT<3:3,1:DDGLHT)
  1. S:DDGLROW+DDGLHT+2>IOSL DDGLHT=IOSL-DDGLROW
  1. ;
  1. S DDGLWD=$S($D(DDGLWD)[0:14,DDGLWD<5:5,1:DDGLWD)
  1. S:DDGLCOL+DDGLWD+2>IOM DDGLWD=IOM-DDGLCOL
  1. ;
  1. S DDGLMAP(1)="LTAB^DDGLCBOX;$C(9)"
  1. S DDGLMAP(2)="LKDN^DDGLCBOX;KEYDOWN"
  1. ;
  1. D CREATE^DDGLBXA(DDGLGLO,.DDGLCBOX,DDGLROW+1,DDGLCOL+1,DDGLHT,DDGLWD,$G(DDGLSEL),.DDGLMAP)
  1. Q
  1. ;