So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenNachdem ich die ersten beiden Variablen erstellt habe, möchte ich dafür sorgen, dass meine Variablen „angleRefY“ und „angleRefX“ um eine statische Zahl von nullX und nullY versetzt werden. Ich habe versucht, dies auf verschiedene Arten zu tun, wie Sie unten sehen können.

Die einzige Möglichkeit, eine Zahl zu erzeugen, war dieses Skript, aber dann wird die Variable zu 6 statt zu QQ+1, sodass sie immer noch nicht verknüpft sind.
dt << Set Table Variable("TT", dt:QQ + 1);Weiß jemand, wie das gemacht werden könnte? Idealerweise ist NullX = eine Zahl, NullY = eine Zahl, WinkelRefX = NullX + eine Zahl und WinkelRefY = NullY + eine Zahl als dynamische Referenz.
Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenSie könnten die Variable jederzeit einfach in den globalen Namensraum werfen und darauf verweisen.
Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenNun, los geht's. Wenn nur Zeichenfolgenwerte gespeichert werden können, ist es ziemlich klar, dass es sich nicht um eine dynamische Referenz handeln kann. Das Ausführen des Tabellenskripts ist sinnvoll. Es ist auch nur ein zusätzlicher Klick, nicht schlecht. Danke für die Hilfe!!Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenJim,
Vielen Dank für den Tipp, dass Tabellenvariablen Zeichen sind. Das ist definitiv ein Problem, auf das man stoßen kann. Wenn man es nicht weiß, reißt euch die Haare aus.
noch eine kleine Ergänzung.if, dt:QQ="51"; Wenn Sie dann dt:QQ wie folgt umschließen, gibt num(dt:QQ) 51 statt „51“ zurück. Wenn dt:QQ jedoch nicht numerisch ist, wird „fehlend“ zurückgegeben.
Die Alternative dazu, die funktionieren wird,
if ( dt:TT == "51", show("success"), show("didn't quite work"));
ist ungefähr so, was funktioniert, wenn dt:TT numerisch ist
if ( num( dt:TT ) == 51, show("success"), show("didn't quite work"));Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenEine Tabellenvariable ist lediglich eine gespeicherte Zeichenfolge.Selbst wenn Ihr QQ-Wert funktioniert hätte, könnte Ihre IF-Aussage niemals wahr sein.
if ( dt:TT == 51, show("success"), show("didn't quite work"));
dt:TT kann niemals den Wert 51 haben. Alle Tabellenvariablen enden als Zeichenfolgen, damit die IF-Anweisung jemals funktionieren würde, müsste sie wie folgt geschrieben werden:
if ( dt:TT == "51", show("success"), show("didn't quite work"));
Hier ist die Dokumentation aus dem Scripting Guide
Table Variables
Table variables are for storing a single text string value, such as “Notes”. To understand how
variables work, first get its existing value by sending a Get Table Variable message:
dt = Open( "$SAMPLE_DATA/Solubility.jmp" );
dt << Get Table Variable( "Notes" );
"Chemical compounds were measured for solubility in different solvents. This
table shows the log of the partition coefficient (logP) of 72 organic
solutes in 6 aqueous/nonpolar systems."
Now change the existing value of the string using Set Table Variable and then use Get
Table Variable again to check that the string has been updated:
dt << Set Table Variable( "Notes", "Solubility of chemical compounds" );
dt << Get Table Variable( "Notes" );
"Solubility of chemical compounds"
The following example adds two new table variables to a data table:
dt = Open( "$DOCUMENTS/Big Class.jmp" );
myvar = "This is my version of the JMP Big Class sample data.";
dt << Set Table Variable( "key1", myvar );
dt << Set Table Variable( "key2", myvar );
Notice that setting the value creates a new variable only if one by the given name does not
already exist. If you add two table variables with the same name, only one variable is created.
Sie könnten möglicherweise mit einem Tabellenskript tun, was Sie wollen, aber Sie müssten zuerst die Tabellenvariable QQ festlegen und dann das Tabellenskript ausführen, das TT aktualisieren würde
Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenDadurch entsteht ein statischer Offset. Ich hätte klarer sagen sollen, dass das Ziel ein dynamischer Offset ist. Wenn beispielsweise QQ auf 43 neu zugewiesen wird, besteht das Ziel darin, dass TT ganz von selbst auf 44 aufgelöst wird.
Hier ist eine Anpassung Ihres Codes, die anzeigen soll, ob die Variable tatsächlich dynamisch ist oder nicht.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", eval(num(:QQ) + 1));
wait(0);
dt << set table variable("QQ", 50);
if ( dt:TT == 51, show("success"), show("didn't quite work"));Betreff: So referenzieren Sie eine Tabellenvariable innerhalb einer TabellenvariablenHier ist ein einfaches Beispiel.Ihr Code war nah dran, ich musste nur verstehen, dass alle Tabellenvariablen Zeichen sind, und außerdem müssen Sie zum Verweisen auf eine Tabellenvariable nur :QQ verwenden, da der dt bereits das Objekt der Nachricht ist.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", num(:QQ) + 1);