Introduction
Avec un peu de script, il est facile de créer toutes sortes d'utilitaires et d'outils amusants pour gagner du temps avec JMP. Parfois, ces outils vous aident à gagner du temps dans la partie analyse de votre travail, et parfois, comme cet exemple, ils vous aident à gagner du temps dans les aspects les plus banals du travail. j'ai vu récemment cet excellent blog par @Craige_Hales et je me demandais si JMP pouvait être utilisé pour créer un utilitaire permettant d'afficher des arborescences de répertoires, qui sont un moyen pratique de voir quels fichiers occupent de l'espace sur un disque dur. Il s'avère que JMP peut facilement le faire. Ainsi, bien qu'il existe de nombreux utilitaires gratuits qui créent des arborescences de répertoires, le faire vous-même dans JMP peut être une façon amusante d'apprendre les scripts. Lisez la suite pour découvrir à quel point c'est facile.

Ne perdez pas votre temps à écrire du code que JMP peut écrire pour vous
La première chose à garder à l'esprit lors de la création de scripts dans JMP est qu'il est déjà en train de créer des scripts pour presque tout en arrière-plan. Par conséquent, tout ce que vous avez à faire est d'enchaîner ce que JMP fournit déjà. Parfois, vous devrez peut-être encore creuser un peu plus. L'utilitaire présenté ci-dessous mélange un peu de codage réel avec ce que JMP fait déjà.
Étape 1 : Faites-le dans JMP
Pour cet utilitaire, nous avons besoin d'une liste de fichiers dans un dossier sélectionné par l'utilisateur (et de tous les fichiers dans tous les sous-dossiers), ainsi que de la taille de chaque fichier. Une fois que nous avons cela, nous avons besoin d'un treemap de chaque fichier par taille. JMP dispose d'outils pour ces deux besoins, via l'importation de fichiers multiples et le générateur de graphiques. Voici les étapes pour faire la première preuve de concept sans aucun script :
1. Obtenir les données : Sélectionnez Fichier...Importer plusieurs fichiers. J'ai sélectionné le répertoire d'installation de JMP, ce que tout le monde devrait avoir. Après avoir sélectionné le bouton Inclure les sous-dossiers, cliquez avec le bouton droit sur le tableau au milieu et sélectionnez Transformer en tableau de données.


2. Réalisation du treemap : Lancez Graph Builder, puis faites glisser File Name vers la zone Y et File Size vers la zone Size. Sélectionnez Treemap en haut ; sélectionnez ensuite Squarify dans la liste déroulante Disposition du panneau de configuration.

Étape 2 : Assemblez les pièces avec le script
Maintenant que nous avons créé l'utilitaire sans script, il ne nous reste plus qu'à l'assembler en tant que script. Voici un petit aperçu de ce dont nous avons besoin, ainsi que de la marche à suivre :
- Choisir le dossier: Facile. Copiez/collez à partir de l'index de script pour la commande Pick Directory().
- Obtenir la table à partir de l'importation de plusieurs fichiers : Peut-être délicat. Nous devons indiquer à une plate-forme d'exporter une partie d'elle-même sous forme de table de données.
- Créer une arborescence : Facile. Copier/coller depuis le graphique déjà réalisé.
Au lieu des deux étapes requises auparavant lors de l'utilisation de l'interface graphique, il y en a maintenant trois. Cependant, la nouvelle étape de choix d'un dossier n'est pas difficile. En regardant l'entrée de l'index de script pour le Choisir le répertoire commande, nous pouvons copier et coller ce qu'il y a dans notre propre script, en modifiant un peu le script pour stocker le répertoire choisi dans la variable appelée dossier .

