Utilizzerei il generatore di grafici in combinazione con il dispositivo di scorrimento per modificare l'aspetto della trama.Nell'esempio sotto creo una finestra con una mappa e uno slider box per modificare in modo interattivo la scala dei colori. Vorrei utilizzare 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 provi ad assegnare le variabili utilizzando i namespace. Ho provato in modi diversi ma 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 direzione corretta. Hai bisogno di uno spazio locale e, a seconda dell'attività, ci sono diverse opzioni che consiglierei:
- Dato che stai modificando solo la legenda e ogni GB si troverà in una finestra separata, un metodo semplice per farlo è utilizzare 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 al GB corrispondente. Se GB e HListBox (TextBox, Sliderbox) sono nidificati in un VListBox la funzione sarebbe qualcosa come (this<< parent)<
- Supponiamo di avere più GB con Y diversi ma la stessa X. Se desideri limitare X o escludere una riga per Y1 ma non 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.