cQI30 ;Global Editor ;cQI30 ; ; START W !?10,"Full Screen Global Editor Utility using Caché Studio",! S $ZT="ERROR^cQI30" ; ; first: clean-up ;S D="\",P="Z"_$J K ZUT,^ROUTINE(P),^rINDEX(P) X "ZR ZS @P" S D="\",P="Z"_$INCREMENT(^DIN(0,"DOCU")) K ZUT ; Select Globals D ^cQI300 I ZUT(0)=1 G EXIT ; Globals to Routine S ZUT=$H,ZUT(1)=P_$C(9)_";" ;Max size for a routine is 48KB for Caché 5, 96KB for Caché 2008 S MAX=48*1024 I ($P($P($ZV,")",2),"(",1)[" 2008")!($P($P($ZV,")",2),"(",1)[" 2010") S MAX=MAX*2 S (I,K)=0 F S I=$O(ZUT(I)) Q:I="" S K=K+$L(ZUT(I)) I K>MAX D . W !,K," bytes selected",!,"No more than ",MAX," bytes allowed.",!,"Truncating",! . F S I=$O(ZUT(""),-1) Q:I="" S K=K-$L(ZUT(I)) K ZUT(I) Q:KMAX D . W !,K\2," Nodes selected",!,"No more than ",MAX\2," nodes allowed.",!,"Truncating",! . F I=MAX+1:1:K K ZUT(I) . S I=$O(ZUT(""),-1) I $E($P(ZUT(I),";",2))="~" K ZUT(I) . W !,MAX," lines left",!,"[] = OK:.",*8 R k ; ;M ^ROUTINE(P,0)=ZUT S ^rINDEX(P,"INT")="" K ^TEMP($J) M ^TEMP($J)=ZUT K ZUT S $Y=0 S X="S I=0 F S I=$O(^TEMP($J,I)) Q:I="""" ZI ^TEMP($J,I)" X "ZR X X ZS @P" K ^TEMP($J) ;Start Cache Studio D SS(P) ; Routine to Global S (A,B)="",I=0 NEXT S I=$O(^ROUTINE(P,0,I)) I $L(I) S A=^(I),A=$E(A,3,$L(A)) G NEXT:"~^"'[$E(A)!'$L(A) I $L(I) S I=$O(^(I)) I $L(I) S B=^(I),B=$E(B,3,$L(B)) D G NEXT . I $E(A)'="~" D KILL Q . S A=$E(A,2,$L(A)) . F Q:'$F(B,"§") Q:'$F($E(B,$F(B,"§"),$L(B)),"§") S B=$E(B,0,$F(B,"§")-2)_$C($E(B,$F(B,"§"),$F(B,"§")+2))_$E(B,$F(B,"§")+4,$L(B)) . S K="" F %I=1:1:$L(B) S:$E(B,%I)'?1C K=K_$E(B,%I) I $E(B,%I)?1C S K=K_"["_$E($A(B,%I)+1000,2,4)_"]" . W !,A,"=""",K,"""" S @A=B K A,B,I W ! X "ZR ZS @P" G cQI30 ; SS(P) ;Start Cache Studio with routine P.int S K="cn_iptcp://"_$ZCVT($ZU(110),"U")_"/"_$ZU(5)_"/"_P_".int",com="Cstudio" I ($P($P($ZV,")",2),"(",1)[" 5.")!($P($P($ZV,")",2),"(",1)[" 2008")!($P($P($ZV,")",2),"(",1)[" 2010") D . S sys=$ZCVT($ZU(110),"U"),ip=$P($ZU(54,13,$ZCVT($ZU(110),"U")),",") I $L(ip) S sys=ip . S con="cn_iptcp://"_sys_":1972/"_$ZU(5)_"/"_P_".int" . I ($P($P($ZV,")",2),"(",1)[" 2008") S com="Cstudio2008" . I ($P($P($ZV,")",2),"(",1)[" 2010") S com="Cstudio2010" D START^cANR0(com) W con,! D STOP^cANR0 H 2 W !!,"Geef [ enter ] als je de Studio hebt afgesloten: " R K W ! SSZ Q ; KILL I '($D(@A)\10) K @A W !,A," killed." Q E W !,A," should better NOT be killed.",$C(7) H 1 Q ; EXIT I $D(%R),%R,%R'=$I C %R K %GN,%G1,%GPR,%GPRQ,%GSN,%PR,%GUD,%GNV,%GBR,%R,%SC,%RSC,%GX,%I K %I30 B 1 Q ; ERROR ; W !,$ZE I $F($ZE,"") U 0 W !!,"...Aborted." D EXIT Q ; SHOW N R,T S R="Z" F S R=$O(^rINDEX(R)) Q:R="" W "." S T="" D . F S T=$O(^rINDEX(R,T)) Q:T="" I '$D(@$S(T="INT":"^ROUTINE",1:"^r"_T)@(R)) W !,R,".",T," does not exist",!,*7 Q ; INS D NSPC^cQ21(.A,1) S cs=$ZU(5),NS="" S X="ZN """_cs_""" ZL "_$T(+0)_" ZN NS ZS "_$T(+0)_" D SHOW^"_$T(+0)_" ZN """_cs_"""" F S NS=$O(A(NS)) Q:NS="" I NS'=cs W !,NS X X INSZ Q ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9