JSL, um die Registerkarte „Projekt“ auszuwählen und das Skript auszuführenLeute,
Ich bin ganz neu in der Arbeit mit Projekten und habe einige Schwierigkeiten, verschiedene Dinge zu erreichen, die ich routinemäßig in JSL erledige.Mein Projekt verfügt über 4 Datentabellen und ich versuche, eine davon auszuwählen und dann ein bestimmtes Skript auszuführen, das in dieser Datentabelle aufgeführt ist.Ich habe mir die Hilfeinformationen für Projekte angesehen, weiß aber nicht genau, wie ich das bewerkstelligen kann.Für Vorschläge/Ideen wäre ich sehr dankbar.
Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsAußerdem sollten Sie nicht für jeden Block separate Run Script-Nachrichten benötigen. Ich habe das nur zur besseren Lesbarkeit gemacht. Möglicherweise benötigen Sie jedoch den Aufruf „wait(0)“, wenn Sie versuchen, etwas zu öffnen und dann sofort den Fokus darauf zu setzen, da der Tab andernfalls möglicherweise noch nicht vollständig geladen ist, wenn wir versuchen, ihn nach vorne zu bringen.Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des Skripts
@terapin schrieb:
Verdammt,
Das war einfach.Mir war nicht bewusst, dass ich für jeden Befehl oder Befehlssatz „Skript ausführen“ verwenden musste.
Es funktioniert jetzt sehr gut, außer dass eine Variable als Fenster- oder Datentabellenname übergeben werden kann. Ich verwende JSL, um Daten von zahlreichen Websites zu verarbeiten, und ich ziehe die Website-ID aus der geöffneten Datendatei und verwende diese dann in vielen anderen Abschnitten von JSL, um die Datendateien zu speichern, umzubenennen und in standortspezifische Verzeichnisse zu verschieben.Leider kann ich meine Variable stn nicht wie unten gezeigt an die Fenster- oder Datentabellennamen übergeben.Ist dies mit Projekten möglich, und wenn ja, haben Sie einen Vorschlag, wie dies zu erreichen ist?
Projekt << Run Script( Get Data Table( stn || " Amp_Hr Per Day" ) ); << Run Script( "OP of Parameters w/ PAR" );
Projekt << Skript ausführen (Fenster abrufen( stn || " Amp_Hr Pro Day" ) << Fenster nach vorne bringen() );
Es ist beabsichtigt, dass Projekte ihre eigenen JSL-Bereiche haben, aber das kann zu Problemen führen, wenn versucht wird, Variablen zwischen ihnen auszutauschen. Eine Möglichkeit hierfür ist die Verwendung von Eval/EvalExpr. Es ist nicht schön, aber es funktioniert:
win name = "Big Class";
Eval(
Eval Expr(
project << Run Script( Get Window( Expr( win name ) ) << Bring Window To Front() )
)
);
Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsVerdammt,
Das war einfach.Mir war nicht bewusst, dass ich für jeden Befehl oder Befehlssatz „Skript ausführen“ verwenden musste.
Es funktioniert jetzt sehr gut, außer dass eine Variable als Fenster- oder Datentabellenname übergeben werden kann. Ich verwende JSL, um Daten von zahlreichen Websites zu verarbeiten, und ich ziehe die Website-ID aus der geöffneten Datendatei und verwende diese dann in vielen anderen Abschnitten von JSL, um die Datendateien zu speichern, umzubenennen und in standortspezifische Verzeichnisse zu verschieben.Leider kann ich meine Variable stn nicht wie unten gezeigt an die Fenster- oder Datentabellennamen übergeben.Ist dies mit Projekten möglich, und wenn ja, haben Sie einen Vorschlag, wie dies zu erreichen ist?
Projekt << Run Script( Get Data Table( stn || " Amp_Hr Per Day" ) ); << Run Script( "OP of Parameters w/ PAR" );
Projekt << Skript ausführen (Fenster abrufen( stn || " Amp_Hr Pro Day" ) << Fenster nach vorne bringen() );
Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsVerwenden Sie Project << Run Script(), um JSL innerhalb des Projekts von außerhalb auszuführen:
// 1. Create a project and open two data table in it
p = new Project();
p << Run Script(
Open("$SAMPLE_DATA/Big Class.jmp");
Open("$SAMPLE_DATA/Airline Delays.jmp");
);
// 2. Run the a saved script from each table
p << Run Script(
Get Data Table("Big Class") << Run Script("Distribution");
Get Data Table("Airline Delays") << Run Script("Graph Builder Heatmap");
);
// 3. Optionally, make Big Class the visible tab
wait(0);
p << Run Script(
Get Window("Big Class") << Bring Window To Front();
);
Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsHallo Aaron,
Ich versuche, JSL zu verwenden, um mit, aber außerhalb eines bestehenden Projekts zu arbeiten.Das heißt, ich möchte bei einem geöffneten Projekt ein externes Skript ausführen, das eine bestimmte Registerkarte auswählt und ein mit dieser Registerkarte gespeichertes Skript ausführt.Zum Beispiel mit den Datentabellen Big Class, Abrasion und Bicycle, die in ein Projekt verschoben wurden (ich habe versucht, meine archivierte Version dieses Projekts zu senden, aber die Fehlermeldung „Der Inhalt des Anhangs stimmt nicht mit seinem Dateityp überein“) möchte ich Eine JSL-Datei, die außerhalb des Projekts gespeichert wird, um das Projekt zu öffnen. Wählen Sie die Registerkarte „Big Class“, führen Sie das Verteilungsskript aus, wechseln Sie zu „Tab Bicycle“ und führen Sie das Skript „Modell anpassen“ aus.Ich kann das Projekt problemlos öffnen, aber den Rest schaffe ich nicht.
Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsMit sehr wenigen Ausnahmen funktionieren JSL-Skripte innerhalb von Projekten genauso wie zuvor. Wenn Sie also bereits über eine JSL verfügen, die genau das tut, was Sie benötigen, ist die Ausführung dieser JSL über eine Projektregisterkarte höchstwahrscheinlich alles, was Sie tun müssen. Wenn es Fehler gibt oder es nicht wie erwartet funktioniert, kann ich versuchen, Ihnen dabei zu helfen, diese herauszufinden.Betreff: JSL zum Auswählen der Registerkarte „Projekt“ und Ausführen des SkriptsZur Verdeutlichung: Möchten Sie JSL in Projekten verwenden, um etwas zu tun, was Sie normalerweise mit JSL außerhalb von Projekten tun, oder möchten Sie die GUI-Schnittstelle in Projekten verwenden, um das zu tun, was Sie normalerweise in JSL tun?