J'utiliserais le générateur de graphiques en combinaison avec un curseur pour modifier l'apparence du tracé.Dans l'exemple ci-dessous, je crée une fenêtre avec une carte et un curseur pour modifier de manière interactive l'échelle des couleurs. J'utiliserais le script pour créer différentes fenêtres (bien sûr, même avec des variables différentes, mais dans l'exemple, ce n'est pas nécessaire).Cela fonctionne uniquement pour la dernière fenêtre créée, même si j'essaie d'attribuer les variables à l'aide d'espaces de noms. J'ai essayé différentes manières mais sans succès. Quelqu'un peut-il m'aider ?
Names Default To Here(1);
dtable= Open("$SAMPLE_DATA/SAT.jmp");
name="Map";
For(k=1, k<=10, k++,
If(Namespace Exists(Eval("ns" || name || Char(k))),
//If(k = 10,
// hanlde the max number of allowed namespaces
//);
,
name= name || char(k);
nsRef = New Namespace(Eval("ns" || name ));
Break();
)
);
nsRef << Insert("column", "% Taking (2004)");
nsRef << Insert("min", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("max", col max(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmin", col min(column(dtable, "% Taking (2004)")));
nsRef << Insert("slmax", col max(column(dtable, "% Taking (2004)")));
datacolumn=column(dtable, nsRef:column );
nsRef << Insert("slider1",
slider box(nsRef:min,nsRef:max,nsRef:slmax,
title= Current Window() << Get Window Title;
ns = NameSpace(Eval("ns" || title));
slmin=ns:slmin;
slmax=ns:slmax;
scale=Matrix( {slmin,slmax} );
scale=scale`;
ns:gb <<SENDTOREPORT></SENDTOREPORT>
Vous avancez dans la bonne direction. Vous avez besoin d'un espace local, et en fonction de la tâche, voici plusieurs options que je recommanderais :
- Puisque vous modifiez uniquement la légende et que chaque Go se trouvera dans une fenêtre distincte, une méthode simple pour ce faire consiste à utiliser la portée de la fenêtre, l'espace de noms de la fenêtre. fenêtre: slider1 = SliderBox() . Voir le script ci-joint.
- Si seule la légende est modifiée et si vous avez plusieurs Go dans la fenêtre, utilisez un < pour la boîte de curseur qui utilise une référence relative au Go correspondant. Si le GB et HListBox (TextBox, Sliderbox) sont imbriqués dans une VListBox, la fonction serait quelque chose comme (this<< parent)<
- Supposons que vous disposiez de plusieurs Go avec des Y différents mais le même X. Si vous souhaitez limiter X ou exclure une ligne pour Y1 mais pas pour Y2, alors chaque Go doit avoir son propre Zone de contexte du filtre de données() , filtre de données local.
Espérons que le script ci-joint qui utilise la portée des fenêtres répondra à vos besoins actuels.