Das Festlegen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Ich versuche, eine Link-ID in JSL festzulegen, aber wenn ich sie in JSL setze, scheint die Link-ID in der Tabelle so festgelegt zu sein, wie sie sollte, aber die Linkreferenz in der anderen Tabelle, die darauf verweisen soll, funktioniert nicht.
Wenn ich die Link-ID entferne und per Rechtsklick auf die Link-ID setze, funktioniert alles einwandfrei.
Ich benutze das:
dfps:name( "Country" ) << Set Property( "Link ID", 1 );
Kann nicht sehen, was daran falsch ist. Vermisse ich einen Aktualisierungsvorgang, damit es funktioniert? Irgendwelche Vorschläge?
SkripterstellungBetreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Wie Craige erwähnt, glaube ich, dass es sich um ein "sicheres" Problem handelt. Ich hatte dieses Problem schon einmal und frustrierenderweise hatte ich es nur auf dem PC. Auf dem Mac musste ich das Speichern nicht durchführen.
Sicherzustellen, dass meine Tabelle zuerst gespeichert wurde, hat das Problem behoben.
Brady
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Ich habe etwas Neues entdeckt:
Wenn das JSL-Skript, das ich ausführe, nicht gespeichert ist und noch nie zuvor gespeichert wurde (wenn also der Quellcode geschrieben oder in ein brandneues geöffnetes Skriptfenster kopiert wurde), funktioniert das Verknüpfen zweier nicht gespeicherter Datentabellen wie ein Zauber.
Wenn es gespeichert wird oder wenn es sich um ein vorhandenes Skript handelt, das gerade geändert und nicht gespeichert wurde, funktioniert es nicht.
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Hallo zusammen,
Ich habe das gleiche Problem mit der Verknüpfung zweier Tabellen per Skript.
Es verhält sich genau so @ThomasZatValcon beschrieben.
Nachdem ich es manuell durch Anklicken gemacht hatte, kopierte ich dann die beiden Codezeilen aus dem Protokoll.
Dann kommt es darauf an, wo sie eingefügt werden. Wenn ich sie in ein neues Skriptfenster einfüge, funktioniert das Skript. Wenn ich sie in mein derzeit in Entwicklung befindliches Skript einfüge (aus dem die beiden Tabellen ursprünglich geöffnet wurden), funktioniert es nicht.
Gibt es neue Erkenntnisse zu diesem Thema?
Beifall
Robert
Übrigens. Inzwischen habe ich einen entsprechenden Thread gefunden. Die Problemumgehung besteht darin, zuerst die Datentabellen zu speichern, aber das ist nicht immer praktisch.
https://community.jmp.com/t5/Discussions/Virtual-Join-via-JSL-does-not-work/td-p/360675
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Versuchen Sie, die Tabellen vor dem Verknüpfen zu speichern, und prüfen Sie, ob Ihre Ergebnisse konsistent werden. Ich bin mir nicht sicher, wie die Links intern funktionieren, aber es könnte davon abhängen, ob ein Dateiname verfügbar ist.
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Es sind zwei verschiedene Tische. Die linke ist die Tabelle mit der ID, die linke Tabelle ist die Tabelle mit der Referenz.
Ja, ich habe versucht, Spalte (dt ...) und dt: name () ... zu referenzieren.
Ich habe auch versucht, den funktionierenden Code (wenn er von einem separaten Skriptfenster aus ausgeführt wird) in eine separate Datei zu packen und einzuschließen. Hat auch nicht funktioniert. Ich habe versucht, es in ein expr() zu stecken und es auszuwerten. Hat auch nicht geholfen.
Aber die beiden Codezeilen funktionieren, wenn ich ein separates Skriptfenster erstelle und sie von dort aus ausführe, was unerwartet ist.
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Sollen die gleich sein? Weil die beiden Tabellen eine unterschiedliche Anzahl von Spalten haben.
Haben Sie nachgesehen, ob `dfps` richtig ist? Oder versucht, `Column(dt, "Country")` zu verwenden?Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Ich habe es immer noch nicht herausgefunden, aber ich bekomme hier ein wirklich seltsames Verhalten:
Den gleichen Code in zwei Fenstern haben:

Wenn ich den Code im linken Fenster ausführe, beachten Sie, dass das Symbol mit den beiden Tasten grau ist (es funktioniert nicht):

Wenn ich die gleichen zwei Zeilen im rechten Fenster ausführe, funktioniert es:

Der Code im linken Fenster ist der Ort, an dem die JSL erstellt wurde. Der gesamte Code wird nur im globalen Namespace ausgeführt. Ich habe es sogar mit Namen default to here(1) versucht und das gleiche Verhalten erhalten, das mich überrascht hat, da ich erwartet hatte, die Tabellenvariablen nicht von einem anderen Skriptfenster aus referenzieren zu können.
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Danke. Ich habe Ihren Code geändert, um besser darzustellen, was vor sich geht (Tabellen befinden sich nur im Speicher), um genauer darzustellen, was vor sich geht, und erwartet, dass es fehlschlägt, aber es funktioniert tatsächlich. Ich habe immer noch nicht herausgefunden, was meinen anderen Code zum Scheitern bringt, werde aber diesen Thread aktualisieren, wenn ich es herausfinde.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// creating a unique ID
dt2 = dt << subset( all rows, all columns );
dt2 << New Column( "_Row", <<SET each="" value=""></SET>
Betreff: Das Setzen der Link-ID in jsl scheint nicht zu funktionieren - was ist falsch?Wollen Sie sagen, dass Sie die Referenz vor der ID setzen?Ich bin mir nicht sicher, wie Sie das machen würden, aber das funktioniert gut für mich.
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
// creating a unique ID
dt << New Column("_Row", << Set Each Value(Row()));
// subsetting just so I have something to link
dt_sub = dt << Subset(
Selected Rows( 0 ),
Rows( [1, 2, 3, 4, 5] ),
columns( :_Row )
);
Column(dt, "_Row") << Set Property( "Link ID", 1 );
Column(dt_sub, "_Row") << Set Property( "Link Reference",
Reference Table( "$SAMPLE_DATA\Big Class.jmp" )
);