J'utiliserais le générateur de graphiques en combinaison avec le curseur pour modifier l'apparence de l'intrigue.Dans l'exemple ci-dessous, je crée une fenêtre avec une carte et une boîte de curseur pour modifier interactivement l'échelle des couleurs. J'utiliserais le script pour créer différentes fenêtres (bien sûr, même avec différentes variables, mais dans l'exemple, ce truc n'est pas nécessaire).Cela ne fonctionne que pour la dernière fenêtre créée, même si j'essaie d'affecter les variables à l'aide d'espaces de noms. J'ai essayé différentes manières mais toutes sans succès. Quelqu'un peut-il 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 vous déplacez dans la bonne direction. Vous avez besoin d'un espace local, et en fonction de la tâche, voici plusieurs options que je recommanderais :
- Étant donné que vous ne modifiez que la légende et que chaque Go sera dans une fenêtre séparée, une méthode simple consiste à utiliser la portée de la fenêtre, l'espace de noms de la fenêtre window: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 case du 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 ayez plusieurs Go avec des Y différents mais le même X. Si vous vouliez limiter X ou exclure une ligne pour Y1 mais pas Y2, alors chaque Go devrait avoir son propre Boîte de contexte de filtre de données() , filtre de données local.
Espérons que le script ci-joint qui utilise la portée de la fenêtre répondra à vos besoins actuels.