Annotation of freem_fileman/DDSZ.m, revision 1.1
1.1 ! snw 1: DDSZ ;SFISC/MKO-FORM COMPILER ;11:26 AM 16 Nov 1994
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;
! 5: ;Prompt, compile
! 6: N DDSFRM,DDSDDP,DDSREFS
! 7: N C,DIC,X,Y
! 8: I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
! 9: ;
! 10: S DIC="^DIST(.403,",DIC(0)="AEQZ"
! 11: D ^DIC K DIC Q:Y=-1!'$D(^DIST(.403,+Y,0))
! 12: S DDSFRM=Y,DDSDDP=$P(Y(0),U,8)
! 13: ;
! 14: W !!,"Compiling "_$P(Y,U,2)_" (#"_+Y_") ...",!
! 15: D EN(DDSFRM,DDSDDP)
! 16: I $G(DIERR) W $C(7) D MSG^DIALOG("BW")
! 17: Q
! 18: ;
! 19: ALL ;Compile all forms
! 20: N DDSFRM,DDSDDP,DDSFNUM,DDSREFS
! 21: I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
! 22: W:'$D(DDSQUIET) !,"Compiling all forms ...",!
! 23: ;
! 24: S DDSFNUM=0
! 25: F S DDSFNUM=$O(^DIST(.403,DDSFNUM)) Q:'DDSFNUM D
! 26: . Q:$D(^DIST(.403,DDSFNUM,0))[0
! 27: . S DDSFRM=DDSFNUM_U_$P(^DIST(.403,DDSFNUM,0),U),DDSDDP=+$P(^(0),U,8)
! 28: . S DDSREFS=$$REF^DDS0(DDSFRM)
! 29: . W:'$D(DDSQUIET) !?3,$P(DDSFRM,U,2),?35,"(#"_+DDSFRM_")"
! 30: . D EN(DDSFRM,DDSDDP)
! 31: . I $G(DIERR),'$D(DDSQUIET) W !,$C(7) D MSG^DIALOG("BW") W !
! 32: Q
! 33: ;
! 34: EN(DDSFRM,DDSDDP,DDSREFS) ;Compile a form
! 35: N DDSDO,DDSPG,DDSNDD,DDSPGRP
! 36: ;
! 37: S:'$G(DDSDDP) DDSDDP=$P(^DIST(.403,+DDSFRM,0),U,8)
! 38: S:$G(DDSREFS)="" DDSREFS=$$REF^DDS0(DDSFRM)
! 39: K @DDSREFS
! 40: ;
! 41: ;Find page groups
! 42: D PGRP^DDSZ3(+DDSFRM,.DDSPGRP)
! 43: ;
! 44: S DDSPG=0,(DDSDO,DDSNDD)=1
! 45: F S DDSPG=$O(^DIST(.403,+DDSFRM,40,DDSPG)) Q:'DDSPG D PG(DDSFRM,DDSPG,DDSDDP,.DDSDO,.DDSNDD) Q:$G(DIERR)
! 46: I $G(DIERR) D ERR(DDSFRM,DDSREFS) Q
! 47: S $P(^DIST(.403,+DDSFRM,0),U,9,11)=+$G(DDSDO)_U_+$G(DDSNDD)_U_1
! 48: Q
! 49: ;
! 50: PG(DDSFRM,DDSPG,DDSDDP,DDSDO,DDSNDD) ;Compile a page
! 51: ;
! 52: Q:$D(^DIST(.403,+DDSFRM,40,DDSPG,0))[0
! 53: D:$P($G(^DIST(.403,+DDSFRM,40,DDSPG,1)),U,2)]"" ASUB^DDSZ3(DDSPG,DDSFRM)
! 54: ;
! 55: ;Get page coordinates
! 56: S DDSPX=$P(^DIST(.403,+DDSFRM,40,DDSPG,0),U,3)
! 57: S DDSPY=$P(DDSPX,",")-1,DDSPX=$P(DDSPX,",",2)-1
! 58: S:DDSPY<0 DDSPY=0 S:DDSPX<0 DDSPX=0
! 59: ;
! 60: ;Compile header block
! 61: S DDSB=$P($G(^DIST(.403,+DDSFRM,40,DDSPG,0)),U,2)
! 62: I DDSB]"" D BLK(DDSFRM,DDSPG,DDSDDP,DDSPY,DDSPX,DDSB,"",1,"",.DDSNDD,.DDSSCR,.DDSNAV,.DDSORD) G:$G(DIERR) END
! 63: ;
! 64: ;Compile all other blocks on page
! 65: S DDSBO="" F S DDSBO=$O(^DIST(.403,+DDSFRM,40,DDSPG,40,"AC",DDSBO)) Q:DDSBO="" S DDSB=$O(^(DDSBO,0)) Q:'DDSB D BLK(DDSFRM,DDSPG,DDSDDP,DDSPY,DDSPX,DDSB,DDSBO,"",.DDSDO,.DDSNDD,.DDSSCR,.DDSNAV,.DDSORD) G:$G(DIERR) END
! 66: ;
! 67: D:$D(DDSSCR)!$D(DDSORD) EN^DDSZ2(.DDSSCR,.DDSNAV,.DDSORD,.DDSRNAV)
! 68: ;
! 69: END K DDSB,DDSBO,DDSMUL,DDSNAV,DDSORD
! 70: K DDSP,DDSPX,DDSPY,DDSREP,DDSRNAV,DDSSCR
! 71: Q
! 72: ;
! 73: BLK(DDSFRM,DDSPG,DDSDDP,DDSPY,DDSPX,DDSB,DDSBO,DDSH,DDSDO,DDSNDD,DDSSCR,DDSNAV,DDSORD) ;
! 74: ;Compile block
! 75: ; DDSH = 1 if header block
! 76: ; DDSDO = killed if any edit blocks
! 77: ; DDSNDD = killed if any DD fields
! 78: ;
! 79: N DDP
! 80: I $D(^DIST(.404,DDSB,0))[0 D BLD^DIALOG(3051,"#"_DDSB) Q
! 81: S DDSDN=$P(^DIST(.404,DDSB,0),U,3),DDP=+$P(^(0),U,2)
! 82: ;
! 83: S DDSPTB=""
! 84: S:'$G(DDSH) DDSPTB=$G(^DIST(.403,+DDSFRM,40,DDSPG,40,DDSB,1))
! 85: ;
! 86: ;Get DDSBY,DDSBX,DDSTP
! 87: I $G(DDSH) S DDSBY=DDSPY,DDSBX=DDSPX,DDSTP="h",DDSREP=1
! 88: E D
! 89: . S DDSBX=$P(^DIST(.403,+DDSFRM,40,DDSPG,40,DDSB,0),U,3),DDSTP=$P(^(0),U,4) S DDSREP=$S($G(^(2)):^(2),1:1)
! 90: . K:DDSTP="e" DDSDO
! 91: . S DDSBY=$P(DDSBX,",")-1,DDSBX=$P(DDSBX,",",2)-1
! 92: . S:DDSBY<0 DDSBY=0 S:DDSBX<0 DDSBX=0
! 93: . S DDSBY=DDSBY+DDSPY,DDSBX=DDSBX+DDSPX
! 94: ;
! 95: ;Set @DDSREFS@(DDSPG,DDSB)
! 96: S @DDSREFS@(DDSPG,DDSB)=DDSBY_U_DDSBX_U_$P($G(^DIST(.404,DDSB,0)),U,2)_U_DDSDN_U_DDSTP_$S(DDSREP>1:U_U_+DDSREP,1:"")
! 97: ;
! 98: D:DDSPTB]"" PT^DDSPTR(DDSDDP,DDSPTB,DDSFRM,DDSPG,DDSB)
! 99: D EN^DDSZ1(DDSPG,DDSB,DDP,DDSBY,DDSBX,DDSBO,DDSTP,DDSREP,.DDSNDD,.DDSPGRP,.DDSSCR,.DDSNAV,.DDSORD,.DDSRNAV)
! 100: ;
! 101: K DDSBX,DDSBY,DDSDN,DDSPTB,DDSTP
! 102: Q
! 103: ;
! 104: DELALL ;Delete compile global for all forms
! 105: N DDSFRM,DDSFNUM,DDSREFS
! 106: W:'$D(DDSQUIET) !,"Deleting compiled form data ...",!
! 107: ;
! 108: S DDSFNUM=0
! 109: F S DDSFNUM=$O(^DIST(.403,DDSFNUM)) Q:'DDSFNUM D
! 110: . Q:$D(^DIST(.403,DDSFNUM,0))[0
! 111: . S DDSFRM=DDSFNUM_U_$P(^DIST(.403,DDSFNUM,0),U)
! 112: . S DDSREFS=$$REF^DDS0(DDSFRM)
! 113: . W:'$D(DDSQUIET) !?3,$P(DDSFRM,U,2),?35,"(#"_+DDSFRM_")"
! 114: . D DEL(DDSFRM)
! 115: Q
! 116: ;
! 117: DEL(DDSFRM) ;Delete compiled global
! 118: N DDSREFS
! 119: S DDSREFS=$$REF^DDS0(DDSFRM) K @DDSREFS
! 120: S $P(^DIST(.403,+DDSFRM,0),U,11)=""
! 121: Q
! 122: ;
! 123: ERR(DDSFRM,DDSREFS) ;Print error, kill compiled global
! 124: Q:'$G(DIERR)
! 125: N DDSNAM
! 126: S DDSNAM=$P(DDSFRM,U,2)
! 127: S:DDSNAM="" DDSNAM=$P($G(^DIST(.403,+DDSFRM,0)),U)
! 128: D BLD^DIALOG(3002,DDSNAM)
! 129: S $P(^DIST(.403,+DDSFRM,0),U,11)=""
! 130: K @DDSREFS
! 131: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>