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,Count,LinkRef,FUserId,Length,LijstLinkID Set R=^vhMAIL("D",MailId),FUserId=$P(R,D,6) 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) ..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)) .Else Set $E(Link,I)=1 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 %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(1)):"CANC",'$D(Link(2)):$P(Link(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) .For LijstLinkID=1:1 Quit:'$D(Link(LijstLinkID)) Do ..Quit:$P(Link(LijstLinkID),"`")'=LinkRef ..Set R=$$FETCH(MailId,LinkRef),$P(Link(LijstLinkID),"`",2)=R ..Do FMTLINK(.Link,LijstLinkID,Length) .Set $E(Link,LinkRef)=1 .For I=1:1 Quit:'$D(Link(I)) Do ..Set LinkRef=$P(Link(I),"`"),R=$P(Link(I),"`",2) ..Set:" *"[$E(R) $E(R)="" ..If $E(Link,LinkRef) Set R="*"_R ..Else Set R=" "_R ..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,FUserId 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) Do EXEC(Type,Value,Aktie,Optie) Quit ; ; Ophalen data van een link FDATA(sType,sRef,sAktie,sOptie) 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 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,FUserId 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) .Set R=$$FDATA(Type,Value,Aktie,Optie) 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 ;