1 | XMJMORX1 ;ISC-SF/GMB-^XMJMORX (cont.) ;09/16/2002 11:16
|
---|
2 | ;;8.0;MailMan;**5**;Jun 28, 2002
|
---|
3 | ;DELMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
4 | XDEL ;
|
---|
5 | Q:'XMK
|
---|
6 | K XMERR,^TMP("XMERR",$J)
|
---|
7 | D DEL^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
|
---|
8 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
9 | I XMKALL,$G(XMTYPE)'["N" D Q
|
---|
10 | . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
|
---|
11 | K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
|
---|
12 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
13 | Q
|
---|
14 | ;FLTRMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
15 | XFLTR ;
|
---|
16 | N XMKN,XMKTO,XMKNTO
|
---|
17 | S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
|
---|
18 | D FLTR^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
|
---|
19 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
20 | I XMKALL D Q
|
---|
21 | . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
22 | Q:XMKN=XMKNTO
|
---|
23 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
24 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
25 | Q
|
---|
26 | ;NTOGLMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
27 | XNTOGL ;
|
---|
28 | N XMKN,XMKTO,XMKNTO
|
---|
29 | S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
|
---|
30 | D NTOGL^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
|
---|
31 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
32 | I XMKALL D Q
|
---|
33 | . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
34 | Q:XMKN=XMKNTO
|
---|
35 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
36 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
37 | Q
|
---|
38 | ;SAVEMSG(XMDUZ,XMK,XMKTO,XMKNTO,XMKZ,XMZ,XMCNT)
|
---|
39 | XSAVE ;
|
---|
40 | Q:XMK=XMKTO
|
---|
41 | D MOVE^XMXMSGS2(XMDUZ,XMK,XMZ,XMKTO,.XMCNT)
|
---|
42 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
43 | I XMKALL D Q
|
---|
44 | . S ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
45 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
46 | ;K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
47 | Q
|
---|
48 | ;TERMMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
49 | XTERM ;
|
---|
50 | Q:'XMK
|
---|
51 | K XMERR,^TMP("XMERR",$J)
|
---|
52 | D TERM^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
|
---|
53 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
54 | I XMKALL,$G(XMTYPE)'["N" D Q
|
---|
55 | . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
|
---|
56 | K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
|
---|
57 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
58 | Q
|
---|
59 | LISTSEL(XMZLIST) ;
|
---|
60 | N XMKZ,J,XMZ
|
---|
61 | S (XMKZ,J)=0
|
---|
62 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
63 | . S XMZ=$P(^TMP("XM",$J,"MSG",XMKZ),U,3)
|
---|
64 | . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
65 | . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
66 | . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
67 | Q
|
---|
68 | LIST(XMWHICH,XMZLIST) ;
|
---|
69 | N I,J,XMRANGE,XMKZ,XMZ
|
---|
70 | S J=0
|
---|
71 | F I=1:1:$L(XMWHICH,",") D
|
---|
72 | . S XMRANGE=$P(XMWHICH,",",I)
|
---|
73 | . Q:'XMRANGE
|
---|
74 | . F XMKZ=$P(XMRANGE,"-",1):1:$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE) D
|
---|
75 | . . S XMZ=$P($G(^TMP("XM",$J,"MSG",XMKZ)),U,3) Q:'XMZ
|
---|
76 | . . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
77 | . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
78 | . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
79 | Q
|
---|
80 | ACTWHICH(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMPROMPT,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO)
|
---|
81 | N XMWHICH
|
---|
82 | D WHICH(XMPROMPT,XMCONFRM,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
83 | D ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMWHICH,XMRTN,XMSUM,.XMMSG)
|
---|
84 | Q
|
---|
85 | WHICH(XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
|
---|
86 | N DIR,Y,XMHI,XMLO
|
---|
87 | S XMLO=$O(^TMP("XM",$J,"MSG",""))
|
---|
88 | S XMHI=$O(^TMP("XM",$J,"MSG",""),-1)
|
---|
89 | S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
|
---|
90 | S DIR("??")="XM-U-M-CHOOSE RANGE"
|
---|
91 | S DIR(0)="LC^"_XMLO_":"_XMHI
|
---|
92 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
93 | S XMWHICH=Y
|
---|
94 | I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT)
|
---|
95 | Q
|
---|
96 | ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMKZA,XMRTN,XMSUM,XMMSG) ;,XMKTO)
|
---|
97 | ; XMKZA Array of msg numbers DEL("1-3,7,11-15")
|
---|
98 | ; XMKZL List of msg numbers 1-3,7,11-15
|
---|
99 | ; (It is OK if the list ends with a comma)
|
---|
100 | ; XMKZR Range of msg numbers 1-3
|
---|
101 | ; XMKZ1 First number in range 1
|
---|
102 | ; XMKZN Last number in range 3
|
---|
103 | N XMKZ,XMREC,XMKZL,XMKZR,XMI,XMKZ1,XMKZN,XMZ,XMCNT,XMPIECES
|
---|
104 | S XMCNT=0
|
---|
105 | ; is this an array or a variable?
|
---|
106 | I $G(XMKZA)]"",$O(XMKZA(""))="" S XMKZA(XMKZA)=""
|
---|
107 | S XMKZL=""
|
---|
108 | F S XMKZL=$O(XMKZA(XMKZL)) Q:XMKZL="" D
|
---|
109 | . S XMPIECES=$L(XMKZL,",")
|
---|
110 | . S:'$P(XMKZL,",",XMPIECES) XMPIECES=XMPIECES-1
|
---|
111 | . F XMI=1:1:XMPIECES D
|
---|
112 | . . S XMKZR=$P(XMKZL,",",XMI)
|
---|
113 | . . I XMKZR["-" D Q
|
---|
114 | . . . ; deal with a range of msg #s
|
---|
115 | . . . S XMKZ1=$P(XMKZR,"-",1)
|
---|
116 | . . . S XMKZN=$P(XMKZR,"-",2)
|
---|
117 | . . . S XMKZ=XMKZ1-.1
|
---|
118 | . . . I XMTMP D Q
|
---|
119 | . . . . F S XMKZ=$O(^TMP("XM",$J,"MSG",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
|
---|
120 | . . . . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
121 | . . . . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
122 | . . . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
123 | . . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
124 | . . . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
|
---|
125 | . . . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
|
---|
126 | . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
127 | . . S XMKZ=XMKZR
|
---|
128 | . . I XMTMP D Q
|
---|
129 | . . . S XMREC=$G(^TMP("XM",$J,"MSG",XMKZ))
|
---|
130 | . . . I XMREC="" S XMZ=0 Q
|
---|
131 | . . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
132 | . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
133 | . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
134 | . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
|
---|
135 | . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
136 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
137 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
138 | Q
|
---|
139 | SELMSG(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO,XMWHEN)
|
---|
140 | I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT) Q:XMABORT
|
---|
141 | N XMCNT,XMKZ,XMREC,XMZ
|
---|
142 | S (XMCNT,XMKZ)=0
|
---|
143 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
144 | . I XMTMP D Q
|
---|
145 | . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
146 | . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
147 | . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
148 | . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
149 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
150 | . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
151 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
152 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
153 | Q
|
---|