Hi. Mir ist aufgefallen, dass beim Versuch, eine Excel-Datei mit einem Skript zu öffnen, der Excel-Importassistent angezeigt wird, wenn der Befehl „Öffnen“ von einer Schaltflächenbox stammt, aber nicht angezeigt wird, wenn sich der Befehl „Öffnen“ auf der obersten Ebene des Skripts befindet. Fürs Protokoll, ich möchte nicht, dass der Assistent in diesem Fall erscheint. Kennt jemand dieses Verhalten und wenn ja, kann ich es beheben?
Ich habe zum Beispiel ein Skript, in dem der Benutzer eine Excel-Datei auswählt und diese dann öffnet. In diesem Fall wird die Excel-Datei problemlos als JMP-Tabelle geöffnet. Wenn ich jedoch stattdessen den Befehl zum Öffnen der Excel-Datei in eine Buttonbox platziere, erscheint der Excel-Assistent. Auch wenn in beiden Fällen genau die gleichen Optionen verwendet werden. Dies wird im folgenden Skript unter Verwendung der angehängten xlsx-Datei demonstriert:
Names Default to Here(1);
//Get location of file:
path = Pick File("Select xlsx Table...",,
{"Excel|xlsx"}, 1,
0
);
If(path == "", Stop());
//Expression to open file:
open_exp = Expr(
Open(path,
Worksheets("Sheet1"),
Use for all sheets(1),
Concatenate Worksheets(0),
Create Concatenation Column(0),
Worksheet Settings(
1,
Has Column Headers(1),
Number of Rows in Headers(1),
Headers Start on Row(1),
Data Starts on Row(2),
Data Starts on Column(1),
Data Ends on Row(0),
Data Ends on Column(0),
Replicated Spanned Rows(0),
Replicated Spanned Headers(0),
Suppress Hidden Rows(1),
Suppress Hidden Columns(1),
Suppress Empty Columns(1),
Treat as Hierarchy(0),
Multiple Series Stack(0),
Import Cell Colors(0),
Limit Column Detect(1),
Column Separator String("-")
)
);
);
//Attempt to open file...works as intended (no Import Wizard)
open_exp;
//Attempt to open file via a button...always results in the Import Wizard.
win = New Window("Temp",
ButtonBox("Open xlsx",
open_exp
)
);Wie Sie sehen können, verwenden beide Methoden genau denselben Befehl mit genau denselben Optionen für dieselbe Datei, aber ich erhalte zwei unterschiedliche Verhaltensweisen.
Wenn die xlsx-Datei über die Buttonbox geöffnet wird, scheinen die Einstellungen des Befehls zum Öffnen ignoriert zu werden. Das heißt, wenn ich die Optionen "Anzahl der Zeilen in Kopfzeilen", "Kopfzeilen beginnen in Zeile", "Daten beginnen in Zeile" usw. ändere, wird die erste verwendete Methode diese neuen Einstellungen berücksichtigen. Die zweite "Buttonbox"-Methode mit dem Import-Assistenten scheint jedoch immer auf die Standardeinstellungen zurückzusetzen.
Fürs Protokoll: Ich möchte meine Einstellungen nicht so ändern, dass JMP niemals den Excel-Assistenten verwendet. Ich möchte es in diesem Fall einfach nicht verwenden, und ich kann nicht verlangen, dass andere Benutzer dieser App dieselben Mods nach ihren Vorlieben erstellen.
Meine Besonderheiten:
JMP Pro 15.2.1
Mac OS Catalina 10.15.7
Excel: Version 16.49
Hoffe jemand kann helfen. Vielen Dank!
Wendy,
Gibt es hierzu ein Update?
Ich habe ein Skript, das einige Schriftarten auf meinen Anzeigeboxen festlegt, aber es stellt sich heraus, dass auf einigen Computern in der Organisation nur sehr wenige Schriftarten installiert sind.
Daher erhalten meine Benutzer viele Popups mit der Aufschrift „Unbekannte Schriftart“. Anstatt alles auf die Standardschriftarten zurückzusetzen, habe ich versucht, es in Try()-Blöcke zu verpacken, aber es hat nicht geholfen.
Craige riet, Batch Interactive(1) zu verwenden, aber es scheint auch nicht zu funktionieren, wie das einfache Beispiel unten zeigt:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
For Each({box, index}, (rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )),
Batch Interactive(1);
Try(box << Set Font( "Agency FF", 13 ));
Batch Interactive(0);
);Irgendeine Idee, warum Batch Interactive(1) in diesem Fall nicht funktioniert und wie man mit den fehlenden Schriftarten umgeht?
Hi, @Craige_Hales .
Batch Interactive() ist nicht dokumentiert, da es als experimentell betrachtet wird.Dem JMP-Entwicklungsteam wurde jedoch vorgeschlagen, die Funktion vollständig zu unterstützen.Ich werde diese Diskussion dieser Anfrage hinzufügen.Der typische Anwendungsfall ist Teil eines Skripts, das von einer interaktiven Aktion ausgeführt wird, z. B. das Klicken auf eine Schaltfläche.
Die Dokumentation der Option "Excel-Assistent" ist an den folgenden Orten enthalten:
Eine Anfrage zur Aufnahme in das Scripting-Index-Beispiel zum Öffnen von Excel-Daten gebe ich gerne weiter.
sehen Ignorieren oder deaktivieren Sie modale JMP-Warnungen für die batchinteractive-Funktion. Die schaltflächengesteuerte Version des Skripts weiß Sie müssen interaktiv sein und versetzt Sie hilfreich in einen interaktiven Assistenten.
Ebenfalls, Umgehen Sie den Excel-Importassistenten im Skript hat ein bessere Antwort .
Schließlich, wenn Sie das gegenteilige Problem haben und den Assistenten möchten, siehe Erzwingen Sie Open(), um den Excel-Assistenten zu verwenden, ohne die Einstellungen zu ändern
@Wendy_Murphrey beide scheinen in der Dokumentation schwer zu entdecken.
edit: verlinken ungerade Variation mit SetFont