Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?Salut tout le monde,
J'ai un script JSL qui permet à l'utilisateur de choisir un ou plusieurs fichiers de données, puis de concatène ces fichiers dans une table de données. Le script crée ensuite un tableau de bord pour la table de données.
Pour générer le JSL pour le tableau de bord, j'ai d'abord créé manuellement un tableau de bord (Fichier -> Nouveau -> Nouveau tableau de bord), en y ajoutant des graphiques générés manuellement dans Dashboard Builder ; J'ai ensuite copié le code du tableau de bord depuis Dashboard Builder (flèche rouge -> Enregistrer le script -> Dans la fenêtre du script) et je l'ai collé à la fin de mon script JSL.
Tout cela fonctionne très bien - cependant, mon objectif est d'enregistrer le tableau de bord généré dans le panneau Scripts de la table de données, de la même manière que choisir la flèche rouge -> Enregistrer le script -> Dans la table de données depuis Dashboard Builder enregistrera un tableau de bord. au tableau de données. Je préférerais également que le tableau de bord n'apparaisse pas automatiquement (l'utilisateur doit cliquer dessus dans le panneau Scripts lorsqu'il souhaite le voir).
J'ai essayé de rechercher le PDF de référence JSL et les discussions de la communauté, mais je n'ai pas trouvé ce dont j'avais besoin. Est-ce que quelqu'un peut-il me montrer la bonne direction? Le code nettoyé est joint, omettant la génération de la table de données.
Merci!
Andy
Automatisation et scriptsmacOSles fenêtresRe : Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?Je n'utilise pas de générateur d'applications et je construirais le script d'une manière différente. mais peut-être que @DonMcCormack a des idées ? Cela pourrait vous donner quelques idées sur ce que vous pourriez faire . Pourquoi n'utilisez-vous pas déjà App Builder ? - (2023-US-30MP-1401) (sur le même sujet Scripters Club 2024 : Session 1 - Application Builder )
Re : Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?Vous pouvez essayer quelque chose comme ceci :
dashboardExpr = Expr(
/* Code for JMP App goes here */
);
Eval(Substitute(
Expr(Current Data Table() << New Script("Dashboard",dbExpr)),
Expr(dbExpr),Name Expr(dashboardExpr)
));
Remplacez Current Data Table() par la table de référence à laquelle vous ajoutez le tableau de bord. Il se peut que d'autres variables doivent être initialisées avant l'exécution du tableau de bord. Le titre de la variable à la ligne 17 posait des problèmes, tout comme la goutte inexistante autour de la ligne 24 (même si je peux comprendre pourquoi cela n'a pas été inclus si vous avez choisi de le laisser de côté).
Re : Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?Merci Don! Cela fonctionne parfaitement (et vous avez raison à propos du « titre » et du blob).
Ré: Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?@DonMcCormack
Salut Don,
J'utilise votre solution maintenant.
Cependant, savez-vous pourquoi il n'est pas possible de résoudre avec Eval et Expr ?
Je pensais que je commençais juste à comprendre Eval et Eval Expr mais cela ne fonctionnait pas avec "Nouveau script"
Ré: Comment ajouter un tableau de bord créé dynamiquement au panneau Scripts d'une table de données ?Comment l'as-tu utilisé ?
Modifier:
J'espère que cela donne quelques idées (je suppose que cela fonctionnerait de la même manière avec l'expression du tableau de bord)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names);
gb_expr = Expr(Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
));
Eval(Substitute(
Expr(dt << New Script("GB1", myexpr)),
Expr(myexpr), Name Expr(gb_expr)
));
Eval(EvalExpr(
dt << New Script("GB2", Expr(Name Expr(gb_expr)));
));