vhMAILLNK ;Mail (links) [ 11/22/2003 4:10 PM ] ; ; Tonen van de links LINK(MailId,Link) New %C,%R,%P,I,J,R,zb,MailTyp,Type,Value,Aktie,Optie,NameSpace,Count,LinkRef,FUserId,FromUci,ToUci,Length Set R=^vhMAIL("D",MailId),FUserId=$P(R,D,6),FromUci=$ZU(5) Set (ToUci,NameSpace)=$P(R,D,10) Set:NameSpace="" NameSpace=$ZU(5) Set Count=0,Link=$G(Link),Length="" For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"R",I)) Do .Set R=$$FETCH(MailId,I) .If $L(R) Do ..Set $E(Link,I)=$J($E(Link,I),1),Link=$TR(Link," ",0) ..If Link[1 Set R=$P(" \*",D,$E(Link,I)+1)_R ..Set R=I_"`"_R,Count=Count+1,Link(Count)=R ..For J=1:1:3 Set:$L($P(R,D,J))>$P(Length,D,J) $P(Length,D,J)=$L($P(R,D,J)) Set:$P(Length,D,2)>(80-$P(Length,D)-$P(Length,D,3)-9) $P(Length,D,2)=(80-$P(Length,D)-$P(Length,D,3)-9) If Count For Count=1:1:Count Do FMTLINK(.Link,Count,Length) ;Set Length=$P(Length,D)+$P(Length,D,2)+$P(Length,D,3) Set %C=80-($P(Length,D)+$P(Length,D,2)+$P(Length,D,3))\2,%R=24,%P=%R_U_%C For Set LinkRef=$S('$D(Link(2)):1,1:$$WILD^vhPOPUP(%P,"O1-","Link",.Link,$F(Link,0)-1)) Quit:'LinkRef Quit:$G(zb)="CANC" Do Quit:Link'[0 .Do CALLLINK(MailId,LinkRef) .Do:$D(Link(LinkRef)) ..Set R=$$FETCH(MailId,LinkRef),$P(Link(LinkRef),"`",2)=R ..Do FMTLINK(.Link,LinkRef,Length) .Set $E(Link,LinkRef)=1 .For I=1:1 Quit:'$D(Link(I)) Do ..Set R=$P(Link(I),"`",2) ..If " *"'[$E(R) Set R=$P(" \*",D,$E(Link,I)+1)_R ..Else Set $E(R)=$P(" \*",D,$E(Link,I)+1) ..Set $P(Link(I),"`",2)=R If '$D(^vhMAIL("D",MailId)) Set Link=0 Else Set:$P(^vhMAIL("D",MailId),D)="V" Link=0 Quit Link ; ; Oproepen van een linkscherm CALLLINK(MailId,LinkRef) New R,Type,Value,Aktie,Optie,NameSpace,FUserId,FromUci,ToUci Quit:'$D(^vhMAIL("D",MailId,"R",LinkRef)) Set R=^vhMAIL("D",MailId,"R",LinkRef),Type=$P(R,D),Value=$P(R,D,2),Aktie=$P(R,D,3),Optie=$P(R,D,4) Set R=^vhMAIL("D",MailId),FUserId=$P(R,D,6),FromUci=$ZU(5),(ToUci,NameSpace)=$P(R,D,10) Set:NameSpace="" NameSpace=$ZU(5) Quit:NameSpace'=$ZU(5) Do EXEC(Type,Value,Aktie,Optie) Quit ; ; Ophalen data van een link FDATA(sType,sRef,sAktie,sOptie,NameSpace) New R,sParList,sTxt Set sParList="("""_sRef_""","""_sAktie_""","""_sOptie_""")" Quit:'$D(^vhMAIL("LNK",sType,"L")) "" Set R=^vhMAIL("LNK",sType,"L") Do EXEC^vhRES($P(R,"`"),$P(R,"`",2),"R",sParList) Quit:R="" "" Set sTxt=$E(R,1,11) Quit:'$D(^vhMAIL("LNK",sType,"R")) "" Set R=^vhMAIL("LNK",sType,"R") Do EXEC^vhRES($P(R,"`"),$P(R,"`",2),"R",sParList) Quit:R="" "" Set sTxt=sTxt_D_R If NameSpace'=$ZU(5) Set R="Niet aktief" Else Do .Set R=$G(^vhMAIL("LNK",sType,"A")) .Do:$L(R) EXEC^vhRES($P(R,"`"),$P(R,"`",2),"R",sParList) .Set:R="" R=$P("Nieuw\Wijzigen\Raadplegen\Verwijderen\Print",D,$F("NWRVP",sAktie)-1) Set sTxt=sTxt_D_R Quit sTxt ; ; Uitvoeren van de link EXEC(sType,sRef,sAktie,sOptie) New Locals,sParList,sRec If '$D(^vhMAIL("LNK",sType,"X"_sAktie)),'$D(^vhMAIL("LNK",sType,"X")) Quit Set sParList="("""_sRef_""","""_sAktie_""","""_sOptie_""")" Set sRec=$G(^vhMAIL("LNK",sType,"X"_Aktie)) Set:sRec="" sRec=^vhMAIL("LNK",sType,"X") Set Locals("sRef")=sRef Set Locals("sAktie")=sAktie Set Locals("sOptie")=sOptie Set Locals("sRec")=sRec Set Locals("sParList")=sParList Do:'$P(sRec,"`",2) DO^vhPROGRAM("EXEC^vhRES($P(sRec,""`""),$P(sRec,""`"",3),""sRec"",sParList,""ErrorTrap^vhMAILLNK"")") Do:$P(sRec,"`",2) EXEC^vhRES($P(sRec,"`"),$P(sRec,"`",3),"sRec",sParList,"ErrorTrap^"_$ZN) Do DISPLAY^vhScherm("MAIL","","","H") Do WRITE^vhLIST(.LD) Quit ; ; Ophalen data van een link FETCH(MailId,LinkRef) New R,Type,Value,Aktie,Optie,NameSpace,FUserId,FromUci,ToUci Set R=$G(^vhMAIL("D",MailId,"R",LinkRef)) Do:$L(R) .Set Type=$P(R,D),Value=$P(R,D,2),Aktie=$P(R,D,3),Optie=$P(R,D,4) .Set R=^vhMAIL("D",MailId),FUserId=$P(R,D,6),FromUci=$ZU(5),(ToUci,NameSpace)=$P(R,D,10) Set:NameSpace="" NameSpace=$ZU(5) .Set R=$$FDATA(Type,Value,Aktie,Optie,NameSpace) Quit R ; FMTLINK(Link,Count,Length) New R Set R=$P(Link(Count),D)_$J("",$P(Length,D)-$L($P(Link(Count),D)))_" : " Set R=R_$E($P(Link(Count),D,2),1,$P(Length,D,2))_$J("",$P(Length,D,2)-$L($P(Link(Count),D,2))) Set R=R_" | "_$P(Link(Count),D,3) Set Link(Count)=R Quit ; ; Controle bij het indrukken van Ok of alle vereiste links verwerkt zijn CHKLINK(MailId) New R,LinkRef,sParList,sRec,sType,sRef,sAktie,sOptie,sOk Set sOk=1,LinkRef="" For Set LinkRef=$O(^vhMAIL("D",MailId,"R",LinkRef)) Quit:LinkRef="" Do .Set R=^vhMAIL("D",MailId,"R",LinkRef),sType=$P(R,D),sRef=$P(R,D,2),sAktie=$P(R,D,3),sOptie=$P(R,D,4) .Set sRec=$G(^vhMAIL("LNK",sType,"C")) .Quit:sRec="" .Set sParList="("""_sRef_""","""_sAktie_""","""_sOptie_""")" .Do EXEC^vhRES($P(sRec,"`"),$P(sRec,"`",2),"sOk",sParList) Quit $S(sOk:"O",1:"") ; ErrorTrap Do ^cA400 Quit 1 ;