Einführung
Mit ein wenig Skripting ist es ganz einfach, allerlei unterhaltsame Dienstprogramme und Tools zu erstellen, um mit JMP Zeit zu sparen. Manchmal helfen Ihnen diese Tools, beim Analyseteil Ihrer Arbeit Zeit zu sparen, und manchmal, wie in diesem Beispiel, helfen sie Ihnen, Zeit bei den alltäglicheren Aspekten der Arbeit zu sparen. Ich habe es kürzlich gesehen dieser hervorragende Blog von @Craige_Hales und fragte mich, ob JMP verwendet werden könnte, um ein Dienstprogramm zum Anzeigen von Verzeichnisbaumkarten zu erstellen, die eine praktische Möglichkeit darstellen, anzuzeigen, welche Dateien Speicherplatz auf einer Festplatte beanspruchen. Es stellt sich heraus, dass JMP dies problemlos tun kann. Es gibt zwar zahlreiche Freeware-Dienstprogramme, mit denen Sie Verzeichnisbaumdiagramme erstellen können, doch es kann eine unterhaltsame Möglichkeit sein, dies selbst in JMP zu tun, um Skripting zu erlernen. Lesen Sie weiter, um herauszufinden, wie einfach es tatsächlich ist.

Verschwenden Sie keine Zeit damit, Code zu schreiben, den JMP für Sie schreiben kann
Das Erste, was Sie bei der Skripterstellung in JMP bedenken sollten, ist, dass für fast alles im Hintergrund bereits Skripts erstellt werden. Daher müssen Sie lediglich das aneinanderreihen, was JMP bereits bereitstellt. Gelegentlich müssen Sie möglicherweise noch etwas tiefer graben. Das unten gezeigte Dienstprogramm mischt ein wenig tatsächliche Codierung mit dem, was JMP bereits kann.
Schritt 1: Machen Sie es in JMP
Für dieses Dienstprogramm benötigen wir eine Liste der Dateien in einem vom Benutzer ausgewählten Ordner (und aller Dateien in allen Unterordnern) sowie die Größe jeder Datei. Sobald wir das haben, benötigen wir eine Baumkarte jeder Datei nach Größe. JMP verfügt mit dem Multiple File Import und dem Graph Builder über Tools für beide Anforderungen. Hier sind die Schritte, um den ersten Proof of Concept ohne Skripting zu erstellen:
1. Daten abrufen: Wählen Sie Datei...Mehrere Dateien importieren. Ich habe das JMP-Installationsverzeichnis ausgewählt, das jeder haben sollte. Nachdem Sie die Schaltfläche „Unterordner einbeziehen“ ausgewählt haben, klicken Sie mit der rechten Maustaste auf die Tabelle in der Mitte und wählen Sie „In Datentabelle umwandeln“.


2. Erstellen der Baumkarte: Starten Sie Graph Builder und ziehen Sie dann den Dateinamen in die Y-Zone und die Dateigröße in die Größenzone. Wählen Sie oben „Treemap“ aus. Wählen Sie als Nächstes im Dropdown-Menü „Layout“ im Bedienfeld die Option „Quadrieren“ aus.

Schritt 2: Fügen Sie die Teile mithilfe von Skripten zusammen
Nachdem wir das Dienstprogramm nun ohne Skripting erstellt haben, müssen wir es nur noch als Skript zusammenstellen. Hier ist ein kleiner Überblick darüber, was wir brauchen, zusammen mit der Vorgehensweise:
- Wähle einen Ordner: Einfach. Kopieren/Einfügen aus dem Skriptindex für den Befehl „Pick Directory()“.
- Tabelle aus dem Import mehrerer Dateien abrufen: Könnte schwierig sein. Wir müssen einer Plattform mitteilen, dass sie einen Teil von sich selbst als Datentabelle exportieren soll.
- Baumkarte erstellen: Einfach. Kopieren/Einfügen aus dem bereits erstellten Diagramm.
Statt nur zwei Schritten, die bisher bei der Verwendung der GUI erforderlich waren, sind es jetzt drei. Der neue Schritt der Ordnerauswahl ist jedoch nicht schwierig. Schauen Sie sich den Scripting-Indexeintrag für an Wählen Sie Verzeichnis Mit dem Befehl können wir den Inhalt kopieren und in unser eigenes Skript einfügen, wobei wir das Skript nur ein wenig modifizieren, um das ausgewählte Verzeichnis in der aufgerufenen Variablen zu speichern Ordner .

