Ich habe mir ein On-Air-Video angesehen und versucht, ein Kontrolldiagramm mit den vertikalen Linien und Kommentaren (Anmerkungen) zu erstellen. Ich habe die Zeilen bekommen, aber die Kommentare sind alle durcheinander. Ich habe eine Reihe von Dingen ausprobiert, aber keinen Erfolg. Können Sie bitte die angehängte Datei und den Code sehen und mich über das Problem informieren?
@Sebnem ,
Ich habe dein Skript verwendet. Es gibt 2 Hauptprobleme. Das JMP-Kontrolldiagramm verwendet die Sequenz für die X-Achse und TestDate wird zum Definieren von Beschriftungen verwendet. Die x-Position Ihres Etiketts sollte also Row () - 1 sein, genau wie die vertikale Linie. Ich habe Right Justified auskommentiert und minus 0,75 verwendet, damit sich das Etikett rechts von der vertikalen Linie befindet. Entfernen Sie den Kommentar zu Rechtsbündig und machen Sie ihn zu Zeile () - 1, damit die Beschriftungen links von der vertikalen Linie angezeigt werden.
Der zweite Fehler ist die y-Position. Ihr Multiplikationsfaktor von 1,2 * Col Maximum (: Avg) ist> 1500. Ich habe einen Dummy-Wert hinzugefügt. Vielleicht möchten Sie Col Max (: Avg) +0,10 * Col Std Dev (: Avg) berücksichtigen.
Ihre Probleme waren also x und y pos. Dies ist eine einfache Methode, um Kommentare mithilfe von Spalteninformationen hinzuzufügen. Dies ist jedoch nur so protokolliert, wie die Tabelle geöffnet ist.
Angenommen, Sie protokollieren das resultierende Diagramm, schließen die Datentabelle und den Kontrolldiagrammbericht und führen Aktualisierungen wie das Ändern der Linienbreite der Kontrollgrenzen durch. Sowohl die Zeilen als auch die Kommentare verschwinden. Oder wenn Sie das Journal speichern und an ein anderes senden oder es in einer neuen Sitzung öffnen, sind die Beschriftungen und Zeilen wieder verschwunden.
Um diese Zeilen und Texte beizubehalten, müssen die Werte und keine Verweise auf die Datentabelle verwendet werden. Ich werde ein zweites Skript hinzufügen, das Werte und Referenzen verwendet. Dies sollte jedoch zeigen, was mit Ihrem Skript schief gelaufen ist.
Control Chart(
Sample Label( :TestDate ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Avg, Individual Measurement ),
SendToReport(
Dispatch(
{"Individual Measurement of Avg"},
"IR Chart of IM",
FrameBox,
{Add Graphics Script( 2, Description( "Script" ), Empty() ),
Add Graphics Script(
3,
Description( "Script" ),
For Each Row(
If( Is Missing( :comment ) == 0,
V Line( Row() - 1 )
)
);
For Each Row(
If( Is Missing( :comment ) == 0,
Text(
//Right Justified,
{Row()-0.75, Col Maximum( :Avg )+ 1.005},
:Comment
)
)
);
), Grid Line Order( 5 ), Reference Line Order( 6 )}
)
)
);
@Sebnem ,
Es gibt mehrere Methoden zum Erstellen des Skripts (Ausdrucks) mit den eingebetteten Werten für die vertikale Linie und den Text, nicht mit Verweisen auf Zeilen und Spalten.
JSL-Funktionen für Ausdrücke [Substitute (), NameExpr (), EvalExpr (), Expr ()] und JSL-Zeichenfunktionen, die Text in JSL-Ausdrücke konvertieren [Concat (), ConcatTo (), Eval Insert () und Parse], sind gut geeignet lernen.
cc= Control Chart(
Sample Label( :TestDate ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Avg, Individual Measurement )
);
rcc = report(cc);
scrp = Expr(Add Graphics Script(3,
Description( "PM Labels" )));
//get y placement = axis max - 0.5* axis inc
ypos = (rcc[AxisBox(1)]<< Get Max) - 0.5* (rcc[AxisBox(1)] << Get Inc);
txtcmd = "";
For Each Row(
If( Is Missing( :comment ) == 0,
txtcmd ||= EvalInsert("\[
V Line( ^Row() -1^ );
Text(
//Right Justified,
{ ^Row() - .75^, ^ypos^},
"^:comment(Row())^");]\")
)//end if
); //end for each row
show (txtcmd ); //see log
InsertInto(scrp, Parse(txtcmd));
show (scrp ); //see log
txtxp = Substitute(Expr(rcc[FrameBox(1)] << cmd), Expr(cmd), NameExpr(scrp));
Show(NameExpr(txtxp));
Eval(txtxp);
Beachten Sie, dass anstelle von For Each Row () ein idx = dt << get Zeilen verwenden kann, bei denen (! Is Missing (: comment)) verwendet werden kann, um die kleinere Liste von Zeilen mit Kommentaren zu finden.

@ gzmorgan0
Das funktioniert wie ein Champion!
Vielen Dank!