Ich habe mir ein On-Air-Video angesehen und versucht, eine Kontrollkarte mit den vertikalen Linien und Kommentaren (Anmerkungen) zu erstellen. Ich habe die Zeilen verstanden, aber die Kommentare sind alle durcheinander. Ich habe einiges ausprobiert, aber kein Erfolg. Können Sie sich bitte die angehängte Datei und den Code ansehen und mir mitteilen, wo das Problem liegt?
@gzmorgan0
Das funktioniert wie ein Champion!
Danke schön!
@Sebnem ,
Es gibt mehrere Methoden zum Erstellen des Skripts (Ausdrucks), das die eingebetteten Werte für die vertikale Linie und den Text enthält, keine Verweise auf Zeilen und Spalten.
Geeignet sind 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]. 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 rows where ( !Is Missing( :comment ) ) verwendet werden könnte, um die kleinere Liste von Zeilen mit Kommentaren zu finden.

@Sebnem ,
Ich habe Ihr Skript verwendet. Es gibt zwei Hauptprobleme.JMP Control Chart verwendet eine 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 „Rechtsbündig“ auskommentiert und minus 0,75 verwendet, damit die Beschriftung genau rechts von der vertikalen Linie liegt.Entfernen Sie den Kommentar zu „Rechtsbündig“ und setzen Sie ihn auf „Row() - 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) in Betracht ziehen.
Ihre Probleme waren also x- und y-Position. Dies ist eine einfache Methode zum Hinzufügen von Kommentaren mithilfe von Spalteninformationen. 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 nehmen Aktualisierungen vor, z. B. eine Änderung der Linienbreite der Kontrollgrenzen. 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.Aber das sollte 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 )}
)
)
);