Chers tous,
Je travaille sur un script dans lequel je dois référencer une fenêtre de rapport. Plus précisément, ce que j'essaie d'automatiser, c'est d'utiliser la fonction Simulate() de certaines estimations de paramètres. Je sais que dans ce rapport, je dois envoyer la commande Simulate à la Number Col Box (8).
Le problème que j'ai est que j'ai une fenêtre d'interface utilisateur principale dans laquelle l'utilisateur peut cliquer sur une boîte de boutons pour simuler les estimations de paramètres ou les amorcer. Le problème est que dans la fenêtre principale (voir l'image ci-dessous), lorsque l'utilisateur clique sur l'une ou l'autre des zones de boutons, il y a une commande dans mon script dans laquelle j'essaie d'obtenir le rapport actuel, qui est ouvert dans une autre fenêtre.

fenêtre de rapport :

Mais, lorsque vous cliquez sur le bouton, la commande JSL obj = Current Report() renvoie une référence à la fenêtre principale de l'interface, PAS au rapport auquel j'essaie réellement de faire référence. Si je clique sur la fenêtre du rapport et que j'exécute ensuite le script, cela fonctionne.
obj = Current Report();
NBSnum = NBS << Get;
RSnum = RS << Get;
obj[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :ColumnA ),
In( :ColumnB )
);
Je n'ai pas réussi à trouver une solution appropriée ni dans l'index de scripts ni à chercher comment référencer correctement le rapport afin que l'utilisateur puisse simplement cliquer sur la case du bouton dans la fenêtre principale.
Toutes les idées de réflexions sont appréciées. J'imagine que cela devrait être facile, mais je suis perplexe en ce moment.
Merci!,
DS
Cela pourrait vous donner quelques idées de ce que vous pourriez faire
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Penicillin.jmp");
dt << Fit Model(
Freq(:Count),
Y(:Response),
Effects(:"ln(dose)"n),
Personality(Generalized Linear Model),
GLM Distribution(Binomial),
Link Function(Logit),
Run
);
report_windows = Get Window List("Report");//; << Get Window Title
report_of_interest = Empty();
For Each({report_window}, report_windows,
outline_title = Try(report_window[OutlineBox(1)] << get title, "");
If(Starts With(outline_title, "Generalized Linear "),
report_of_interest = report_window;
break();
);
);
ref = report_of_interest[OutlineBox(1)] << Get Scriptable Object;
Je pense que vous pouvez également utiliser la liste des fenêtres pour déterminer la fenêtre qui a été ouverte en dernier (si je me souviens bien, c'est la dernière).
Salut @jthi ,
Excellente suggestion, cela a fonctionné - en fait, il suffisait d'obtenir le report_of_interest et je pouvais ensuite appeler le report_of_interest[Number Col Box(8)] et lui envoyer la commande pour Simulate ou Bootstrap. A très bien fonctionné !
Merci pour l'aide!,
DS