Feedback zum JSL-Skript (Spalten umbenennen): Es funktioniert, aber ich bin mir nicht sicher, warum!Hallo JMP-Gemeinde,
Nach 2 Tagen des Lernens habe ich endlich ein JSL-Skript erstellt, das die von mir gesuchte Änderung des Spaltennamens durchführt. Angesichts des ziemlich mühsamen Prozesses, um zu diesem Ergebnis zu gelangen, vermute ich jedoch, dass ich möglicherweise suboptimale Ansätze verwendet habe. Daher suche ich nach Möglichkeiten, dieses Skript zu bereinigen.
Names Default To Here( 1 );
dt = Current Data Table();
src=.;
trg = .;
sfx = "";
pfx = "";
n = 0;
m = 0;
win = New Window (
" WARNING ",
<< Modal,
Text Box (" It is recommended that you save your table before proceeding "),
Button Box (
"SAVE NOW",
dt << Save("");
),
);
cd = Column Dialog(
cl1 = ColList( "SOURCES", Min Col (1)),
cl2 = ColList( "TARGETS", Min Col (1)),
Line Up( 2,
Text Box( "Prefix" ), ex = EditText( "P_" ),
Text Box( "Suffix" ), ey = EditText( "_S" )
),
);
src=cd[1];
srcx = right (src,length (src)); // I'm not sure how this works but without this the script fails
n = N items (srcx);
trg = cd[2];
trgx = right (trg,length (trg)); // I'm not sure how this works but without this the script fails
m = N items (trgx);
pfx = cd [4];
sfx = cd [6];
If (n == m,
st = "";
For (i=1, i <= m, i++,
scol = srcx [i] << Get Name;
st = pfx || scol || sfx;
trgx [i] << Set Name (st);
);
,Stop());Wir würden uns sehr über Ihr Feedback freuen.
Beifall,
TS
Betreff: JSL-Skript (Spalten umbenennen) Feedback: Es funktioniert, aber ich bin mir nicht sicher, warum!Hallo MS,
Vielen Dank für Ihr Feedback, es wird sehr geschätzt
Am besten,
TSBetreff: JSL-Skript (Spalten umbenennen) Feedback: Es funktioniert, aber ich bin mir nicht sicher, warum!Toll, dass du JSL lernen möchtest. Es ist wirklich nützlich! Und der Einstieg ist gar nicht so schwer, wenn Sie Erfahrung im interaktiven Arbeiten mit JMP haben. Ein Großteil der JSL-Syntax erscheint dann logisch und unkompliziert. Allerdings gibt es natürlich einige skurrile Dinge wie die Liste, die von zurückgegeben wird Spaltendialog().
Ich würde wahrscheinlich stattdessen ein nicht-modales New Window() als Bedienfeld für diese Aufgabe verwenden.
Unten ist ein Versuch, Ihr Skript zu vereinfachen, das immer noch verwendet wird Spaltendialog . ich benutze Evaluierungsliste() um einige der Zuweisungsausdrücke der Ausgabe von auszuführen Spaltendialog, wodurch zusätzliche Variablen überflüssig werden.
Names Default To Here(1);
dt = Current Data Table();
cd = Column Dialog(
src=ColList("SOURCES", Min Col(1)),
trg = ColList("TARGETS", Min Col(1)),
Line Up(2,
Text Box("Prefix"), pfx = EditText("P_"),
Text Box("Suffix"), sfx = EditText("_S")
)
);
Eval List(cd[[1 2 4 6]]); //Execute relevant assignments within list cd
Show(src, trg, pfx, sfx); // Just to confirm (can be deleted)
n = N Items(src);
m = N Items(trg);
For(i = 1, i <= Min(n, m), i++,
trg[i] << Set Name(pfx || (src[i] << get name) || sfx)
);