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>