Voici notre script jusqu'à présent, avec l'étape 1 terminée (et un commentaire au début pour nous rappeler dans trois ans de quoi il s'agissait):
//script to make treemap of directory structure
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
La prochaine étape est un peu compliquée, mais c'est simple après avoir appris comment créer un script pour la couche de rapport (un plug flagrant pour l'excellent et gratuit Cours de création de scripts JMP ). Essentiellement, ce que je dois faire est d'exporter la table à partir du milieu de la fenêtre d'importation de fichiers multiples via un script, au lieu de l'exporter via un clic droit. Pour ce faire, je lance la plate-forme Importer plusieurs fichiers via l'interface graphique, utilise l'interface graphique pour obtenir le script de la plate-forme, puis utilise l'interface graphique pour découvrir ce que JMP appelle la table du milieu. Cela prendra trois étapes :
- Obtenir le script pour importer plusieurs fichiers : Sélectionnez Fichier...Importer plusieurs fichiers, choisissez un dossier, sélectionnez Inclure les sous-dossiers, puis appuyez sur le bouton de la fenêtre Enregistrer le script dans le script. Nous avons maintenant un script que nous pouvons copier/coller à la fin de notre script principal.
- Modifiez le script Importer plusieurs fichiers : Remplacez le dossier cité en haut par le mot dossier et changer le Importer des données section de la fin à Créer une fenêtre , puisque nous ne voulons en fait importer aucune donnée. Ajouter tempwin = au début de cette partie du script, afin que nous puissions nous référer à cette fenêtre plus tard. Après ces ajustements, le script de cette section ressemble à ceci :
tempwin = Multiple File Import(
<<SET folder=""></SET>
- Exportez la table de données via un script au lieu d'un clic droit dans l'interface graphique : Nous savons que tempwin fait maintenant référence à l'intégralité de la fenêtre Importer plusieurs fichiers, qui contient le tableau des tailles de fichiers, mais nous ne savons pas encore comment JMP appelle ce tableau. Pour le savoir, nous devons cliquer avec le bouton droit sur la table elle-même à un endroit où nous voyons le menu Edition (près du bord fonctionne ; au milieu de la table, le menu contextuel de la table s'affiche au lieu du menu Edition). Choisissez Modifier... Afficher l'arborescence. Ensuite, dans la fenêtre de l'arborescence, cliquez sur les entrées jusqu'à ce que la table à laquelle nous voulons nous référer soit mise en surbrillance dans la fenêtre MFI, comme indiqué ci-dessous.

Cela signifie que TableBox(1) est ce que JMP appelle cette table. Maintenant que nous savons cela, nous pouvons dire à JMP de faire des choses avec cette table, comme « Transformer en table de données », et nous pouvons le faire en ajoutant la ligne ci-dessous à notre script.
dtFiles = tempwin[Table Box(1)] << Make into data table;
Maintenant, il ne reste plus qu'à copier le script de Graph Builder que nous avons déjà créé (Red Triangle...Save Script...To Clipboard), le coller à la fin de notre script, et nous avons terminé ! Notre script entier ressemble à ceci :
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
3. Testez et améliorez
À ce stade, le script fonctionne comme prévu et nous pourrions en finir. Mais il y a certaines choses que nous pouvons faire pour améliorer le script. Tout d'abord, la section Importation de fichiers multiples contient de nombreuses lignes supplémentaires que nous pouvons supprimer. Deuxièmement, c'est une bonne pratique d'être sûr de la table de données que nous voulons utiliser pour une plate-forme, donc d'ajouter dtFichiers << before Graph Builder aide à garantir que nous ne rencontrerons pas de problèmes si nous avons plusieurs tables de données ouvertes lors de l'exécution ultérieure de ce script. Une fois que nous avons apporté ces modifications, le script semble beaucoup plus court et plus facile à comprendre -- il ne s'agit en fait que de quelques étapes simples enchaînées :
Names Default To Here( 1 );<BR />
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
Conclusion
Il convient d'énumérer quelques points clés :
- JMP fait la majeure partie du travail pour vous lors de la création de scripts.
- Obtenir des données à partir de fenêtres déjà créées par JMP est un bon moyen d'étendre JMP à des outils qui facilitent la vie.
- Mieux encore, vous n'avez peut-être pas besoin de vous arrêter ici.
Cet outil peut facilement être modifié pour ajouter un moyen d'ouvrir les fichiers/dossiers sélectionnés, de colorer par date pour trouver de gros fichiers anciens, d'organiser par dossier/sous-dossier, ou un certain nombre d'autres modifications et améliorations.