Userei il generatore di grafici in combinazione con il dispositivo di scorrimento per modificare l'aspetto della trama.Nell'esempio seguente creo una finestra con una mappa e un box di scorrimento per modificare in modo interattivo la scala dei colori. Userei lo script per creare finestre diverse (ovviamente anche con variabili diverse, ma nell'esempio questa roba non è necessaria).Funziona solo per l'ultima finestra creata, nonostante tenti di assegnare le variabili usando gli spazi dei nomi. Ho provato in modo diverso ma tutto senza successo. Qualcuno può aiutare?
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>
Ti stai muovendo nella giusta direzione. Hai bisogno di uno spazio locale e, a seconda dell'attività, ecco diverse opzioni che consiglierei:
- Dato che stai solo cambiando la legenda e ogni GB sarà in una finestra separata, un metodo semplice per farlo è usare l'ambito della finestra, lo spazio dei nomi della finestra finestra:slider1 = SliderBox() . Vedi lo script allegato.
- Se viene modificata solo la legenda e se nella finestra sono presenti più GB, utilizzare a < per la casella di scorrimento che utilizza un riferimento relativo ai GB corrispondenti. Se GB e HListBox(TextBox, Sliderbox) sono nidificati in un VListBox, la funzione sarebbe qualcosa del tipo (this<< parent)<
- Supponiamo di avere più GB con Y diverse ma la stessa X. Se si desidera limitare X o escludere una riga per Y1 ma non per Y2, ogni GB dovrebbe avere il proprio Casella di contesto del filtro dati() , filtro dati locale.
Si spera che lo script allegato che utilizza l'ambito della finestra soddisfi le tue esigenze attuali.