source: WorldVistAEHR/trunk/r/MAILMAN-XM/XMJMF2.m@ 1800

Last change on this file since 1800 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 6.8 KB
Line 
1XMJMF2 ;ISC-SF/GMB-XMJMF (cont.) ;07/12/2002 10:11
2 ;;8.0;MailMan;;Jun 28, 2002
3B ; Search one basket
4 N XMDIC,XMFBSKT
5 S XMDIC("B")=$G(XMFBSKTN,$$EZBLD^DIALOG(37005)) ; IN
6 D SELBSKT^XMJBU(XMDUZ,34439,"",.XMDIC,.XMFBSKT,.XMFBSKTN) I XMFBSKT=U S XMABORT=1 Q ; Select basket to search:
7 S XMF("BSKT")=XMFBSKT
8 Q
9BA ; Search all baskets
10 S XMF("BSKT")="*"
11 Q
12DA ; Message sent on or after date
13 N DIR,Y,X
14 S DIR(0)="DO^:"_$G(XMF("TDATE"),DT)_":EX"
15 S DIR("A")=$$EZBLD^DIALOG(34444) ; Message sent on or after
16 D BLD^DIALOG(34444.1,"","","DIR(""?"")")
17 ; Enter a date. It must include day, month, and year.
18 S:$D(XMF("FDATE")) DIR("B")=XMFFDTX
19 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
20 I X="@" D Q
21 . I XMK="!" D NODELETE Q
22 . K XMF("FDATE")
23 Q:Y=""
24 S XMF("FDATE")=Y
25 S XMFFDTX=$$MMDT^XMXUTIL1(XMF("FDATE"))
26 Q
27NODELETE ;This search requires a date range.
28 ;You may change the dates, but you may not delete them.
29 N XMTEXT
30 D BLD^DIALOG(34444.5,"","","XMTEXT","F")
31 D MSG^DIALOG("WE","","","","XMTEXT")
32 D WAIT^XMXUTIL
33 Q
34DB ; Message sent on or before date
35 N DIR,Y,X
36 S DIR(0)="DO^"_$G(XMF("FDATE"))_":DT:EX"
37 S DIR("A")=$$EZBLD^DIALOG(34445) ; Message sent on or before
38 D BLD^DIALOG(34444.1,"","","DIR(""?"")")
39 ; Enter a date. It must include day, month, and year.
40 S:$D(XMF("TDATE")) DIR("B")=XMFTDTX
41 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
42 I X="@" D Q
43 . I XMK="!" D NODELETE Q
44 . K XMF("TDATE")
45 Q:Y=""
46 S XMF("TDATE")=Y
47 S XMFTDTX=$$MMDT^XMXUTIL1(XMF("TDATE"))
48 Q
49F ; Message from
50 D GETPERS(XMDUZ,.XMF,"FROM",.XMFFRN,34440,34441,.XMABORT)
51 Q
52G ; Go search
53 W !,$$EZBLD^DIALOG(34417) ; Searching...
54 I XMK="!" D FIND^XMJMFC(XMDUZ,.XMF,1) Q
55 I $G(XMF("BSKT"))="*" D FINDALL^XMJMFB(XMDUZ,.XMF) Q
56 D FIND1^XMJMFB(XMDUZ,.XMF,1)
57 Q
58LM ; Message has this many lines or more
59 N DIR,Y,X
60 S DIR(0)="FO^1:12^K:'$$LMOK^XMJMF2(X) X"
61 S DIR("A")=$$EZBLD^DIALOG(34449) ; Lines of text, minimum
62 D BLD^DIALOG(34449.1,"","","DIR(""?"")")
63 ; Enter a number from 100 to 100,000.
64 ; We will find all messages with that many lines of text or more.
65 S:$D(XMF("FLINE")) DIR("B")=XMF("FLINE")
66 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
67 I X="@" K XMF("FLINE") Q
68 I Y S XMF("FLINE")=Y
69 Q
70LMOK(X) ;
71 I X="@" Q 1
72 I X'?1N.N Q 0
73 I $G(XMF("TLINE")),X>XMF("TLINE") Q 0
74 I X<100 Q 0
75 I X>100000 Q 0
76 Q 1
77LX ; Message has this many lines or less
78 N DIR,Y,X
79 S DIR(0)="FO^1:12^K:'$$LXOK^XMJMF2(X) X"
80 S DIR("A")=$$EZBLD^DIALOG(34450) ; Lines of text, maximum
81 D BLD^DIALOG(34450.1,"","","DIR(""?"")")
82 ; Enter a number from 100 to 100,000.
83 ; We will find all messages with that many lines of text or less.
84 S:$D(XMF("TLINE")) DIR("B")=XMF("TLINE")
85 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
86 I X="@" K XMF("TLINE") Q
87 I Y S XMF("TLINE")=Y
88 Q
89LXOK(X) ;
90 I X="@" Q 1
91 I X'?1N.N Q 0
92 I $G(XMF("FLINE")),X<XMF("FLINE") Q 0
93 I X<100 Q 0
94 I X>100000 Q 0
95 Q 1
96Q ; Quit
97 S XMABORT=1
98 Q
99R ; Response from
100 D GETPERS(XMDUZ,.XMF,"RFROM",.XMFRFRN,34440.1,34441.1,.XMABORT)
101 Q
102S ; Subject contains
103 N DIR,Y,X
104 S DIR(0)="FO^3:30"
105 S DIR("A")=$$EZBLD^DIALOG(34438) ; Subject contains
106 S:$D(XMF("SUBJ")) DIR("B")=XMF("SUBJ")
107 D BLD^DIALOG(34438.1,"","","DIR(""?"")")
108 ;Enter the string that the subject contains.
109 ;It may be from 3 to 30 characters.
110 ;The search is NOT case-sensitive.
111 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
112 I X="@" K XMF("SUBJ") Q
113 Q:Y=""
114 S XMF("SUBJ")=Y
115 Q
116T ; Message to
117 D GETPERS(XMDUZ,.XMF,"TO",$G(XMF("TO")),34440.2,34441.2,.XMABORT)
118 Q
119X ; Message contains
120 N DIR,Y,X
121 S DIR(0)="FO^3:30"
122 S DIR("A")=$$EZBLD^DIALOG(34446.1) ; Message contains
123 S:$D(XMF("TEXT")) DIR("B")=XMF("TEXT")
124 D BLD^DIALOG(34446.4,"","","DIR(""?"")")
125 ;Enter the string to search for. It may be from 3 to 30 characters.
126 ;Note that if the string you are searching for is not all on one line
127 ;in the message, the search will not be able to find it.
128 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
129 I X="@" K XMF("TEXT") Q
130 Q:Y=""
131 S XMF("TEXT")=Y
132 K DIR,X,Y
133 S DIR(0)="Y"
134 S DIR("A")=$$EZBLD^DIALOG(34447) ; Should the search be case-sensitive
135 S DIR("B")=$$EZBLD^DIALOG($S($G(XMF("TEXT","C"),1):39054,1:39053)) ; Yes/No
136 D BLD^DIALOG(34447.1,"","","DIR(""?"")")
137 ;Your answer determines whether case (upper/lower) matters in the search.
138 ;It also affects the speed of the search.
139 ;A case-sensitive search (one in which case matters) is faster.
140 ;A case-insensitive search (one in which case does not matter) may find
141 ;more matches, but will be slower.
142 ;Answer YES for a faster search, when case matters.
143 ;Answer NO for a slower search, when case does not matter.
144 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
145 S XMF("TEXT","C")=Y
146 K DIR,X,Y N I
147 S DIR("A")=$$EZBLD^DIALOG(34448) ; Where should we search
148 ; x.1:Message only / x.2:Message and Responses / x.3:Responses only
149 S DIR(0)=""
150 F I=1,2,3 S DIR(0)=DIR(0)_";"_I_":"_$$EZBLD^DIALOG(34448+(I/10))
151 S DIR(0)="S^"_$E(DIR(0),2,999)
152 ; x.1:Message only / x.2:Message and Responses / x.3:Responses only
153 S DIR("B")=$$EZBLD^DIALOG(34448+($G(XMF("TEXT","L"),1)/10))
154 D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
155 S XMF("TEXT","L")=Y
156 Q
157GETPERS(XMDUZ,XMF,XMWHICH,XMNAME,XMPROMPT,XMHELP,XMABORT) ;
158 N DIR,Y,X,XMOK
159 S DIR(0)="FO^1:30"
160 S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; Message from / Message to / Response from
161 S DIR("?")="^D HGETPERS^XMJMF2"
162 I $D(XMF(XMWHICH)) D
163 . S DIR("B")=XMNAME
164 . I XMNAME'["@" S DIR(0)="FrO^1:30" ; ('r' means no 'replace...with...' prompt)
165 . Q:XMWHICH'="TO"
166 . Q:"^G.^g.^"'[(U_$E(XMNAME,1,2)_U)
167 . N XMPRIVAT
168 . S XMPRIVAT=$$EZBLD^DIALOG(39135) ; " [Private Mail Group]"
169 . I XMNAME[XMPRIVAT S DIR("B")=$P(XMNAME,XMPRIVAT)
170 F D Q:XMABORT!XMOK
171 . S XMOK=1
172 . D ^DIR I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
173 . I X="@" K XMF(XMWHICH),XMNAME Q
174 . I Y="" Q
175 . I X["@" S (XMNAME,XMF(XMWHICH))=$$UP^XLFSTR(Y) Q
176 . I XMWHICH="TO" D Q
177 . . N XMINSTR
178 . . K XMNAME
179 . . S XMINSTR("ADDR FLAGS")="X" ; don't create ^TMP("XMY" globals
180 . . D ADDR^XMXADDR(XMDUZ,X,.XMINSTR,"",.XMNAME)
181 . . I '$D(XMNAME) S XMOK=0 Q
182 . . S XMF(XMWHICH)=XMNAME
183 . N DIC,X
184 . S X=Y
185 . S DIC="^VA(200,",DIC(0)="MNEQ"
186 . D ^DIC I $D(DUOUT)!$D(DTOUT) S XMABORT=1 Q
187 . I Y=-1 S XMOK=0 Q
188 . S XMF(XMWHICH)=+Y
189 . S XMNAME=$$NAME^XMXUTIL(+Y)
190 Q
191HGETPERS ;
192 N XMTEXT
193 D BLD^DIALOG(XMHELP,"","","XMTEXT","F")
194 ;Enter the name of the person who sent the message/response.
195 ; - or -
196 ;Enter the message addressee. It may be a person, group, device, or server.
197 I XMWHICH'="TO" D BLD^DIALOG(34441.3,"","","XMTEXT","F")
198 ;If it's from a local VistA package/fake sender, just put '@' after
199 ;the sender, like ACCOUNTS RECEIVABLE@
200 D BLD^DIALOG(34442,"","","XMTEXT","F")
201 ;For remote users, enter name@, name@domain, or @domain.
202 ;'Name' must be found somewhere in the user's name.
203 ;'Domain' must be found somewhere in the user's domain.
204 ;The more characters you provide, the narrower the search will be.
205 ;MailMan may capitalize some names to facilitate filtering.
206 D MSG^DIALOG("WH","",IOM,"","XMTEXT")
207 Q
Note: See TracBrowser for help on using the repository browser.