Grafik-Scripting-Dilemma in einem Bericht mit mehreren Frameboxen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, JSL zu verwenden, um horizontale Linien in mehreren Frameboxen eines Overlay-Plot-Berichts zu zeichnen, der eine "by" -Gruppierung enthält. Der gewünschte y-Schnittpunkt der horizontalen Linie variiert von einer Rahmenbox zur nächsten. Dies scheint mit einigen Schleifen und dem Befehl "Grafikskript hinzufügen" einfach zu machen, jedoch erscheinen die horizontalen Linien immer an derselben Stelle in jedem Rahmen. Wenn der Bericht beispielsweise 5 Frameboxen enthält und die y-Intercept-Liste 5 verschiedene Werte enthält, zeigen alle 5 Frameboxen die Zeile bei yintercept [5] an, da sie das gleiche Skript enthalten: "HLine (yintercept ); "und 5 war der letzte Wert von i. Irgendwelche Ideen, wie Sie jeder Framebox ein einzigartiges Skript zuweisen können?
Re: Grafikskripting-Dilemma in einem Bericht mit mehreren FrameboxenVielleicht musst du manchmal darüber reden ...
Hier ist der Trick für mich:
for (i=1,i<=nBy,i++, //loop through each of the by groups in the report
minLine = Eval( Eval List(dPATMin[i]) );
maxLine = Eval( Eval List(dPATMax[i]) );
eval(
Eval Expr(
rep[Frame Box(i)] << Add Graphics Script(
2,
H Line( Expr(minLine) );
H Line( Expr(maxLine) );
);
)
);
);Re: Grafikskripting-Dilemma in einem Bericht mit mehreren FrameboxenHallo wieder,
Leider konnte ich das Problem des Hinzufügens verschiedener Grafikskripts zu mehreren Rahmenboxen mit der oben genannten Lösung nicht lösen.
Hier ist mein Skript:
for (i=1,i<=nBy,i++, //loop through each of the by groups in the report
minLine = Eval( Eval List(dPATMin[i]) );
maxLine = Eval( Eval List(dPATMax[i]) );
eval(
substitute(
expr(
rep[Frame Box(i)] << Add Graphics Script(
2,
H Line( minLine );
H Line( maxLine );
);
)
,
expr(i)
,
i
);
);
);Hat jemand eine Lösung zum Hinzufügen verschiedener "H-Linien" zu mehreren FrameBoxen?
Vielen Dank!
Re: Grafikskripting-Dilemma in einem Bericht mit mehreren FrameboxenIch konnte dieses Dilemma lösen, nachdem ich im JMP 9 Scripting Guide etwas gelesen hatte. Der Schlüssel ist, die Ersatzfunktion zu nutzen. Mein ursprünglicher Code sah ungefähr so aus:
for (i = 1, i <= nBy, i ++, // Schleife durch jede der By-Gruppen im Bericht
r [Frame-Box (1)] << Grafikskript hinzufügen (2, HLine (HT ));
);
Nach dem Einbau der Ersatzfunktion sieht es so aus:
for (i = 1, i <= nBy, i ++, // Schleife durch jede der By-Gruppen im Bericht
eval (Ersatz (
Ausdruck (r [Frame-Box (1)] << Grafikskript hinzufügen (2, HLine (HT );
)), Ausdruck (i), i);
);
);
Wenn ich nun das mit jeder Framebox verknüpfte Skript durchsehen, sehe ich HLine (HT [1]), HLine (HT [2]) ... anstelle von HLine (HT )