- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/ORDER_ENTRY_RESULTS_REPORTING-OR-OCX--ORRC--ORRJ/OCXOCMP6.m
r613 r623 1 OCXOCMP6 ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Assemble Order Check Routines) ;1/05/04 14:33 2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221,243**;Dec 17,1997;Build 242 3 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998 4 ; 5 EN() ; 6 ; 7 Q:$G(OCXWARN) 1 8 N OCXD0,OCXD1,OCXRN,OCXSCNT,OCXOFF 9 ; 10 W:'$G(OCXAUTO) !,?5,"Generate Extrinsic Function and Variables documentation..." 11 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D DOC^OCXOCMPT(OCXD0) 12 ; 13 K ^OCXS(860.3,"APGM") 14 S OCXD0=0 F S OCXD0=$O(^OCXS(860.3,OCXD0)) Q:'OCXD0 D 15 .K ^OCXS(860.3,OCXD0,"RTN") I '$G(OCXAUTO) W:($X>60) ! W "." 16 ; 17 K ^TMP("OCXCMP",$J,"D CODE") 18 ; 19 W:'$G(OCXAUTO) !,?5,"Assign Subroutines to Routines..." 20 S OCXRN=1,OCXD0=0 21 D GETHDR(1) 22 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 23 .N OCXLLAB,OCXSKIP,OCXEXF,OCXSUB,OCXSIZE,OCXFILE,OCXCCODE,OCXDCODE,OCXLAST 24 .I '$G(OCXAUTO) W:($X>60) ! W "." 25 .S OCXLLAB=^TMP("OCXCMP",$J,"LINE",OCXD0) 26 .S OCXSKIP=((OCXLLAB="UPDATE")!(OCXLLAB="LOG")) 27 .S OCXSIZE=$$SIZE^OCXOCMP8(OCXRN,OCXD0) 28 .S OCXLAST='$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) 29 .S OCXFILE=(OCXSIZE>OCXCRS)!(OCXLAST) S:OCXSKIP OCXFILE=0 30 .I OCXFILE D 31 ..K OCXEXF S OCXEXF="" 32 ..I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS") 33 ..S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) I 'OCXEXF(OCXSUB) D 34 ...S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB 35 ...S OCXSUB="" F S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB) D 36 ....S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB)) 37 ..S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) D 38 ...D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F") 39 ..D APPEND^OCXOCMP8(OCXRN,"$") 40 ..S OCXRN=OCXRN+1 D GETHDR(OCXRN) 41 ..; 42 .D APPEND^OCXOCMP8(OCXRN,OCXD0,"C",OCXLLAB) 43 .I ($E(OCXLLAB,1,2)="EL") D 44 ..S ^OCXS(860.3,"APGM",(+$E(OCXLLAB,3,$L(OCXLLAB))),(OCXLLAB_U_$$RNAM(OCXRN)))="" 45 .S $P(^TMP("OCXCMP",$J,"LINE",OCXD0),U,2)=$$RNAM(OCXRN) 46 .Q:'OCXLAST 47 .K OCXEXF S OCXEXF="" 48 .I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS") 49 .S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) I 'OCXEXF(OCXSUB) D 50 ..S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB 51 ..S OCXSUB="" F S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB) D 52 ...S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB)) 53 .S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) D 54 ..D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F") 55 .D APPEND^OCXOCMP8(OCXRN,"$") 56 ; 57 W:'$G(OCXAUTO) !,?5,"Resolve Routine Line Tags..." 58 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 59 .I '$G(OCXAUTO) W:($X>60) ! W "." 60 .N TEXT,RTN,TEMP,ALT,LABL,OBJ,PIEC 61 .S RTN=$$RNAM(OCXD0) 62 .K TEMP M TEMP=^TMP("OCXCMP",$J,"D CODE",OCXD0) 63 .S OCXD1=0 F OCXOFF=0:1 S OCXD1=$O(TEMP(OCXD1)) Q:'OCXD1 D Q:OCXWARN 64 ..N TEXT,PIEC 65 ..S TEXT=TEMP(OCXD1,0) Q:'(TEXT["||") 66 ..; 67 ..F PIEC=2:2:$L(TEXT,"||") D Q:OCXWARN 68 ...S LABL=$P(TEXT,"||",PIEC) 69 ...I ($E(LABL,1,5)="LINE:") D I 1 70 ....S LABL=$G(^TMP("OCXCMP",$J,"LINE",+$P(LABL,":",2))) 71 ....I '$L(LABL) D WARN^OCXOCMPV("Line Label not found: "_$P(TEXT,"|",2),$P($T(+1)," ",1)) Q 72 ....S:($P(LABL,"^",2)=RTN) LABL=$P(LABL,"^",1) 73 ...; 74 ...E I ($E(LABL,1,5)="LNTAG") D I 1 75 ....N D0,CNT 76 ....S D0=OCXD1 F CNT=1:1 S D0=$O(TEMP(D0),-1) Q:$L($P(TEMP(D0,0)," ",1)) 77 ....S LABL=$P(TEMP(D0,0)," ",1) S:(LABL["(") LABL=$P(LABL,"(",1) 78 ....S LABL="(+$P($H,"","",2))_""<"_LABL_"+"_CNT_U_RTN_">""" 79 ...; 80 ...E D WARN^OCXOCMPV("Unknown Compiler directive: "_LABL,$P($T(+1)," ",1)) Q 81 ...; 82 ...S $P(TEXT,"||",PIEC)=LABL 83 ..; 84 ..F Q:'(TEXT["||") S TEXT=$P(TEXT,"||",1)_$P(TEXT,"||",2,999) 85 ..S TEMP(OCXD1,0)=TEXT 86 .; 87 .K ^TMP("OCXCMP",$J,"D CODE",OCXD0) 88 .M ^TMP("OCXCMP",$J,"D CODE",OCXD0)=TEMP 89 ; 90 Q:OCXWARN 1 91 W:'$G(OCXAUTO) !,?5,"Generate Subroutine and Call documentation..." 92 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D CALL^OCXOCMPT(OCXD0) 93 ; 94 W:'$G(OCXAUTO) !!,?5,"Delete Old OCXOZ* Routines..." 95 S OCXRTEST=^%ZOSF("TEST"),OCXSAVE=^%ZOSF("SAVE"),OCXDEL=^%ZOSF("DEL") 96 F OCXRN=1:1:1290 D 97 .I '$G(OCXAUTO) W:($X>60) ! W:'(OCXRN#100) "." 98 .S X=$$RNAM(OCXRN) X OCXRTEST I X OCXDEL W:'$G(OCXAUTO) "!" 99 ; 100 W:'$G(OCXAUTO) !,?5,"File New OCXOZ* routines..." 101 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1 102 F S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 103 .I '$G(OCXAUTO) W:($X>60) ! W "." 104 .D FILE^OCXOCMP8(OCXD0) 105 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1 D FILE^OCXOCMP8(OCXD0) 106 ; 107 Q OCXWARN 108 ; 109 GETHDR(RNUM) ; 110 ; 111 N OCXREC,D0,EFC,OCXEFF,PIEC,TEXT 112 S OCXREC(1,0)=$$RNAM(RNUM)_" ;SLC/RJS,CLA - Order Check Scan ;"_$$NOW 113 S OCXREC(2,0)=$T(+2) 114 S OCXREC(3,0)=$T(+3) 115 S OCXREC(4,0)=" ;" 116 S OCXREC(5,0)=" ; ***************************************************************" 117 S OCXREC(6,0)=" ; ** Warning: This routine is automatically generated by the **" 118 S OCXREC(7,0)=" ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine **" 119 S OCXREC(8,0)=" ; ** will be lost the next time the rule compiler executes. **" 120 S OCXREC(9,0)=" ; ***************************************************************" 121 S OCXREC(10,0)=" ;" 122 I (RNUM=1) D 123 .S OCXREC(11,0)=" ; compiled code line length: "_OCXCLL 124 .S OCXREC(12,0)=" ; compiled routine size: "_OCXCRS 125 .S OCXREC(13,0)=" ; triggered rule ignore period: "_OCXTSPI 126 .S OCXREC(14,0)=" ;" 127 .S OCXREC(15,0)=" ; Program Execution Trace Mode: "_$S($G(OCXTRACE):" ON",1:"OFF") 128 .S OCXREC(16,0)=" ;" ; " ; Elapsed time logging: "_$S($G(OCXTLOG):" ON",1:"OFF") 129 .S OCXREC(17,0)=" ; Raw Data Logging: "_$S($G(OCXDLOG):(" ON Keep data for "_OCXDLOG_" day"_$S(OCXDLOG=1:"",1:"s")_" then purge."),1:"OFF") 130 .S OCXREC(18,0)=" ; Compiler mode: "_$S(($G(OCXAUTO)>1):"Queued",$G(OCXAUTO):" ON",1:"OFF") 131 .S OCXREC(19,0)=" ; Compiled by: "_$P($G(^VA(200,+$G(DUZ),0)),U,1)_" (DUZ="_(+$G(DUZ))_")" 132 .S OCXREC(20,0)=" Q" 133 .S OCXREC(21,0)=" ;" 134 ; 135 E D 136 .S OCXREC(11,0)=" Q" 137 .S OCXREC(12,0)=" ;" 138 ; 139 M ^TMP("OCXCMP",$J,"D CODE",RNUM)=OCXREC 140 Q 141 ; 142 RNAM(X) ; 143 N CHAR 144 S CHAR="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 145 Q "OCXOZ"_$E(CHAR,(X\36+1))_$E(CHAR,(X#36+1)) 146 ; 147 TODAY() N X,Y,%DT S X="T",%DT="" D ^%DT X ^DD("DD") Q Y 148 ; 149 NOW() N X,Y,%DT S X="N",%DT="T" D ^%DT X ^DD("DD") S:(Y["@") Y=$P(Y,"@",1)_" at "_$P(Y,"@",2,99) Q Y 150 ; 1 OCXOCMP6 ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Assemble Order Check Routines) ;1/05/04 14:33 2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221**;Dec 17,1997 3 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998 4 ; 5 EN() ; 6 ; 7 Q:$G(OCXWARN) 1 8 N OCXD0,OCXD1,OCXRN,OCXSCNT,OCXOFF 9 ; 10 S OCXLCNT=0 11 ; 12 W:'$G(OCXAUTO) !,?5,"Generate Extrinsic Function and Variables documentation..." 13 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D DOC^OCXOCMPT(OCXD0) 14 ; 15 K ^OCXS(860.3,"APGM") 16 S OCXD0=0 F S OCXD0=$O(^OCXS(860.3,OCXD0)) Q:'OCXD0 D 17 .K ^OCXS(860.3,OCXD0,"RTN") I '$G(OCXAUTO) W:($X>60) ! W "." 18 ; 19 K ^TMP("OCXCMP",$J,"D CODE") 20 ; 21 W:'$G(OCXAUTO) !,?5,"Assign Subroutines to Routines..." 22 S OCXRN=1,OCXD0=0 23 D GETHDR(1) 24 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 25 .N OCXLLAB,OCXSKIP,OCXEXF,OCXSUB,OCXSIZE,OCXFILE,OCXCCODE,OCXDCODE,OCXLAST 26 .I '$G(OCXAUTO) W:($X>60) ! W "." 27 .S OCXLLAB=^TMP("OCXCMP",$J,"LINE",OCXD0) 28 .S OCXSKIP=((OCXLLAB="UPDATE")!(OCXLLAB="LOG")) 29 .S OCXSIZE=$$SIZE^OCXOCMP8(OCXRN,OCXD0) 30 .S OCXLAST='$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) 31 .S OCXFILE=(OCXSIZE>OCXCRS)!(OCXLAST) S:OCXSKIP OCXFILE=0 32 .I OCXFILE D 33 ..K OCXEXF S OCXEXF="" 34 ..I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS") 35 ..S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) I 'OCXEXF(OCXSUB) D 36 ...S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB 37 ...S OCXSUB="" F S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB) D 38 ....S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB)) 39 ..S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) D 40 ...D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F") 41 ..D APPEND^OCXOCMP8(OCXRN,"$") 42 ..S OCXRN=OCXRN+1 D GETHDR(OCXRN) 43 ..; 44 .D APPEND^OCXOCMP8(OCXRN,OCXD0,"C",OCXLLAB) 45 .I ($E(OCXLLAB,1,2)="EL") D 46 ..S ^OCXS(860.3,"APGM",(+$E(OCXLLAB,3,$L(OCXLLAB))),(OCXLLAB_U_$$RNAM(OCXRN)))="" 47 .S $P(^TMP("OCXCMP",$J,"LINE",OCXD0),U,2)=$$RNAM(OCXRN) 48 .Q:'OCXLAST 49 .K OCXEXF S OCXEXF="" 50 .I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS") 51 .S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) I 'OCXEXF(OCXSUB) D 52 ..S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB 53 ..S OCXSUB="" F S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB) D 54 ...S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB)) 55 .S OCXSUB="" F S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB) D 56 ..D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F") 57 .D APPEND^OCXOCMP8(OCXRN,"$") 58 ; 59 W:'$G(OCXAUTO) !,?5,"Resolve Routine Line Tags..." 60 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 61 .I '$G(OCXAUTO) W:($X>60) ! W "." 62 .N TEXT,RTN,TEMP,ALT,LABL,OBJ,PIEC 63 .S RTN=$$RNAM(OCXD0) 64 .K TEMP M TEMP=^TMP("OCXCMP",$J,"D CODE",OCXD0) 65 .S OCXD1=0 F OCXOFF=0:1 S OCXD1=$O(TEMP(OCXD1)) Q:'OCXD1 D Q:OCXWARN 66 ..N TEXT,PIEC 67 ..S TEXT=TEMP(OCXD1,0) Q:'(TEXT["||") 68 ..; 69 ..F PIEC=2:2:$L(TEXT,"||") D Q:OCXWARN 70 ...S LABL=$P(TEXT,"||",PIEC) 71 ...I ($E(LABL,1,5)="LINE:") D I 1 72 ....S LABL=$G(^TMP("OCXCMP",$J,"LINE",+$P(LABL,":",2))) 73 ....I '$L(LABL) D WARN^OCXOCMPV("Line Label not found: "_$P(TEXT,"|",2),$P($T(+1)," ",1)) Q 74 ....S:($P(LABL,"^",2)=RTN) LABL=$P(LABL,"^",1) 75 ...; 76 ...E I ($E(LABL,1,5)="LNTAG") D I 1 77 ....N D0,CNT 78 ....S D0=OCXD1 F CNT=1:1 S D0=$O(TEMP(D0),-1) Q:$L($P(TEMP(D0,0)," ",1)) 79 ....S LABL=$P(TEMP(D0,0)," ",1) S:(LABL["(") LABL=$P(LABL,"(",1) 80 ....S LABL="(+$P($H,"","",2))_""<"_LABL_"+"_CNT_U_RTN_">""" 81 ...; 82 ...E D WARN^OCXOCMPV("Unknown Compiler directive: "_LABL,$P($T(+1)," ",1)) Q 83 ...; 84 ...S $P(TEXT,"||",PIEC)=LABL 85 ..; 86 ..F Q:'(TEXT["||") S TEXT=$P(TEXT,"||",1)_$P(TEXT,"||",2,999) 87 ..S TEMP(OCXD1,0)=TEXT 88 .; 89 .K ^TMP("OCXCMP",$J,"D CODE",OCXD0) 90 .M ^TMP("OCXCMP",$J,"D CODE",OCXD0)=TEMP 91 ; 92 Q:OCXWARN 1 93 W:'$G(OCXAUTO) !,?5,"Generate Subroutine and Call documentation..." 94 S OCXD0=0 F S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0 D CALL^OCXOCMPT(OCXD0) 95 ; 96 W:'$G(OCXAUTO) !!,?5,"Delete Old OCXOZ* Routines..." 97 S OCXRTEST=^%ZOSF("TEST"),OCXSAVE=^%ZOSF("SAVE"),OCXDEL=^%ZOSF("DEL") 98 F OCXRN=1:1:1290 D 99 .I '$G(OCXAUTO) W:($X>60) ! W:'(OCXRN#100) "." 100 .S X=$$RNAM(OCXRN) X OCXRTEST I X OCXDEL W:'$G(OCXAUTO) "!" 101 ; 102 W:'$G(OCXAUTO) !,?5,"File New OCXOZ* routines..." 103 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1 104 F S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0 D Q:OCXWARN 105 .I '$G(OCXAUTO) W:($X>60) ! W "." 106 .D FILE^OCXOCMP8(OCXD0) 107 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1 D FILE^OCXOCMP8(OCXD0) 108 ; 109 Q OCXWARN 110 ; 111 GETHDR(RNUM) ; 112 ; 113 N OCXREC,D0,EFC,OCXEFF,PIEC,TEXT 114 S OCXREC(1,0)=$$RNAM(RNUM)_" ;SLC/RJS,CLA - Order Check Scan ;"_$$NOW 115 S OCXREC(2,0)=$T(+2) 116 S OCXREC(3,0)=$T(+3) 117 S OCXREC(4,0)=" ;" 118 S OCXREC(5,0)=" ; ***************************************************************" 119 S OCXREC(6,0)=" ; ** Warning: This routine is automatically generated by the **" 120 S OCXREC(7,0)=" ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine **" 121 S OCXREC(8,0)=" ; ** will be lost the next time the rule compiler executes. **" 122 S OCXREC(9,0)=" ; ***************************************************************" 123 S OCXREC(10,0)=" ;" 124 I (RNUM=1) D 125 .S OCXREC(11,0)=" ; compiled code line length: "_OCXCLL 126 .S OCXREC(12,0)=" ; compiled routine size: "_OCXCRS 127 .S OCXREC(13,0)=" ; triggered rule ignore period: "_OCXTSPI 128 .S OCXREC(14,0)=" ;" 129 .S OCXREC(15,0)=" ; Program Execution Trace Mode: "_$S($G(OCXTRACE):" ON",1:"OFF") 130 .S OCXREC(16,0)=" ;" ; " ; Elapsed time logging: "_$S($G(OCXTLOG):" ON",1:"OFF") 131 .S OCXREC(17,0)=" ; Raw Data Logging: "_$S($G(OCXDLOG):(" ON Keep data for "_OCXDLOG_" day"_$S(OCXDLOG=1:"",1:"s")_" then purge."),1:"OFF") 132 .S OCXREC(18,0)=" ; Compiler mode: "_$S(($G(OCXAUTO)>1):"Queued",$G(OCXAUTO):" ON",1:"OFF") 133 .S OCXREC(19,0)=" ; Compiled by: "_$P($G(^VA(200,+$G(DUZ),0)),U,1)_" (DUZ="_(+$G(DUZ))_")" 134 .S OCXREC(20,0)=" Q" 135 .S OCXREC(21,0)=" ;" 136 ; 137 E D 138 .S OCXREC(11,0)=" Q" 139 .S OCXREC(12,0)=" ;" 140 ; 141 M ^TMP("OCXCMP",$J,"D CODE",RNUM)=OCXREC 142 Q 143 ; 144 RNAM(X) ; 145 N CHAR 146 S CHAR="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 147 Q "OCXOZ"_$E(CHAR,(X\36+1))_$E(CHAR,(X#36+1)) 148 ; 149 TODAY() N X,Y,%DT S X="T",%DT="" D ^%DT X ^DD("DD") Q Y 150 ; 151 NOW() N X,Y,%DT S X="N",%DT="T" D ^%DT X ^DD("DD") S:(Y["@") Y=$P(Y,"@",1)_" at "_$P(Y,"@",2,99) Q Y 152 ;
Note:
See TracChangeset
for help on using the changeset viewer.