1 | XMJMFA ;ISC-SF/GMB-Find message: Subject starts with ;04/18/2002 07:47
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Search for message subjects that partial match input.
|
---|
4 | ; Replaces ^XMA03 (ISC-WASH/CAP/THM)
|
---|
5 | FIND(XMDUZ,XMSTRING,XMWAIT) ;
|
---|
6 | N XMKZ,XMCNT,XMABORT,XMLEN,XMFIRST,XMPAGE,XMDETAIL,XMPMAX,XMMORE,XMFLAGS,XMSCREEN,XMFROM,XMZOOM,XMCD,XMOPT,XMOX
|
---|
7 | K ^TMP("XM",$J,"MSG"),^TMP("XM",$J,".")
|
---|
8 | S (XMKZ,XMZ,XMPAGE,XMCNT,XMZOOM,XMCD,XMABORT)=0,(XMDETAIL,XMMORE)=1,XMPMAX=IOSL-3
|
---|
9 | D SRCHINIT(XMDUZ,.XMFLAGS,.XMSCREEN)
|
---|
10 | D INIT(XMDUZ,XMDETAIL,.XMLEN)
|
---|
11 | D SETOPT^XMJMLR1(XMDUZ,0,.XMOPT,.XMOX)
|
---|
12 | F D Q:XMABORT
|
---|
13 | . I XMCD S XMCD=0,XMDETAIL='XMDETAIL D INIT(XMDUZ,XMDETAIL,.XMLEN)
|
---|
14 | . D DISPLAY(XMDUZ,XMSTRING,XMFLAGS,XMSCREEN,.XMFROM,XMDETAIL,.XMKZ,.XMCNT,.XMFIRST,.XMPAGE,.XMMORE,.XMLEN,XMZOOM,XMPMAX)
|
---|
15 | . I XMCNT=0 S XMABORT=1 Q
|
---|
16 | . D CHOOSE^XMJMLN(XMDUZ,1,0,.XMKZ,.XMFIRST,.XMPAGE,XMMORE,.XMLEN,.XMZOOM,.XMOPT,.XMOX,"READMSG^XMJMFA",.XMABORT)
|
---|
17 | . S:'$D(^TMP("XM",$J,"MSG")) XMABORT=1
|
---|
18 | I XMCNT=0 D
|
---|
19 | . W $$EZBLD^DIALOG(34401) ; No matches found.
|
---|
20 | . Q:'$G(XMWAIT)
|
---|
21 | . W ! D WAIT^XMXUTIL
|
---|
22 | K ^TMP("XM",$J,"MSG"),^TMP("XM",$J,".")
|
---|
23 | Q
|
---|
24 | SRCHINIT(XMDUZ,XMFLAGS,XMSCREEN) ;
|
---|
25 | S XMSCREEN="",XMFLAGS=$S(XMV("ORDER")=-1:"B",1:"")
|
---|
26 | I XMDUZ=.5 S XMFLAGS=XMFLAGS_"U" Q ; Ignore file screen
|
---|
27 | S XMSCREEN=XMSCREEN_"N X S X=^(0)"
|
---|
28 | N XMMIN
|
---|
29 | S XMMIN=$P(^XMB(3.7,XMDUZ,0),U,7)
|
---|
30 | ; If minimum date, don't choose lower date unless already in user's bskt
|
---|
31 | I XMMIN>0 S XMSCREEN=" I ^(.6)'<"_XMMIN_"!$D(^XMB(3.7,""M"",Y,XMDUZ))"
|
---|
32 | ; Msg must not be SPOOL, msg must not be a reply.
|
---|
33 | S XMSCREEN=XMSCREEN_" I $P(X,U,7)'=""S"",$S($P(X,U,8):0,$P(X,U)?1""R"".N:0,1:1)"
|
---|
34 | Q
|
---|
35 | INIT(XMDUZ,XMDETAIL,XMLEN) ;
|
---|
36 | S XMLEN("BSKT")=10
|
---|
37 | S XMLEN("XMKZ")=3
|
---|
38 | D INIT^XMJML(XMDUZ,"","",XMDETAIL,.XMLEN)
|
---|
39 | Q
|
---|
40 | DISPLAY(XMDUZ,XMSTRING,XMFLAGS,XMSCREEN,XMFROM,XMDETAIL,XMKZ,XMCNT,XMFIRST,XMPAGE,XMMORE,XMLEN,XMZOOM,XMPMAX) ;
|
---|
41 | N XMREC
|
---|
42 | S XMFIRST(XMPAGE)=XMKZ
|
---|
43 | D HEADER^XMJML(XMDETAIL,.XMLEN,$$EZBLD^DIALOG(34403)) ; All Messages Search
|
---|
44 | I XMZOOM D Q
|
---|
45 | . F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:XMKZ="" D Q:$Y>XMPMAX
|
---|
46 | . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
47 | . . D LISTMSG^XMJML($P(XMREC,U,1),$P(XMREC,U,2),XMKZ,$P(XMREC,U,3),XMDETAIL,.XMLEN)
|
---|
48 | F S XMKZ=$O(^TMP("XM",$J,"MSG",XMKZ)) Q:XMKZ="" D Q:$Y>XMPMAX
|
---|
49 | . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
50 | . D LISTMSG^XMJML($P(XMREC,U,1),$P(XMREC,U,2),XMKZ,$P(XMREC,U,3),XMDETAIL,.XMLEN)
|
---|
51 | Q:$Y>XMPMAX!'XMMORE
|
---|
52 | ; File screen ^DD(3.9,0,"SCR") insists that user be author or recipient.
|
---|
53 | ; If FLAGS["U", then file screen is ignored.
|
---|
54 | D LIST^DIC(3.9,"","@",XMFLAGS,XMPMAX-$Y+1,.XMFROM,XMSTRING,"",XMSCREEN)
|
---|
55 | S:$P(^TMP("DILIST",$J,0),U,3)=0 XMMORE=0
|
---|
56 | D LISTMSG(XMDUZ,XMDETAIL,.XMCNT,.XMLEN)
|
---|
57 | S XMKZ=XMCNT
|
---|
58 | K ^TMP("DILIST",$J)
|
---|
59 | W:'XMMORE !,$$EZBLD^DIALOG(34402) ; Search finished.
|
---|
60 | Q
|
---|
61 | LISTMSG(XMDUZ,XMDETAIL,XMCNT,XMLEN) ; Check and List
|
---|
62 | N XMK,XMKN,XMZ,I
|
---|
63 | S I=""
|
---|
64 | F S I=$O(^TMP("DILIST",$J,2,I),XMV("ORDER")) Q:I'>0 D
|
---|
65 | . S XMCNT=XMCNT+1
|
---|
66 | . S XMZ=^TMP("DILIST",$J,2,I)
|
---|
67 | . S XMK=+$O(^XMB(3.7,"M",XMZ,XMDUZ,0))
|
---|
68 | . S XMKN=$S(XMK:$P(^XMB(3.7,XMDUZ,2,XMK,0),U),1:$$EZBLD^DIALOG(34014)) ; * N/A *
|
---|
69 | . I XMK,'$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITM^XMUT4A(XMDUZ,XMK,XMZ)
|
---|
70 | . D LISTMSG^XMJML(XMK,XMKN,XMCNT,XMZ,XMDETAIL,.XMLEN)
|
---|
71 | . S ^TMP("XM",$J,"MSG",XMCNT)=XMK_U_XMKN_U_XMZ
|
---|
72 | Q
|
---|
73 | READMSG ; (XMDUZ,XMKZ,XMREC) <- needed!
|
---|
74 | N XMK,XMKN,XMZ,XMRDR ; $G(XMRDR) is checked in READMSG^XMJBM
|
---|
75 | S XMK=$P(XMREC,U,1),XMKN=$P(XMREC,U,2),XMZ=$P(XMREC,U,3)
|
---|
76 | I XMDUZ=.5,'XMK,'$$ACCESS^XMXSEC(XMDUZ,XMZ,$G(^XMB(3.9,XMZ,0))) D Q
|
---|
77 | . D SHOW^XMJERR
|
---|
78 | . D WAIT^XMXUTIL
|
---|
79 | D READMSG^XMJBM(XMDUZ,XMK,XMKN,XMZ)
|
---|
80 | Q:$D(^XMB(3.7,"M",XMZ,XMDUZ,XMK))
|
---|
81 | S XMK=+$O(^XMB(3.7,"M",XMZ,XMDUZ,0))
|
---|
82 | S ^TMP("XM",$J,"MSG",XMKZ)=XMK_U_$S(XMK=0:$$EZBLD^DIALOG(34014),1:$P(^XMB(3.7,XMDUZ,2,XMK,0),U))_U_XMZ ; * N/A *
|
---|
83 | Q
|
---|