Ausführen von JSL im Hintergrund, ohne dass Fenster auftauchenHallo,
Neuer JSL-Benutzer hier. Ich habe eine verschachtelte for-Schleife, in der ich eine bivariate Plattform verwende, um Rsq für jedes Paar zu extrahieren und eine verkettete Datentabelle zu erstellen, die schließlich alle Rsq-Werte für alle Paare enthält. Ich bin in der Lage, die gewünschte Ausgabe am Ende zu erhalten. Während das Skript ausgeführt wird, erhalte ich jedoch temporäre Tabellen, die angezeigt werden, und ich kann sie scheinbar nicht unsichtbar machen oder schließen (Post-Contenation zu einer anderen Tabelle).
Gibt es eine Möglichkeit, einen Schalter umzulegen und alle Fenster auszuschalten, die auftauchen? Wenn nicht, hat jemand einen Vorschlag, wie man verhindern kann, dass der Bildschirm während des Betriebs Tabellen auftaucht? Die Ausgabe des Skripts während der Ausführung befindet sich im Anhang.
Skript ist unten
For( i = 1, i <= 5, i++,
For (j= 1, j <= 5, j++,
biv = dt << Bivariate(
Y( ParmColumns[i] ),
X( ParmColumns[j] ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Invisible
);
rbiv = biv << Report;
tb = rbiv[Table Box( 1 )];
mcdt = tb << Make Combined Data Table << Show Window( 1 );
if (counter == 0 ,
combineddt = mcdt
);
if (counter > 0 ,
combineddt << Concatenate(
mcdt,
"Append to first table"
);
);
counter ++;
rbiv << Close Window;
mcdt << Invisible;
combineddt << Invisible;
wait(.1);
);
);
// Select and delete all rows that are empty
combineddt << Select Where(:"Column 1" != "RSquare") << Delete Rows;
combineddt << Select Where(:X == :Y) << Delete Rows;
//save stacked data table
combineddt << Save (Output_File );
// Close data table and do not save JMP tables. CSV files are already saved.
Close All( Data Tables, NoSave );

DatentabelleBetreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenVielen Dank @Mark_Bailey . Mir gefällt, wie rationalisiert der Code die multivariate Funktion verwendet, anstatt das, was ich mit einer komplizierten verschachtelten for-Schleife zu tun versucht habe.
Viel zu lernen! 
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenVielen Dank @gzmorgan0
Vielen Dank, dass Sie sich die Zeit genommen haben, auf diese Frage zu antworten 
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenDas Entfernen von wait(...) kann ausreichend sein. Das gibt dem Betriebssystem Zeit, das Fenster anzuzeigen. Wait wird normalerweise nicht benötigt, oder es gibt eine Alternative, die es nicht benötigt, wie <
bearbeiten:
Anstatt von
mcdt << Invisible; // does not work this way
die @gzmorgan0 die richtige Verwendung gezeigt haben, möchten Sie wahrscheinlich die Tische schließen, sobald sie nicht mehr benötigt werden. Ändern Sie es in
close(mcdt,"nosave");
Das Warten würde ich trotzdem auslassen(...) .
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenSie können viel von lernen @gzmorgan0 s Lösung. Es bietet einen allgemeinen Rahmen. In diesem speziellen Fall werde ich JMP jedoch interaktiv verwenden, um das zu bekommen, was ich will. Als JMP ist keine explizite Iteration erforderlich fast berechnet für Sie das gewünschte Ergebnis. Nur ein zusätzlicher Schritt am Ende.
Eigentlich habe ich dafür ein Skript geschrieben, aber die Kommentare sollten den Pfad zum gewünschten Ergebnis angeben.
Names Default to Here( 1 );
// open example with several continuous numeric variables
dt = Open( "$SAMPLE_DATA/Fitness.jmp" ) ;
// obtain names of such variables
cols = dt << Get Column Names( Continuous );
// convert the names to references
cols = dt << Get Column Reference( cols );
// use the references to launch platform with list of correlations
mult = dt << Multivariate( Y( Eval( cols ) ), Pairwise Correlations );
// obtain new data table with correlations
dt = Report( mult )["Pairwise Correlations"][TableBox(1)] << Make Into Data Table;
// convert correlations into linear coefficient of determination
dt << New Column( "R Square", Numeric, Continuous,
Values( (dt:Correlation << Get As Matrix)^2 )
);
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchen@Eines Mannes ,
Sie sollten nach „unsichtbar“ für Berichtsfenster und „unsichtbar“ vs. „privat“ für Datentabellen suchen.
Names Default To Here( 1 );
flag=random Integer(0,1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
if(flag==1,
obj = dt << Bivariate( Y( :Weight ), X( :Height ), Invisible ),
//else
obj = dt << Bivariate( Y( :Weight ), X( :Height ) )
); //end if