Annotation of freem_fileman/USER/DDSPRNT.m, revision 1.1
1.1 ! snw 1: DDSPRNT ;SFISC/MKO-PRINT A FORM ;02:51 PM 18 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: I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
! 6: ;
! 7: N DDSFORM,DDSPBRK
! 8: D SELFORM(.DDSFORM) Q:DDSFORM=-1
! 9: D PAGEBRK(.DDSPBRK) Q:$D(DDSPBRK)[0
! 10: ;
! 11: ;Device
! 12: S %ZIS=$S($D(^%ZTSK):"Q",1:"")
! 13: W ! D ^%ZIS K %ZIS I $G(POP) K POP Q
! 14: K POP
! 15: ;
! 16: ;Queue report
! 17: I $D(IO("Q")),$D(^%ZTSK) D G END
! 18: . S ZTRTN="PRINT^DDSPRNT"
! 19: . S ZTDESC="Report of Form "_$P(DDSFORM,U,2)
! 20: . N I F I="DDSFORM","DDSFORM(0)","DDSPBRK" S ZTSAVE(I)=""
! 21: . D ^%ZTLOAD
! 22: . I $D(ZTSK)#2 W !,"Report queued!",!,"Task number: "_$G(ZTSK),!
! 23: . E W !,"Report canceled!",!
! 24: . K ZTSK
! 25: . S IOP="HOME" D ^%ZIS
! 26: ;
! 27: U IO
! 28: ;
! 29: PRINT ;Entry point for queued reports
! 30: N DDSBK,DDSCOL1,DDSCOL2,DDSCOL3,DDSCRT,DDSFILE
! 31: N DDSHLIN,DDSHBK,DDSPAGE,DDSQUE
! 32: N DX,DY,X,Y
! 33: ;
! 34: I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
! 35: D INIT
! 36: D @("HDR"_(2-DDSCRT))
! 37: D FORM,END
! 38: Q
! 39: ;
! 40: FORM ;Form data
! 41: W !
! 42: ;
! 43: ;Description
! 44: D WP($NA(^DIST(.403,+DDSFORM,15))) Q:$D(DIRUT)
! 45: ;
! 46: ;Other properties
! 47: D W("PRIMARY FILE: "_$P(DDSFORM(0),U,8),9) Q:$D(DIRUT)
! 48: W ?49,"READ ACCESS: "_$P(DDSFORM(0),U,2)
! 49: D W("DATE CREATED: "_$$EXTERNAL^DILFD(.403,4,"",$P(DDSFORM(0),U,5)),9) Q:$D(DIRUT)
! 50: W ?48,"WRITE ACCESS: "_$P(DDSFORM(0),U,3)
! 51: D W("DATE LAST USED: "_$$EXTERNAL^DILFD(.403,5,"",$P(DDSFORM(0),U,6)),7) Q:$D(DIRUT)
! 52: W ?53,"CREATOR: "_$P(DDSFORM(0),U,4)
! 53: D W() Q:$D(DIRUT)
! 54: ;
! 55: I $P(DDSFORM(0),U,7)]"" D W("TITLE: "_$P(DDSFORM(0),U,7),16) Q:$D(DIRUT)
! 56: I $P($G(^DIST(.403,+DDSFORM,21)),U)]"" D W("RECORD SELECTION PAGE: "_$P(^(21),U)) Q:$D(DIRUT)
! 57: ;
! 58: I $X D W() Q:$D(DIRUT)
! 59: S X=$G(^DIST(.403,+DDSFORM,11))
! 60: I X]"" D W("PRE ACTION:",11) Q:$D(DIRUT) D PCOL(X,23)
! 61: S X=$G(^DIST(.403,+DDSFORM,12))
! 62: I X]"" D W("POST ACTION:",10) Q:$D(DIRUT) D PCOL(X,23)
! 63: S X=$G(^DIST(.403,+DDSFORM,14))
! 64: I X]"" D W("POST SAVE:",12) Q:$D(DIRUT) D PCOL(X,23)
! 65: S X=$G(^DIST(.403,+DDSFORM,20))
! 66: I X]"" D W("DATA VALIDATION:",6) Q:$D(DIRUT) D PCOL(X,23)
! 67: K DDSFORM(0)
! 68: ;
! 69: ;Loop through all pages
! 70: I $X D W() Q:$D(DIRUT)
! 71: Q:'$O(^DIST(.403,+DDSFORM,40,0))
! 72: ;
! 73: N DDSPG,DDSPGN
! 74: S DDSPGN="",DDSPFRST=1
! 75: F S DDSPGN=$O(^DIST(.403,+DDSFORM,40,"B",DDSPGN)) Q:DDSPGN=""!$D(DIRUT) S DDSPG=0 F S DDSPG=$O(^DIST(.403,+DDSFORM,40,"B",DDSPGN,DDSPG)) Q:'DDSPG!$D(DIRUT) D PAGE^DDSPRNT1
! 76: K DDSPFRST Q:$D(DIRUT)
! 77: ;
! 78: D:$D(DDSHBK) HBLKS^DDSPRNT1
! 79: Q
! 80: ;
! 81: WR(DDSLAB,DDSVAL,DDSFLG) ;Write label and value
! 82: I DDSVAL="",'$G(DDSFLG) Q
! 83: ;
! 84: D W() Q:$D(DIRUT)
! 85: W ?DDSCOL2,DDSLAB
! 86: ;
! 87: I $X>DDSCOL3 N DDSCOL3 S DDSCOL3=$X+1
! 88: D PCOL(DDSVAL,DDSCOL3)
! 89: Q
! 90: ;
! 91: PCOL(DDSVAL,DDSCOL) ;Print DDSVAL
! 92: N DDSWIDTH,DDSIND
! 93: S DDSWIDTH=IOM-DDSCOL-1
! 94: F DDSIND=1:DDSWIDTH:$L(DDSVAL) D Q:$D(DIRUT)
! 95: . I DDSIND>1 D W() Q:$D(DIRUT)
! 96: . W ?DDSCOL,$E(DDSVAL,DDSIND,DDSIND+DDSWIDTH-1)
! 97: Q
! 98: ;
! 99: WP(DDSWP,DIWL,DDSLF) ;Print text in array @DDSWP
! 100: ;DDSLF [ A : LF after (def)
! 101: ; B : LF feed before
! 102: ;
! 103: Q:'$P($G(@DDSWP@(0)),U,3)
! 104: N DIW,DIWF,DIWI,DIWR,DIWT,DIWTC,DIWX,DN
! 105: N DDSI,DDSCNT,I,X,Z
! 106: ;
! 107: K ^UTILITY($J,"W")
! 108: S:'$G(DIWL) DIWL=1
! 109: S DIWR=IOM-1
! 110: S:'$D(DDSLF) DDSLF="A"
! 111: ;
! 112: S DDSCNT=$P($G(@DDSWP@(0)),U,3)
! 113: I DDSCNT D
! 114: . F DDSI=1:1:DDSCNT I $D(@DDSWP@(DDSI,0))#2 S X=^(0) D ^DIWP
! 115: . ;
! 116: . I DDSLF'["B" D
! 117: .. W ?DIWL-1,$G(^UTILITY($J,"W",DIWL,1,0))
! 118: .. S DDSCNT=1
! 119: . E S DDSCNT=0
! 120: . F S DDSCNT=$O(^UTILITY($J,"W",DIWL,DDSCNT)) Q:'DDSCNT!$D(DIRUT) D
! 121: .. D W($G(^UTILITY($J,"W",DIWL,DDSCNT,0)),DIWL-1)
! 122: ;
! 123: K ^UTILITY($J,"W")
! 124: D:DDSLF["A" W()
! 125: Q
! 126: ;
! 127: W(DDSSTR,DDSCOL) ;Write DDSSTR
! 128: I $Y+3'<IOSL D HEADER Q:$D(DIRUT)
! 129: W !?+$G(DDSCOL),$G(DDSSTR)
! 130: Q
! 131: ;
! 132: HEADER ;All headers except first
! 133: I DDSCRT D Q:$D(DIRUT)
! 134: . N DIR,X,Y
! 135: . S DIR(0)="E" W ! D ^DIR
! 136: I DDSQUE,$$S^%ZTLOAD S (ZTSTOP,DIRUT)=1 Q
! 137: ;
! 138: HDR1 ;First header for CRTs
! 139: W @IOF
! 140: ;
! 141: HDR2 ;First header for non-CRTs
! 142: ;
! 143: S DDSPAGE=$G(DDSPAGE)+1
! 144: W "FORM LISTING - "_$P(DDSFORM,U,2)_" (#"_+DDSFORM_")"
! 145: W !,"FILE: "_DDSFILE
! 146: W ?(IOM-$L(DDSHLIN)-$L(DDSPAGE)-1),DDSHLIN_DDSPAGE
! 147: W !,$TR($J("",IOM-1)," ","-")
! 148: Q
! 149: ;
! 150: SELFORM(DDSFORM) ;Select form
! 151: N %,%W,%Y,C,I,Q,DDH,DIC,X,Y
! 152: S DIC="^DIST(.403,",DIC(0)="QEAMZ"
! 153: D ^DIC K DIC
! 154: S DDSFORM=Y,DDSFORM(0)=$G(Y(0))
! 155: Q
! 156: ;
! 157: PAGEBRK(DDSPBRK) ;Prompt
! 158: N DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
! 159: S DIR(0)="YO"
! 160: S DIR("A")="Start each page of the form on a new page"
! 161: S DIR("B")="Yes"
! 162: W ! D ^DIR Q:$D(DIRUT)
! 163: S DDSPBRK=Y
! 164: Q
! 165: ;
! 166: INIT ;Setup
! 167: N %,%H,X,Y
! 168: S %H=$H D YX^%DTC
! 169: S DDSHLIN=$P(Y,"@")_" "_$P($P(Y,"@",2),":",1,2)_" PAGE "
! 170: S DDSFILE=$P(DDSFORM(0),U,8)
! 171: I DDSFILE,$D(^DIC(DDSFILE,0))#2 S DDSFILE=$P(^(0),U)_" (#"_DDSFILE_")"
! 172: E S DDSFILE=""
! 173: S DDSCRT=$E(IOST,1,2)="C-"
! 174: S DDSQUE=$D(ZTQUEUED)
! 175: Q
! 176: ;
! 177: END ;Finish up
! 178: I $D(ZTQUEUED) S ZTREQ="@"
! 179: E X $G(^%ZIS("C"))
! 180: K DIRUT,DUOUT,DTOUT
! 181: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>