Hallo zusammen,
Ich habe das folgende Skript, das Sie auffordert, eine Datendatei zu öffnen, und dann ein Skript, das automatisch ausgeführt wird, sobald ich auf das Feld „OK“ klicke.
Names Default To Here( 1 );
New Window( "Data and Limits file",
<<MODAL></MODAL>
Wenn ich vorhabe, mehr als eine Datendatei (2 Dateien gleichzeitig) zu öffnen und dann ein einzelnes Skript auszuführen, das ihr zugewiesen wird, wie mache ich das mit jsl? Beispielsweise wird „datatable1“ mit „script1“ ausgeführt und „datable2“ wird für die Ausführung mit „script2“ zugewiesen
Danke schön.
Oh Junge!Diese Art von Schnittstelle scheint mit Problemen behaftet zu sein. Was passiert, wenn der Benutzer 10 Datendateien und nur 8 Skripte auswählt oder umgekehrt? Was passiert, wenn der Benutzer 3 verschiedene Skripte (Analysen) für eine Datei ausführen möchte oder 10 Datendateien auswählt, aber für jede die gleichen Analysen ausführen möchte?Ich kenne Ihren Anwendungsfall nicht, ich würde jedoch einen Dialog mit drei Elementen in einer horizontalen Anzeige erstellen: 1) eine Auswahlliste der Dateien in
/Test , 2) ein Schaltflächenfeld namens „Auswählen“ oder „Analysieren“ und 3) rechts eine Auswahlliste mit den Skripten.
Der Benutzer wählt auf jeder Seite die gewünschten Dateien aus und drückt dann die Schaltfläche „Auswählen“. Jede Auswahl würde eine Liste mit zwei Elementen erstellen, eine Liste der ausgewählten Datendateien und eine Liste der Skripte, und diese in einer anderen Liste namens sel_List (oder einem anderen Objekt, einem assoziativen Array oder einer Datentabelle) speichern. Die Absicht besteht darin, dass jedes Skript für jede Datendatei für eine bestimmte Auswahl ausgeführt wird. Wenn Ihre Dateien 1:1 verwendet werden, erlauben Sie in jedem Listenfeld nur eine Auswahl, dh wählen Sie eine Datendatei, eine JSL-Datei aus und klicken Sie dann auf „Auswählen“.
Wenn Sie „OK“ drücken, wird mit der Verarbeitung jeder Auswahl begonnen, wobei verschachtelte for-Schleifen verwendet werden:
- For(i=1, i<=nitems(sel_List), i++,
- For(j=1, j<=nitems(sel_List[i][1]), j++, //open (sel_List[i][1][j] ); //öffne eine Datentabelle
- For(k=1, k<=nitems(selList[i][2]), k++,
- Include(sel_List[i][2][k]); // include wird auf der aktuellen Datentabelle ausgeführt
- Speichern/oder Journal und wahrscheinlich Analysefenster schließen
- ); // Ende für k. Durch die Verwendung von include wird die JSL-Datei ausgeführt, aber nicht geöffnet.
- ); //end for j close(selList[i][1][j]) Schließe die Datentabelle
- ); // Ende für i
Wenn Sie JMP 14 verwenden, kann Multiple File Import() von Nutzen sein.
Ich habe ein Skript angehängt (hat den Namen App, ist aber kein Add-In), das nicht über die oben beschriebene Schnittstelle verfügt, Ihnen aber möglicherweise einige Ideen zum Erstellen des Auswahlfensters gibt. [Es wurde für Kapitel 2 von JSL Companion geschrieben].
Viel Glück!
Wenn wirklich nur ein Skript für jede Datei oder jeden Dateityp zugeordnet ist, würde ich es nicht vom Benutzer auswählen lassen, sondern die Logik mit Namenskonventionen usw. einbauen.
Wie auch immer, meine 2 Cent.