Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XMJMORX1

XMJMORX1.m

Go to the documentation of this file.
  1. XMJMORX1 ;ISC-SF/GMB-^XMJMORX (cont.) ;09/16/2002 11:16
  1. ;;8.0;MailMan;**5**;Jun 28, 2002
  1. ;DELMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
  1. XDEL ;
  1. Q:'XMK
  1. K XMERR,^TMP("XMERR",$J)
  1. D DEL^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
  1. I $D(XMERR) D ZSHOW^XMJERR Q
  1. I XMKALL,$G(XMTYPE)'["N" D Q
  1. . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
  1. K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
  1. K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
  1. Q
  1. ;FLTRMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
  1. XFLTR ;
  1. N XMKN,XMKTO,XMKNTO
  1. S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
  1. D FLTR^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
  1. I $D(XMERR) D ZSHOW^XMJERR Q
  1. I XMKALL D Q
  1. . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
  1. Q:XMKN=XMKNTO
  1. K ^TMP("XM",$J,"MSG",XMKZ)
  1. K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
  1. Q
  1. ;NTOGLMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
  1. XNTOGL ;
  1. N XMKN,XMKTO,XMKNTO
  1. S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
  1. D NTOGL^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
  1. I $D(XMERR) D ZSHOW^XMJERR Q
  1. I XMKALL D Q
  1. . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
  1. Q:XMKN=XMKNTO
  1. K ^TMP("XM",$J,"MSG",XMKZ)
  1. K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
  1. Q
  1. ;SAVEMSG(XMDUZ,XMK,XMKTO,XMKNTO,XMKZ,XMZ,XMCNT)
  1. XSAVE ;
  1. Q:XMK=XMKTO
  1. D MOVE^XMXMSGS2(XMDUZ,XMK,XMZ,XMKTO,.XMCNT)
  1. I $D(XMERR) D ZSHOW^XMJERR Q
  1. I XMKALL D Q
  1. . S ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
  1. K ^TMP("XM",$J,"MSG",XMKZ)
  1. ;K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
  1. Q
  1. ;TERMMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
  1. XTERM ;
  1. Q:'XMK
  1. K XMERR,^TMP("XMERR",$J)
  1. D TERM^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
  1. I $D(XMERR) D ZSHOW^XMJERR Q
  1. I XMKALL,$G(XMTYPE)'["N" D Q
  1. . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
  1. K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
  1. K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
  1. Q
  1. LISTSEL(XMZLIST) ;
  1. N XMKZ,J,XMZ
  1. S (XMKZ,J)=0
  1. F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
  1. . S XMZ=$P(^TMP("XM",$J,"MSG",XMKZ),U,3)
  1. . I J=0 S J=1,XMZLIST(1)=XMZ Q
  1. . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
  1. . S XMZLIST(J)=XMZLIST(J)_","_XMZ
  1. Q
  1. LIST(XMWHICH,XMZLIST) ;
  1. N I,J,XMRANGE,XMKZ,XMZ
  1. S J=0
  1. F I=1:1:$L(XMWHICH,",") D
  1. . S XMRANGE=$P(XMWHICH,",",I)
  1. . Q:'XMRANGE
  1. . F XMKZ=$P(XMRANGE,"-",1):1:$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE) D
  1. . . S XMZ=$P($G(^TMP("XM",$J,"MSG",XMKZ)),U,3) Q:'XMZ
  1. . . I J=0 S J=1,XMZLIST(1)=XMZ Q
  1. . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
  1. . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
  1. Q
  1. ACTWHICH(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMPROMPT,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO)
  1. N XMWHICH
  1. D WHICH(XMPROMPT,XMCONFRM,.XMWHICH,.XMABORT) Q:XMABORT
  1. D ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMWHICH,XMRTN,XMSUM,.XMMSG)
  1. Q
  1. WHICH(XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
  1. N DIR,Y,XMHI,XMLO
  1. S XMLO=$O(^TMP("XM",$J,"MSG",""))
  1. S XMHI=$O(^TMP("XM",$J,"MSG",""),-1)
  1. S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
  1. S DIR("??")="XM-U-M-CHOOSE RANGE"
  1. S DIR(0)="LC^"_XMLO_":"_XMHI
  1. D ^DIR I $D(DIRUT) S XMABORT=1 Q
  1. S XMWHICH=Y
  1. I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT)
  1. Q
  1. ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMKZA,XMRTN,XMSUM,XMMSG) ;,XMKTO)
  1. ; XMKZA Array of msg numbers DEL("1-3,7,11-15")
  1. ; XMKZL List of msg numbers 1-3,7,11-15
  1. ; (It is OK if the list ends with a comma)
  1. ; XMKZR Range of msg numbers 1-3
  1. ; XMKZ1 First number in range 1
  1. ; XMKZN Last number in range 3
  1. N XMKZ,XMREC,XMKZL,XMKZR,XMI,XMKZ1,XMKZN,XMZ,XMCNT,XMPIECES
  1. S XMCNT=0
  1. ; is this an array or a variable?
  1. I $G(XMKZA)]"",$O(XMKZA(""))="" S XMKZA(XMKZA)=""
  1. S XMKZL=""
  1. F S XMKZL=$O(XMKZA(XMKZL)) Q:XMKZL="" D
  1. . S XMPIECES=$L(XMKZL,",")
  1. . S:'$P(XMKZL,",",XMPIECES) XMPIECES=XMPIECES-1
  1. . F XMI=1:1:XMPIECES D
  1. . . S XMKZR=$P(XMKZL,",",XMI)
  1. . . I XMKZR["-" D Q
  1. . . . ; deal with a range of msg #s
  1. . . . S XMKZ1=$P(XMKZR,"-",1)
  1. . . . S XMKZN=$P(XMKZR,"-",2)
  1. . . . S XMKZ=XMKZ1-.1
  1. . . . I XMTMP D Q
  1. . . . . F S XMKZ=$O(^TMP("XM",$J,"MSG",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
  1. . . . . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
  1. . . . . . S:XMKALL XMK=$P(XMREC,U,1)
  1. . . . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
  1. . . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. . . . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
  1. . . . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
  1. . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. . . S XMKZ=XMKZR
  1. . . I XMTMP D Q
  1. . . . S XMREC=$G(^TMP("XM",$J,"MSG",XMKZ))
  1. . . . I XMREC="" S XMZ=0 Q
  1. . . . S:XMKALL XMK=$P(XMREC,U,1)
  1. . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
  1. . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
  1. . . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
  1. D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
  1. Q
  1. SELMSG(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO,XMWHEN)
  1. I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT) Q:XMABORT
  1. N XMCNT,XMKZ,XMREC,XMZ
  1. S (XMCNT,XMKZ)=0
  1. F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
  1. . I XMTMP D Q
  1. . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
  1. . . S:XMKALL XMK=$P(XMREC,U,1)
  1. . . S XMZ=$P(XMREC,U,3) Q:'XMZ
  1. . . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
  1. . D @XMRTN ;(XMDUZ,XMK,XMZ)
  1. S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
  1. D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
  1. Q