lustiges Problem mit SpaltennamenIch habe mich über ein Skript gewundert, das nicht das getan hat, was es tun sollte – überhaupt nicht!!
Öffnen Sie einfach die angehängte Datentabelle und führen Sie das Skript aus: THE_BUG
Caption(
"column \!"File Name\!"
values: " || Char((current data table():file Name << Get values));
)
Das Ergebnis ist überraschend:

Warum nicht „A“ und „B“?

Man kann das Skript leicht reparieren ...
Bei genauerem Hinsehen offenbart sich jedoch eine recht überraschende Grundursache ...
viel Spaß : )
Automatisierung und SkriptingBetreff: Ärgerliches Problem mit TabellennamenIch bin verwirrt. Das ist, was ich mit JMP 18.1.0 bekomme:

Übersehe ich etwas?
Betreff: Ärgerliches Problem mit TabellennamenEntschuldigung, beim Aktualisieren des Beitrags habe ich versehentlich die Grundursache entfernt.
Nun funktioniert das Wunder wieder...
Betreff: Ärgerliches Problem mit TabellennamenIn der ursprünglichen Datentabelle hätten Sie möglicherweise Folgendes erhalten:

Mehr anzeigen...My guess is that it is caused by using translated column name and same name in other column + relying on JMP's loose name rules (file Name instead of File Name for column referencing)
New Table("where_is_the_bug",
Add Rows(2),
Compress File When Saved(1),
New Script(
"THE BUG", JSL Quote(Caption(
"column \!"File Name\!"
name: "|| (current data table():file Name << Get Name)||"
values: " || Char((current data table():file Name << Get values));
)
) ,
As String(1)
),
New Column("File Name",
Character,
"Nominal",
Compact(),
Set Values({"A", "B"}),
Set Display Width(71)
),
New Column(["de" => "Dateiname", "en" => "File Name"],
Character,
"Nominal",
Compact(),
Set Selected,
Set Values({"C", "C"}),
Set Display Width(83)
)
)
Most definitely a bug considering JMP's rules for names but there are easy workarounds.
Betreff: Ärgerliches Problem mit TabellennamenMehr als eine Vermutung : )
Es ist interessant ...
- dass JMP intern den Spaltennamen "Dateiname" für die zweite Spalte beibehält - trotz des Konflikts mit der anderen Spalte
Speichern Sie einfach das Tabellenskript und Sie werden etwas wie in @jthis Beitrag sehen - dass JMP diesen internen Namen verwendet, um die Spalte zu finden - obwohl der "Dateiname 2" in der Tabellenansicht
Neben "Dateiname" können Sie die Spalte auch über "Dateiname 2" aufrufen. - dass JMP zuerst die lokalisierten Spaltennamen scannt – und DANN die ursprünglichen Spaltennamen (sonst würde es die erste Spalte finden).
Die Reihenfolge scheint zu sein:
1) Spaltenname a: nur exakte Übereinstimmungen
2) lokalisierte Spaltennamen – sogar ungefähre Übereinstimmungen
3) Spaltenname b: ungefähre Übereinstimmungen - woher die zusätzliche Spalte kam.
Ich habe Concatenate und Update ausprobiert – mit englischen und deutschen Einstellungen … mit JMP 18.1 und JMP19EA4.
Betreff: Ärgerliches Problem mit TabellennamenAls Konsequenz daraus ist ein JSL-Code sehr „fragil“, wenn ein Spaltenname leicht anders geschrieben wird als der tatsächliche Spaltenname:
Jemand kann eine neue Spalte mit alternativen Werten hinzufügen. Wenn einer der lokalisierten Namen dem ursprünglichen Spaltennamen bzw. der Referenz im Skript ähnelt, priorisiert JMP die neue Spalte. Dies kann zu überraschenden Diagrammen führen – vielleicht weniger offensichtlichen als diesem:
<- Graph Builder wird dieses verwenden
Spaltenname: Gewicht
JSL-Skript: Gewicht
alternative column (at the end of the table): wEiGhT <- Graph Builder will use this one

dt = Open("$SAMPLE_IMPORT_DATA/Bigclass.xlsx");
expr = Expr(dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :Weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
expr;
Wait(1);<BR />
caption("and with some magic ...");
New Column( ["x-id" => "wEiGhT", "en" => "innocent column"], Set Values( 100::61) );
expr;
Betreff: Ärgerliches Problem mit TabellennamenMithilfe der von @hogi bereitgestellten Datentabelle werden die ursprünglich angezeigten leeren Werte abgerufen. Dann fiel mir auf, dass es eine Spalte mit dem Namen „Dateiname 2“ gibt, die für die beiden Zeilen leere Werte enthält. Ich löschte dann die Spalte „Dateiname 2“ und führte das Skript erneut aus. Das Skript zeigte

Wenn Sie den Namen der Spalte Dateiname 2 ändern, wird das Skript auch korrekt ausgeführt