Scripts de table?Ce pourrait certainement être un cas de RTFM, mais j'ai une question:
Dans l'un de mes ensembles de données JMP, j'utilise une fonction comme intermédiaire dans plusieurs colonnes de formule. Pour éviter la duplication du même code (et la duplication de travail si je devais changer cette fonction), j'ai placé la fonction dans un script et je l'ai sauvegardée dans la table de données.
Le problème survient lorsque j'ouvre l'ensemble de données et que je veux ajouter des données. Pour que les colonnes de formule s'exécutent correctement, je dois d'abord cliquer sur la flèche verte située à côté du script pour l'exécuter avant que les colonnes de formule puissent remplir leur tâche. Si le script n'est pas exécuté, la fonction n'est pas définie.
Existe-t-il un moyen d'activer de telles fonctions sous une forme similaire aux variables de table, qui sont automatiquement exécutées lors de l'ouverture du fichier de données?
edit: j'ai joint un exemple de fichier. Le script est dans le script Fonctions utilitaires.
Re: scripts de table?Vérifiez si le script OnOpen répond à vos besoins. il sera (par défaut) invite. Vous pouvez changer la préférence si vous en avez besoin. Notez que le script OnOpen ne s'exécute PAS lorsque le script suivant est exécuté, mais si vous enregistrez la table vide, fermez-la et ouvrez-la à nouveau, le script s'exécutera. Ensuite, l'ajout de lignes à la table fraîchement ouverte pourra utiliser la fonction globale.
New Table( "globalFunctionOnOpen",
Add Rows( 0 ),
New Script( "OnOpen", global:myFunc = Function( {a, b}, a + b ) ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "z", Numeric, "Continuous", Format( "Best", 12 ), Formula( global:myfunc( :x, :y ) ), Set Selected )
)Re: scripts de table? @robhanssen ,
Vous trouverez ci-dessous quelques options à considérer. Ce qui pourrait être le meilleur choix dépend de l'utilisation.
- Refactor: Pour cet exemple, la fonction utilitaire simple peut être réalisée avec une colonne que j'appellerai MTD. La fonction renvoie 1 ou 0. Puis changez vos fonctions: change yearToDate (: month,: Elec Cost) pour être: MTD *: ElecCost. En d'autres termes, utilisez les fonctions de colonne, lorsque cela est possible.
- Faire un complément : quelque chose de spécifique pour la table, appelé UpdateMyTablename, ou un script qui exécute toutes vos fonctions d’utilitaire, appelé RunUtiltyFunc. Remarque Un complément peut être partagé et utilisé par d'autres utilisateurs et exécuté à la demande. Les fonctions sont disponibles pour toutes les sessions, à moins que les éléments globaux ne soient supprimés.
- Créer un script de démarrage Remarque: Si vous utilisez souvent un ensemble de fonctions utilitaires, vous pouvez les définir / inclure / les exécuter via un script de démarrage. Les exemples que j'ai utilisés incluent: une définition de quart spécifique à la fabrication, une fonction de semaine de travail, un logo ou une fonction mathématique couramment utilisée. Du Guide de script JMP> Création d'applications > Add-Ins
Spécifier les scripts de démarrage et de sortie (facultatif)
Cliquez sur l'onglet Script de démarrage pour ajouter un script qui s'exécute au démarrage de JMP (et le complément
départs). Vous pouvez sélectionner un script existant (Exécuter JSL dans ce fichier) ou copier et coller dans un script (Exécuter
cette JSL). Par exemple, vous pouvez fournir un message indiquant à l'utilisateur que le complément est
installé au démarrage.