Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Je pense que nous aurons besoin d'un peu plus de contexte pour savoir exactement ce que vous faites. Nous devons voir le contexte dans lequel le If () est utilisé? Est-ce dans une nouvelle fenêtre () ou une application JMP ()?
Pouvez-vous poster un script plus complet illustrant le problème?
Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Oui, tu as raison. Voici une version simplifiée du script sur lequel je travaille, qui se concentre uniquement sur la création de boutons. Les boutons sont sur les lignes 37-45. L'utilisation de l'instruction If crée un tableau de bord sans boutons.
Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Bonjour Kelly, je vous prie de ne pas modifier le contenu du bloc Allocate () pour un tableau de bord, à moins que vous ne changiez la valeur d'une chaîne. Changer la structure peut entraîner un tableau de bord (ou une application) qui ne s'exécutera pas correctement. Lorsque j'exécute votre script avec les blocs If () activés, des messages d'erreur apparaissent dans le journal:
en attente: variable = object (); 2 fois dans l'accès ou l'évaluation de 'Plan' [...]
Je ne sais pas ce que vous essayez de faire avec les boîtes conditionnelles, mais Application Builder fonctionnera mieux si vous ajoutez la logique supplémentaire dont vous avez besoin dans les scripts d’application et de module. Ces scripts sont exécutés en tant que fichiers JSL (ou à 99%). so), tandis que l’autre code dans une JMPApp () a une syntaxe très spécifique.
Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Vous pouvez déterminer conditionnellement l'expression évaluée lors du clic sur le bouton avant sa création en appelant Button Box ().
bb expr = If( 1, Expr( ... ), 2, Expr( ... ) );
Button Box( "name", bb expr )
Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Je n'ai pas vu le message d'erreur dans le journal, probablement en raison de versions différentes. J'utilise JMP 14.1.0 en passant.
Il se peut que quelque chose me manque, mais je ne vois pas trop pourquoi vous suggérez d'utiliser le script d'application et de module au lieu de tableau de bord, car ils sont identiques, à l'exception de cette ligne de code:
Mode tableau de bord (1),
J'ai trouvé un moyen de contourner le problème en plaçant l'instruction de condition dans la fonction Initialize () de la fonction JMP App (). Je dois créer un bouton, mais je peux déterminer plus tard si je vais le laisser apparaître sur le tableau de bord ou non.
Button1 << Visibilité (Si (1, "Visible", "Caché"));
Merci!
Re: Comment puis-je obtenir une instruction if fonctionnant dans la fonction Allocate du script créateur de Dashboard?Pour clarifier mon commentaire sur les scripts d'application et de module, Application Builder expose les scripts liés à l'application de niveau supérieur et à chaque module. Vous pouvez y accéder via l'onglet Scripts lorsque vous désactivez le mode Tableau de bord (le texte dit toujours "Tableau de bord" car le document a été démarré en mode Tableau de bord):

Ce script est enregistré intégralement et préservera toutes les modifications que vous apportez. Dans votre exemple d'édition du script Initialize (), vous remarquerez que, si la visibilité du bouton peut sembler correcte la première fois que vous exécutez le script, si vous enregistrez à nouveau le script à partir du générateur Tableau de bord, la ligne sera modifiée comme suit:
Button1 << Visibility("Visible");
Si vous souhaitez utiliser des expressions plus complexes que If (1), vous perdrez probablement votre comportement souhaité. Tout le contenu des sections Allocate (), Organize () et Initialize () est généré à chaque nouvelle sauvegarde du script. Il ne conservera pas les personnalisations si vous utilisez l'interface de générateur pour modifier puis enregistrer le script.
Comment obtenir une instruction if qui fonctionne dans la fonction Allocate du script créateur de Dashboard?Mon tableau de bord crée des boutons à l’aide de la zone de boutons (). Mais lorsque j'utilise une instruction if, cela ne fonctionne plus. Voici la déclaration If:
Si (1, Bouton1 = Boîte à boutons ()); Si (1, Bouton2 = Zone de boutons ());
Tout se compile bien et mon tableau de bord apparaît mais ces boutons manquent.
Merci pour l'aide