vhTXTPOP(sGrp,sId,sNoRefr,sP1,sP2,sP3,sP4,sP5,sP6,sP7,sP8,sP9,sP10) ;Tonen van een tekst met buttons [ 11/24/2003 8:14 AM ] New sY,sX,sI,sJ,sMLen,D New sTop,sBot,sLeft,sRight,sHfd,sInp New sB,sBPerL,sBQtyL,sChars,sBBegin,sBSel,sBLen Do INIT,FETCH,WRITE,INP:$D(sB),CLEAN Quit sInp JaNee(Titel,Tekst) New Btn Set Btn(1)="Ja&1",Btn(2)="Neen&*" Quit $$WordWrapPopup(Titel,Tekst,.Btn) Boodschap(Tekst) New Btn Set Btn(1)="Ok&1" Quit $$WordWrapPopup("",Tekst,.Btn) WordWrapPopup(Titel,Tekst,Btn,AantalColumns="") New TekstLijnen,TekstLijn,TekstWordWrap,TestWordWrapIt Set TekstLijnen="TekstLijnen" Set TekstLijn = 1 Set:AantalColumns="" AantalColumns = 75 Set TekstWordWrap = ##class(TECH.StringUtils).WordWrap(Tekst,AantalColumns) Set TekstWordWrapIt = ##class(TECH.ListIterator).%New(TekstWordWrap) While TekstWordWrapIt.HasNext(){ Set TekstLijnen(TekstLijn) = TekstWordWrapIt.Next() Set TekstLijn = TekstLijn +1 } Quit $$WILD^vhTXTPOP("C;C",Titel,TekstLijnen,"Btn",2) ;*** Formatering Text *** ;&WLocal : WildCard, de local wordt er tussen gevoegd ;&S : Separator lijn ;&Ix. : Include van de lijn x slaat op de sPx, 0 = Not include, 1 = Include, -1 of * disable voor buttons ;&C. : Centrering van de tekstlijn ;&L. : Links ;&R. : Rechts ;&B : Plaats waarde de buttons moeten ingevoegd worden ;.ªK.,ªk,ªB,ªb,ªU,ªu : Formatering in de tekst Knipper,Bold,Underline ;.#x. : Parameter transformatie #x wordt vervangen door de waarde in sPx ;.$. : Het char na $ is het karakter waarmee de button kan geselekteerd worden ;.&Kode* : Returnval voor de button, de * slaat op de default selectie ; ;Opmerking : Het . geeft aan vervolg tekst ervoor of erachter WARN(Tekst,sTitel,Muet) ; Tekst : Tekstlijnen met "`" of "~" gescheiden ; Optie : sTitel ; Optie : Muet (1 = geen interactieve waarschuwing) if '##class(vhLib.TerminalDevice).IsCurrentSessionATerminalSession() { new Exception set Exception = ##class(TECH.Exceptions.GeneralErrorException).%New(Tekst) do ##class(TECH.ExceptionHandler).Throw(Exception) } New sTxt,sButLoc,I,MailId Set sTxt=0 Set Tekst=$TR(Tekst,"`","~") For I=1:1:$L(Tekst,"~") Do .Set sTxt=sTxt+1 .Set sTxt(sTxt)=$P(Tekst,"~",I)_$S($G(Muet):"~",1:"") If $G(Muet) Do . Set:$G(sTitel)="" sTitel=sTxt(1) . Set sTitel=$E("WARN:"_$TR(sTitel,"\","/"),1,40) . Set sTxt=sTxt+1,sTxt(sTxt)="~"_$STACK($STACK-3,"PLACE")_"~" . Set sTxt=sTxt+1,sTxt(sTxt)=$STACK($STACK-3,"MCODE") . Set MailId=$$SYSTEM^vhMAIL("",sTitel,"","PV;CW",.sTxt,,"U","A") Else If $G(Muet)="DISPONLY" Do . Set Tekst=$$WILD("C;C",$G(sTitel,"Waarschuwing"),"sTxt","",-1,-1) Else Set Tekst=$$WILD("C;C",$G(sTitel,"Waarschuwing"),"sTxt") Quit ;Toont alleen de tekst, naderhand REFRESH^vhTERMINA() oproepen om de textpop te wissen DISPONLY(Tekst,sTitel,sNoRefr) ; Tekst : Tekstlijnen met "`" of "~" gescheiden ; Optie : sTitel New sTxt,sButLoc,I,MailId Set sTxt=0 Set Tekst=$TR(Tekst,"`","~") For I=1:1:$L(Tekst,"~") Do .Set sTxt=sTxt+1 .Set sTxt(sTxt)=$P(Tekst,"~",I)_$S($G(Muet):"~",1:"") Set Tekst=$$WILD("C;C",$G(sTitel,"Waarschuwing"),"sTxt","",-1,-1,.sNoRefr) Quit WILD(sPos,sTitel,sTxtLoc,sButLoc,sButAli,sTimeO,sNoRefr,sP1,sP2,sP3,sP4,sP5) ; sTxtLoc en sButLoc oproepen via "Local" ; Indien sButAli=-1 geen buttons, het scherm wordt getekend en wacht op de timeout New sY,sX,sI,sJ,sMLen,D New sTop,sBot,sLeft,sRight,sHfd,sInp New sB,sBPerL,sBQtyL,sChars,sBBegin,sBSel,sBLen New sGrp,sId If $G(QW),$ZV["MSM" Do ZWINT^vhRtn2(1,$P(sPos,";"),$P(sPos,";",2)) If $G(sButAli)=-1 Set sId="WILDNOBUT",sButAli="" Else Set sId="WILD" Set sGrp="SYS" Set:'$L($G(sButLoc)) sButLoc(1)="OK&1",sButLoc="sButLoc" Do INIT Set sHfd=sPos_D_D_sTitel_D_$G(sButAli)_D_$S($G(sTimeO)=-1:0,1:$G(sTimeO)) Do FETCH Do WRITE Do:$G(sTimeO)'=-1 INP,CLEAN Write:$G(sTimeO)=-1 @FMTi If $G(QW),$ZV["MSM" Do .New sInp .Do ZWINT^vhRtn2(0) Quit $G(sInp) INIT Do:'$G(sNoRefr) STORE^vhTERMINA() Do FMTPARAM Quit:'$D(^RES(sGrp,"TP",sId)) Set D="`" Set sHfd=$P(^RES(sGrp,"TP",sId),"`",5,99) Set sMLen=0 Set sBQtyL=0,sChars="",sBSel=1,sBLen=0 Set sInp="" Quit FMTPARAM ; Initieel formateren van de paramters New sI,sRec,sDec,sFmt,sLen,sAlign Set sI="" For Set sI=$O(^RES(sGrp,"TP",sId,"P",sI)) Quit:sI="" Do .Set sRec=^RES(sGrp,"TP",sId,"P",sI) .Set X=$G(@("sP"_sI)) .Set sFmt=$P(sRec,"`",1) .Set sDec=$P(sRec,"`",4) .Set sLen=$P(sRec,"`",3) .Set sAlign=$P(sRec,"`",2) .Set:'sLen!'$L(sAlign) sAlign="L" .Do EXEC^vhRES($P(sRec,"`",5),$P(sRec,"`",6),"X","(X,sFmt)") .If '$L(sFmt) Set @("sP"_sI)=X .Else Set @("sP"_sI)=$$CEL^vhFMT(0,X,sFmt,sAlign,sLen,sDec,"","","","") Quit FETCH New sRec,sLijn,sLen,sCnt Set sCnt=0,sBBegin=0 For sI=1:1:$O(^RES(sGrp,"TP",sId,"T",""),-1) Set sRec=^RES(sGrp,"TP",sId,"T",sI) For sJ=1:1:4 Do .Set sLijn=$P(sRec,D,sJ) .Quit:'$L(sLijn) .Do LIJN(sLijn) ; Titel Set sLijn=$P(sHfd,D,3),sY(0)="" If sLijn["º" Do PARAM Set sY(0)="" If $L(sLijn) Do .Set sLen=$L(sLijn)+2-($L(sLijn,"ª")-1*2) .Set sY(0)=" "_sLijn_" "_D_"C"_D_sLen .Set:sMLen