Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationBonjour à tous,
J'essayais d'ajouter la ligne suivante dans mon script de création d'application pour ajouter des lignes de référence aux rapports :
Report1[Axis Box(1)] << Add Ref Line( 100, "Solid", "Medium Dark Red", "LL", 10 );
Cependant, cela ne fait rien.Je ne reçois aucun avertissement ni erreur dans le journal. J'ai vérifié l'arborescence d'affichage et j'accède à la bonne boîte d'axe. Si je change l'index de la boîte d'axe, cela génère une erreur. Je ne vois pas pourquoi cela ne devrait pas fonctionner. Est-ce un bug ?
Étrangement, en jouant avec, j'ai modifié quelque chose qui a produit une erreur sur cette ligne, mais j'ai réussi à ajouter la ligne ref. Une fois. Réexécuter la même chose n’a pas ajouté la ligne à l’avenir.
Depuis, je l'ai remplacé par un bouton sur lequel vous appuyez dans le rapport pour ajouter la ligne de référence, qui a fonctionné du premier coup en utilisant exactement la même ligne de script, donc je n'ai pas besoin de toute urgence d'une solution. Je me demandais simplement si c'était un bug.
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationBonjour à tous, je suis heureux d'annoncer que le problème initial signalé ici a été résolu dans la dernière version de JMP (15). Vous ne devriez plus avoir besoin du wait(0) pour que cela fonctionne. Pour ceux qui utilisent d’anciennes versions de JMP, il s’agit d’une excellente solution de contournement.
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationDans ce cas, Wait(0) permet à la fenêtre de s'afficher à l'écran, ce qui définit également « l'état initial » qui détermine si les personnalisations sont enregistrées dans le script.Pour des raisons de performances, certains événements sont traités de manière asynchrone pour permettre aux scripts de continuer à s'exécuter.
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationMerci comme d'habitude à tous !!
Dan, pouvez-vous expliquer ce qu'est exactement l'ajout de Wait(0); la ligne le fait-elle ? (c'est-à-dire mettre à jour les affichages ?)
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationJ'ai également essayé cela en utilisant Big Class comme exemple, et j'ai peut-être compris ce qui se passe.Mon application est jointe et elle fonctionne au départ.Cependant, si vous activez le filtre de données local, la ligne disparaît.Le LDF fonctionne en réexécutant la plateforme, et dans ce cas les personnalisations de la ligne de référence ne sont pas conservées.Cela se produit à la fois à l’intérieur et à l’extérieur d’App Builder.
Le problème est que les scripts de plate-forme (tels qu'enregistrés depuis LIRT > Save script > To Script Window) enregistrent uniquement les personnalisations qui ont été appliquées depuis l'affichage initial de la plate-forme.C'est l'un des cas où l'on ajoute la ligne :
Wait(0);
AVANT le code qui accède au rapport permettra à la plateforme de s'afficher une fois avant d'ajouter la ligne de référence.Dans le .jmpappsource ci-joint, j'ai commenté cette ligne afin que vous puissiez la rajouter pour tester la solution.
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationL'objectif est-il d'ajouter une seule ligne de référence, ou l'objectif est-il d'ajouter des lignes de référence de manière dynamique ?

Parfois, je dois ajouter des lignes de référence basées sur les données d'un tableau. Dans ce cas, l’ajout de ce script pour personnaliser le graphique constitue l’astuce.
//example<BR />For Each Row(
If( :ref > 0,
V Line( Row(), Col Minimum( :weight ) - 10, Col Maximum( :weight ) + 10 )
)
)
Dans un contexte un peu plus large, voici à quoi cela ressemble.
dt=open("$Sample_Data\Big Class.jmp");
dt<< New Column( "ref",
Set Values(
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
)
);
dt<<NEW column=""> 0,
V Line(
Row(),
Col Minimum( :weight ) - 10,
Col Maximum( :weight ) + 10
)
)
)
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
);
</NEW>Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationMerci pour la clarification.Dans ce cas, votre code devrait vraiment fonctionner.J'ai réalisé un scénario de test avec un rapport à sens unique dans une application de création d'applications, et cette ligne de code a parfaitement fonctionné.Cela vaut peut-être la peine d'appeler le support technique ?
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationDésolé, je n'ai pas fourni plus de contexte. Report1 est un rapport à sens unique alloué dans le générateur d'applications. La variable existe.
J'ai pu accéder au framebox du même rapport pour ajouter une légende en utilisant :
Report1[FrameBox(1)] << Row Legend(
Tissue,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 ));
Je pense donc que la référence fonctionne.
J'ai cependant essayé la ligne que vous avez suggérée et elle n'a rien produit. Aucune erreur ou avertissement, aucune ligne de référence.
Re : Ajouter une ligne de référence dans le rapport via le script du générateur d'applicationComment Report1 est-il défini ?Est-ce le nom du module ?
En règle générale, pour accéder aux zones d'affichage sans nom dans une fenêtre du module Application Builder, vous devez obtenir une référence à la fenêtre en utilisant quelque chose comme :
Report1 = this module instance << Get box
Essayez de remplacer la ligne que vous avez par ceci pour voir si c'est là le problème :
(this module instance << get box)[Axis Box(1)] << Add Ref Line( 100, "Solid", "Medium Dark Red", "LL", 10 );