Erstellen einer neuen Spalte und Hinzufügen von NotizenIch finde die Eigenschaft „Notes“ in einer JMP-Spalte nützlich, um den resultierenden Diagrammen automatisch Beschriftungen hinzuzufügen. Das Problem, das ich habe, betrifft das Generieren neuer Datenspalten, die sich auf übergeordnete Spalten beziehen, und das automatische Anwenden der übergeordneten Notizen. Im folgenden Skript hatte ich gehofft, dass die Zeile
<< set property( "Notes", Notes );
würde funktionieren, aber mir fehlt etwas. Hier ist das Hauptskript.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( numeric, string );
foundCols = "";
For( i = 1, i <= N Col( dt ), i++,
Spud = ":" || colList[i];
Spuds = Parse( Eval Insert( Spud ) );
Show(Spuds);
spec = Column( dt, colList[i] ) << get property( "Spec Limits" );
Notes = Column( dt, colList[i] ) << get property( "Notes" );
Show(Notes);
dt << clear select;
If( Is Empty( spec ) == 0,
dt << New Column(
(Column( dt, colList[i] ) << get name) || " % Delta From Target",
Formula(
If( Spuds > (Spuds << get property( "Spec Limits" ))["Target"],
Num(
(Spuds - (Spuds << get property( "Spec Limits" ))["Target"])
/ ((Spuds << get property( "Spec Limits" ))["USL"] - (Spuds
<< get property( "Spec Limits" ))["Target"])
) * 100,
If( Spuds < (Spuds << get property( "Spec Limits" ))["Target"],
Num(
((Spuds << get property( "Spec Limits" ))["Target"]
-Spuds) / ((Spuds << get property( "Spec Limits" ))[
"LSL"] - (Spuds << get property( "Spec Limits" ))[
"Target"]) * 100
),
0
)
)
)
) << set property( "Notes", Notes );
If( Is Missing( Try( spec["LSL"], . ) ) == 0,
dt << select where( As Column( dt, colList[i] ) + spec["LSL"] );
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 0 );
);
If( Is Missing( Try( spec["USL"], . ) ) == 0,
dt << select where(
As Column( dt, colList[i] ) - spec["USL"],
current selection( "extend" )
);
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 0 );
);
dt << select where(
Is Missing( As Column( dt, colList[i] ) ),
current selection( "extend" )
);
dt << invert row selection;
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 1 );
Column( dt, N Cols( dt ) );
If( foundCols == "",
foundCols = ":Name(\!"" || (Column( dt, colList[i] ) << get name) ||
" % Delta From Target\!")",
foundCols = foundCols || ", " || ":Name(\!"" || (
Column( dt, colList[i] ) << get name) || " % Delta From Target\!")"
);
);
);
Jede Hilfe ist willkommen
Tschüss
SpannerHead
Automatisierung und SkriptingBetreff: Neue Spalte erstellen und Notizen hinzufügenEntweder trennen Sie die Notizeinstellung, so dass sie nach der neuen Spalte erfolgt
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
For Each({colname}, dt << Get Column Names("String"),
curnote = Column(dt, colname) << Get Property("Notes");
new_col = dt << New Column("A", Character, Nominal);
new_col << Set Property("Notes", curnote);
);
oder verschieben Sie es in eine neue Spalte
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
For Each({colname}, dt << Get Column Names("String"),
curnote = Column(dt, colname) << Get Property("Notes");
new_col = dt << New Column("A", Character, Nominal, Set Property("Notes", curnote));
);
Sie können sich eine Idee für das Skript holen, indem Sie eine Spalte mit einer Notizeigenschaft auswählen, mit der rechten Maustaste auf die Überschrift klicken und „Spalten kopieren“ auswählen. Sie können auch eine neue Spalte erstellen und die Eigenschaft sofort hinzufügen und das Skript aus dem erweiterten Protokoll abrufen.
Data Table("Big Class") << New Column("Column 6",
Numeric,
"Continuous",
Format("Best", 12),
Set Property("Notes", "asdasd")
);
Betreff: Neue Spalte erstellen und Notizen hinzufügenJarmo
Habe mich für das Zweite entschieden, funktioniert genau!
Danke
Tschüss
SpannerHead