Hier ist unser bisheriges Skript mit abgeschlossenem Schritt 1 (und einem Kommentar am Anfang, der uns in drei Jahren daran erinnern soll, worum es ging):
//script to make treemap of directory structure
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
Der nächste Schritt ist etwas kompliziert, aber nach dem Erlernen ist er unkompliziert So erstellen Sie ein Skript für die Berichtsebene (ein krasser Plug für das Exzellente und Freie JMP-Skriptkurs ). Im Wesentlichen muss ich die Tabelle per Skript aus der Mitte des Fensters „Mutiple File Import“ exportieren, anstatt sie per Rechtsklick zu exportieren. Dazu starte ich die Plattform „Mehrere Dateien importieren“ über die GUI, verwende die GUI, um das Skript für die Plattform abzurufen, und verwende dann die GUI, um herauszufinden, wie JMP die Tabelle in der Mitte aufruft. Dies erfordert drei Schritte:
- Skript zum Importieren mehrerer Dateien abrufen: Wählen Sie „Datei...Mehrere Dateien importieren“, wählen Sie einen Ordner, wählen Sie „Unterordner einschließen“ und klicken Sie dann auf die Fensterschaltfläche „Skript im Skript speichern“. Wir haben jetzt ein Skript, das wir am Ende unseres Hauptskripts kopieren und einfügen können.
- Ändern Sie das Skript „Mehrere Dateien importieren“: Ersetzen Sie den zitierten Ordner oben durch das Wort Ordner und ändern Sie die Daten importieren Abschnitt vom Ende bis Fenster erstellen , da wir eigentlich keine Daten importieren wollen. Hinzufügen tempwin = an den Anfang dieses Teils des Skripts, damit wir später auf dieses Fenster zurückgreifen können. Nach diesen Anpassungen sieht das Skript für diesen Abschnitt folgendermaßen aus:
tempwin = Multiple File Import(
<<SET folder=""></SET>
- Exportieren Sie die Datentabelle per Skripting statt per Rechtsklick in der GUI: Wir wissen das tempwin bezieht sich jetzt auf das gesamte Fenster „Mehrere Dateien importieren“, in dem sich die Tabelle mit den Dateigrößen befindet. Wir wissen jedoch noch nicht, wie JMP diese Tabelle nennt. Um das herauszufinden, müssen wir mit der rechten Maustaste auf die Tabelle selbst an einer Stelle klicken, an der wir das Menü „Bearbeiten“ sehen (am Rand funktioniert es; in der Mitte der Tabelle wird das Kontextmenü für die Tabelle anstelle des Menüs „Bearbeiten“ angezeigt). Wählen Sie Bearbeiten...Baumstruktur anzeigen. Klicken Sie dann im Fenster „Baumstruktur“ auf Einträge, bis die Tabelle, auf die wir verweisen möchten, im MFI-Fenster hervorgehoben wird, wie unten gezeigt.

Das bedeutet, dass JMP diese Tabelle TableBox(1) nennt. Nachdem wir das nun wissen, können wir JMP anweisen, Dinge mit dieser Tabelle zu tun, beispielsweise „In Datentabelle umwandeln“, und das können wir tun, indem wir die folgende Zeile zu unserem Skript hinzufügen.
dtFiles = tempwin[Table Box(1)] << Make into data table;
Jetzt müssen Sie nur noch das Skript aus Graph Builder kopieren, das wir bereits erstellt haben (Rotes Dreieck...Skript speichern...In die Zwischenablage), es am Ende unseres Skripts einfügen, und schon sind wir fertig! Unser gesamtes Skript sieht so aus:
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
3. Testen und verbessern
An diesem Punkt funktioniert das Skript wie vorgesehen und wir könnten fertig sein. Aber es gibt einige Dinge, die wir tun können, um das Drehbuch zu verbessern. Erstens enthält der Abschnitt „Mehrere Dateiimport“ viele zusätzliche Zeilen, die wir löschen können. Zweitens empfiehlt es sich, sicherzustellen, welche Datentabelle wir für eine Plattform verwenden möchten, also hinzufügen dtFiles << before Graph Builder trägt dazu bei, dass wir keine Probleme bekommen, wenn wir bei der späteren Ausführung dieses Skripts mehrere Datentabellen geöffnet haben. Sobald wir diese Änderungen vorgenommen haben, sieht das Skript viel kürzer und leichter verständlich aus – es besteht eigentlich nur aus ein paar einfachen Schritten, die aneinandergereiht sind:
Names Default To Here( 1 );<BR />
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
Abschluss
Es lohnt sich, einige wichtige Erkenntnisse aufzulisten:
- JMP nimmt Ihnen bei der Skripterstellung den Großteil der Arbeit ab.
- Das Abrufen von Daten aus Windows, die JMP bereits erstellt, ist eine gute Möglichkeit, JMP zu Tools zu erweitern, die das Leben einfacher machen.
- Das Beste ist vielleicht, dass Sie hier nicht aufhören müssen.
Dieses Tool kann leicht geändert werden, um eine Möglichkeit hinzuzufügen, ausgewählte Dateien/Ordner zu öffnen, nach Datum einzufärben, um große alte Dateien zu finden, nach Ordner/Unterordner zu organisieren oder eine Reihe anderer Änderungen und Verbesserungen vorzunehmen.