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

DDGFFM.m

Go to the documentation of this file.
  1. DDGFFM ;SFISC/MKO-FORM ADD, EDIT, SELECT ;11:48 AM 20 Dec 1994
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. SEL ;Select another form
  1. ADD ;Add a new form
  1. N X,DIR0 K DDGFABT
  1. S DDGFDY=+$G(DY),DDGFDX=+$G(DX),(DY,DX)=0 X IOXY
  1. W $P(DDGLCLR,DDGLDEL,2)
  1. X DDGLZOSF("EON"),DDGLZOSF("TRMOFF")
  1. ;
  1. ;Select file
  1. FIL S DDS1="EDIT/CREATE FORM FOR" D W^DICRW K DDS1 G:Y<0 ADDQ
  1. G:'$D(@(DIC_"0)")) ADDQ
  1. ;
  1. ;Select form
  1. W !
  1. S DIC("S")="I $P(^(0),U,8)=+DDGFFILE"
  1. I DUZ(0)'="@" S DIC("S")=DIC("S")_" N DDSI F DDSI=1:1:$L($P(^(0),U,3)) I DUZ(0)[$E($P(^(0),U,3),DDSI) Q"
  1. S DDGFFILE=Y,DIC=.403,DIC(0)="QEAL",D="F"_+Y
  1. D IX^DIC K DIC,D G:Y<0 ADDQ
  1. S DDGFY=Y
  1. ;
  1. ;Save data for previous form
  1. I DDGFCHG,$D(DDGFFM)#2 G:+DDGFFM=+DDGFY ADDQ D G:$G(DDGFABT) ADDQ
  1. . N DDGFFNAM
  1. . S DIR(0)="Y",DDGFFNAM=$P(DDGFFM,U,2)
  1. . S DIR("A")="Save changes to form "_DDGFFNAM
  1. . S DIR("B")="YES"
  1. . S DIR("?",1)=" Enter 'Y' or press 'Return' to save changes."
  1. . S DIR("?",2)=" Enter 'N' to discard changes."
  1. . S DIR("?")=" Enter '^' to return to form "_DDGFFNAM
  1. . W ! D ^DIR K DIR I $D(DIRUT) K DIRUT,DUOUT,DTOUT S DDGFABT=1 Q
  1. . D SAVE^DDGFSV
  1. ;
  1. I $D(DDGFFM)#2,+DDGFFM'=+DDGFY D RECOMP^DDGF0
  1. ;
  1. S DDGFFM=$P(DDGFY,U,1,2)
  1. ;
  1. ;Stuff in values for form
  1. K DR S DIE=.403,DA=+DDGFY,DDGFNEW=$P(DDGFY,U,3)
  1. S:DDGFNEW DR="3////"_DUZ_";4///NOW"
  1. S DR=$S($G(DR)]"":DR_";",1:"")_"5///NOW"
  1. S:DDGFNEW DR=DR_";7////"_+DDGFFILE
  1. D ^DIE K DIE,DA,DR,D,%DT
  1. I DDGFNEW,$G(DUZ(0))]"" D
  1. . S $P(^DIST(.403,+DDGFFM,0),U,2,3)=DUZ(0)_U_DUZ(0)
  1. ;
  1. ;If this is a new form, create Page 1
  1. I DDGFNEW D
  1. . K DD,DO
  1. . S DIC="^DIST(.403,+DDGFFM,40,",DIC("P")=$P(^DD(.403,40,0),U,2)
  1. . S DIC(0)="",DA(1)=+DDGFFM,X=1
  1. . D FILE^DICN I Y=-1 K DIC,Y Q
  1. . S DIE=DIC,DA=+Y,DR="2////1,1;7////Page 1"
  1. . D ^DIE K DIC,DIE,DA,DR,D,Y
  1. ;
  1. ;Clear data for previous form
  1. W $P(DDGLCLR,DDGLDEL,2)
  1. I $D(@DDGFREF) K @DDGFREF D DESTALL^DDGLIBW
  1. ;
  1. ;Get first page, load form
  1. S DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",""))
  1. I DDGFPG]"" S DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",DDGFPG,""))
  1. D PG^DDGFLOAD(+DDGFFM,DDGFPG),STATUS^DDGF
  1. S DDGFDY=$P(DDGFLIM,U),DDGFDX=$P(DDGFLIM,U,2)
  1. ;
  1. ADDQQ X DDGLZOSF("EOFF"),DDGLZOSF("TRMON")
  1. D RC(DDGFDY,DDGFDX)
  1. K DDGFABT,DDGFDY,DDGFDX,DDGFNEW,DDGFY
  1. Q
  1. ;
  1. ADDQ I $D(DDGFFM)#2 D REFRESH^DDGF G ADDQQ
  1. K DDGFABT,DDGFDY,DDGFDX
  1. Q
  1. ;
  1. EDIT ;Invoke form to edit form
  1. S DDGFDY=DY,DDGFDX=DX
  1. K DDSFILE S DDSFILE=.403
  1. S DA=+DDGFFM,DR="[DDGF FORM EDIT]",DDSPARM="KTW"
  1. D ^DDS K DDSFILE,DR,DDSPARM
  1. ;
  1. S $P(DDGFFM,U,2)=$P(^DIST(.403,+DDGFFM,0),U)
  1. D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
  1. EDITQ K DDGFDY,DDGFDX
  1. Q
  1. ;
  1. RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
  1. N DDGFS
  1. I DDGFR D
  1. . S DY=IOSL-6,DX=IOM-9,DDGFS="R"_(DDGFY+1)_",C"_(DDGFX+1)
  1. . X IOXY W DDGFS_$J("",7-$L(DDGFS))
  1. S DY=DDGFY,DX=DDGFX X IOXY
  1. Q