cABG ;GLOBAL DISPLAY. FLH ; DKA244 04/03/95 ; Compiled December 21, 2000 16:00:46 [ 13/03/2002 - 09:27:48 - 58876,34068 ] ; ; VJ - 21.02.02 - afgeleide versie van %G ; I $ZV["MSM" G ^%GL ; ; +--------------------------------------------------------+ ; | Copyright 1986-2000 by InterSystems Corporation, | ; | Cambridge, Massachusetts, U.S.A. | ; | All rights reserved. | ; | | ; | Confidential, unpublished property of InterSystems. | ; | | ; | This media contains an authorized copy or copies | ; | of material copyrighted by InterSystems and is the | ; | confidential, unpublished property of InterSystems. | ; | This copyright notice and any other copyright notices | ; | included in machine readable copies must be reproduced | ; | on all authorized copies. | ; +--------------------------------------------------------+ ; N POP I $D(IOT),IOT="TRM",$D(IO),IO=$I E D OUT^%IS Q:POP N %E,%N,%NFULL,%B,%C,%L,%M,%G,%GLO ;Used by %GPARSE N F ;Used by %SETF N NullOK ; BIN002 I $D(%ST)<11 N %ST D ^%ST D ^%SETF I F,IOT'="TRM" W !,"[Warning: Use a ""V"" format to avoid problems with control characters.]" ; S NullOK=$$NulAllow^%GOGEN LOOP S $ZT="ERR" F U 0 D ^%GPARSE Q:%G="" U IO W ! D G1 EXIT ; U IO W ! U 0 C:IO'=$I IO Q ERR ; S $ZT="" G:$ZE?1"",ALPP . I ALPP="" S ALPP=10 Q . S ALPP=+ALPP S TRAN=0 U 0 I IO=$I D W !! . R !,"Translate $H ",TRAN . I $L(TRAN),"YyJj"[$E(TRAN) S TRAN=1 Q . S TRAN=0 U IO ; -------------------------------- N %HN,GREF,HREF,HGDIFF,LWLH,LWLEV,LWLENG,LEV,SHOLEV,First ;BIN002 S %HN=%N I %HN?1"^[".E S %HN="^"_$P(%HN,"]",$L(%HN,"]")) S HGDIFF=$L(%N)-$L(%HN) S LWLH=0,LWLEV=0,LWLENG=0 ; -------------------------------- ; VJ - 21.02.02 ; I '%M,%N_"("=%G,$D(@%N)'=10 W %HN W:F ! W @%N W:F ! I '%M,%N_"("=%G,$D(@%N)'=10 D . U 0 I IO=$I W /SGR(1) . U IO W %HN . U 0 I IO=$I W /SGR(0) . U IO D DETAIL(@%N) W:F ! ; -------------------------------- I 'NullOK,$O(@%N@(""))="" Q I NullOK,$O(@%N@(""))="",'$D(@%N@("")) Q S SHOLEV=%L-(%E>1) ; Show only nodes at LEV>SHOLEV. S GREF=%N_"(",HREF=%HN_"(" S First=NullOK D CHILDREN(1) Q ;--------------------------------------------------------------------- ; Process all the children on subscript level LEV of one parent node. ; Naked reference is to level LEV. CHILDREN(LEV) ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" ; -------------------------------- N LENGTH,SUBSCR,Z S LENGTH=$L(GREF),SUBSCR=$S(LEV'>%L:%B(LEV),1:"") ; If nulls are allowed, and %GPARSE indicates to start with null, and ; we have not already done so, and there are any null subscripts then ; try displaying them I NullOK,$G(%B(LEV))="",'$G(LEV(LEV)),$D(^("")) DO S LEV(LEV)=1 . S SUBSCR="" D ACHILD ; Process a subscript I SUBSCR'="",$D(^(SUBSCR)) E S SUBSCR=$O(^(SUBSCR)) F Q:$$PASTEND D ACHILD I SUBSCR'="" S SUBSCR=$O(^(SUBSCR)) Q ;--------------------------------------------------------------------- ACHILD ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" ; -------------------------------- N Subs S Subs=$$QS^%GOGEN(SUBSCR) S GREF=GREF_Subs,HREF=HREF_Subs S %D=$D(^(SUBSCR)) ; -------------------------------- ; VJ - 21.02.02 ; I LEV>SHOLEV,(%D'=10)!(%E=2) D SHOWREF W:%D=10 "pointer" w:%D'=10 "=",^(SUBSCR) w:F ! I LEV>SHOLEV,(%D'=10)!(%E=2) D SHOWREF I TELL'="-" W:%D=10 "pointer" D:%D'=10 DETAIL(^(SUBSCR)) w:F ! ; -------------------------------- I %D>9,(%E'=2)!(LEV<%L) D DESCEND S GREF=$E(GREF,1,LENGTH),HREF=$E(HREF,1,LENGTH-HGDIFF) S:LEV'>%M SUBSCR="" Q ; ---------- SUBROUTINES ---------- ;--------------------------------------------------------------------- ; $$PASTEND true if SUBSCR exceeds range of subscripts. PASTEND() ; ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" I TELL="-" Q 1 ; -------------------------------- I SUBSCR="" Q 1 I LEV>%L Q 0 I %C(LEV)="" Q (%B(LEV)'="")&(%B(LEV)'=SUBSCR) I SUBSCR=%C(LEV) Q 0 I SUBSCR'["E",SUBSCR=+SUBSCR G K51 ; have a string subscript currently I %C(LEV)'["E",%C(LEV)=+%C(LEV) Q 1 ; endpoint is numeric, too far Q SUBSCR]%C(LEV) ; have a numeric subscript currently K51 I %C(LEV)'["E",%C(LEV)=+%C(LEV) Q SUBSCR>%C(LEV) Q 0 ; endpoint is a string, o.k. ; ;-------------------------------------------------------------------- ;--------------------------------------------------------------------- ; Show the global reference HREF. SHOWREF ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" I ALPP S TELL=TELL+1 I TELL>ALPP D . R "<>",TELL W ! . I $L(TELL) S TELL="-" Q . S TELL=1 ; I LWLEV=LEV W ?LWLH-$L(HREF)+LWLENG,$E(HREF,LWLENG+1,999) ; E W HREF S LWLH=$L(HREF),LWLEV=LEV ; W ")" I TELL'="-" D . U 0 I IO=$I W /SGR(1) . U IO W HREF,")" . U 0 I IO=$I W /SGR(0) U IO S LWLH=$L(HREF),LWLEV=LEV ; -------------------------------- S LWLENG=LENGTH-HGDIFF Q ;--------------------------------------------------------------------- ; Drop one level. DESCEND ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" ; -------------------------------- N DUMMY,First S First=NullOK S GREF=GREF_",",HREF=HREF_"," S DUMMY=$O(^(SUBSCR,"")) ;AHS016 D CHILDREN(LEV+1) S DUMMY=$O(@($E(GREF,1,$L(GREF)-1)_")")) ;AHS016 S LWLEV=0,LWLENG=0 Q ; DETAIL(X) ; -------------------------------- ; VJ - 21.02.02 S $ZT="TRAP^cAN000" N D,I,J U IO W "=`" F I=1:1:$L(X) S J=$E(X,I) D . I J?1C D Q .. U 0 I IO=$I W /SGR(1) .. U IO W "$C(",$A(J),")" .. U 0 I IO=$I W /SGR(0) . U IO W J U IO W "´" I TRAN S D="\" F I=1:1:$L(X,D) S J=$P(X,D,I) I J?5n1","1.5N,J>58000,J<60000,$P(J,",",2)<86400 D . W !,"=> $H in $P( ,D,",I,")=",J," => ",$$HD^cAFD1(J)," @ ",$$HT^cAFD1(J,1) . I ALPP S TELL=TELL+1 Q ; -------------------------------- ZZ ; 03.05.02 - 9 u 02 * V7.92