Fehlende Datentabelle - automatisch geschlossen?Mache ich hier etwas falsch oder ist das ein Bug?Führen Sie den folgenden Code entweder in JMP 14 oder 15 einen Befehl nach dem anderen aus und am Ende sind drei Tabellen geöffnet.Führen Sie alles auf einmal aus, und eine Tabelle wird entweder nie in der GUI geöffnet oder automatisch geschlossen, was durch einen Fehler in der letzten Zeile angezeigt wird.
// This script should open 2 tables and create a third based on the first two.
// Run script line by line and all three are open at the end. Run all at once
// and the first table, dtDD, is not open when the script is finished.
names default to here(1);
dtDD = Open("$Sample_Data/Big Class.jmp");
dtDDOld = Open("$Sample_Data/Big Class Families.jmp");
if(left(jmpversion(),2) == "15",
dtDDOld << Delete Row( 1 ); //not sure why this didn't delete a row in JMP 14...
,
dtDDOld << select where( row() == 1 );
dtDDOld << delete rows();
);
//find new tags
dtDDNew = New SQL Query(
Version( 130 ),
Connection( "JMP" ),
QueryName( "New Query" ),
Select(
Column( "name", "t1" ),
Column( "age", "t1" ),
Column( "sex", "t1" ),
Column( "name", "t2", Alias( "name 2" ) )
),
From(
Table( dtDD << Get Name, Alias( "t1" ) ),
Table(
dtDDOld << Get Name,
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "name", "t1" ), Column( "name", "t2" ) )
)
)
),
Where(
Custom(
"t2.\!"name\!" is null and (t1.\!"name\!" is not null)",
UI( Custom( Base( "Continuous" ) ) )
)
)
) << Run;
dtDD << bring window to front;
Betreff: Fehlende Datentabelle - automatisch geschlossen?Bisher bin ich nur auf dieses Problem gestoßen, wenn zukünftige Anweisungen versucht werden, ausgeführt zu werden, bevor die erste abgeschlossen ist.In diesem Fall wird die erste Anweisung entweder nie wirklich abgeschlossen (Daten werden geladen, nur nicht über diese Variable verfügbar gemacht); oder die Tabelle wird nachträglich geschlossen, was nicht Teil des Skripts ist.Das Hinzufügen von Wartezeit behebt es jedoch. Mal sehen, was der JMP-Support davon hält.
Vielen Dank
Betreff: Fehlende Datentabelle - automatisch geschlossen?Der JMP-Interpreter verarbeitet die JSL-Anweisungen nacheinander und wartet nicht unbedingt darauf, dass die obigen Schritte im Code abgeschlossen sind, bevor nachfolgende Anweisungen verarbeitet werden. Das heißt, einige Anweisungen werden im Hintergrund ausgeführt, während die JSL mit der Verarbeitung fortfährt.Ich glaube, das ist, was passiert. Sie können die JSL auf verschiedene Weise zum Warten zwingen.Verwendung einer
Warten (0);
oder
dtDD << Formeln wiederholen;
zwingt JSL, vor der Verarbeitung anzuhalten.
Ich habe ein Wait(0) nach den Open()-Funktionen für die Big Class- und Big Class-Familien und auch kurz vor dem platziert
dtDD << Fenster nach vorne bringen;
Das Ergebnis war die ordnungsgemäße Ausführung Ihres JSL.