Impedisce lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneC'è un modo per impedire a una finestra di scorrere fino alla posizione delle caselle aggiunte?Nello script di esempio seguente, premendo il pulsante "Aggiungi Spline" verrà aggiunta una nuova spline con metà del valore lambda rispetto a quella precedente, e dopo aver premuto il pulsante circa 6 volte, la finestra scorre dal grafico alla posizione del spline di controllo appena aggiunta.
Questo è un esempio: la soluzione NON È semplicemente rimuovere le altre carte di controllo dal display.Nel mio codice attuale, rimuovo la carta di controllo con il comando biv << (Curve[1] << Report( 0 )), ma scorre comunque.
Qualsiasi aiuto sarebbe molto apprezzato.
Grazie!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneL'opzione n. 2 di aggiungere manualmente la spline ha funzionato. JMP ha una pratica funzione per calcolare le spline, quindi questo lo ha reso molto semplice.Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneHai pensato di utilizzare un rapporto a schede con un selettore?Vedi l'immagine qui sotto.Oppure stai creando una pagina con più grafici, ad esempio affiancati, per ciascuna vista.
Inoltre, altre alternative sono:
- Crea la tua bivariata con due spline con riquadri compressi (nascosti). Finché l'utente non seleziona un valore o il pulsante, imposta la larghezza della linea della seconda spline su 0 in modo che non sia visibile. Consenti all'utente di selezionare quale dovrebbe essere il valore della seconda spline. In altre parole, non stai aggiungendo un sacco di spline, ma invia semplicemente un messaggio per modificare il fattore di levigatura di uno. Ciò eliminerebbe qualsiasi salto.
- Modificare il comportamento del pulsante Aggiungi spline per aggiungere una curva utilizzando Aggiungi script grafico, invece di utilizzare i messaggi dell'interfaccia utente Adatta Spline.Ciò richiederebbe uno scripting aggiuntivo: utilizzare le funzioni per ottenere coefficienti, valutare, scegliere un colore, aggiungere lo script grafico,
L'opzione n. 1 sarebbe la più semplice
Il dispositivo di scorrimento dell'interfaccia utente di JMP anticipa ciò che stai cercando di emulare, l'utente può regolare il fattore di levigatura.

Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneGrazie per l'aiuto!Vedrò se riesco a farlo funzionare, ma penso che questo metodo alla fine non funzionerà per me -- sto modificando una funzione che viene chiamata da vari report per generare i grafici -- non riesco ad aggiungere una casella di scorrimento a i rapporti.L'unica soluzione a cui posso pensare che funzionerebbe per me è semplicemente impedire che il nuovo contenuto attivi il meccanismo di scorrimento.
Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneQuale versione di JMP stai utilizzando?
In allegato 2 script: scrollers_ob.jsl e scrollers.jsl
Entrambi sono essenzialmente lo stesso script, ad eccezione dell'azione di scorrimento.
scrollers_ob.jsl
- utilizza solo un VListBox(), vlb e Scroll Window() nella casella di struttura che contiene il pulsante che l'utente ha appena premuto. Se un utente scorre al sesto display, tuttavia, una parte del display 5 mostra che fa apparire il display 6 in alto. L'utente sta ancora vedendo il grafico di interesse e l'azione di scorrimento è fluida.
scrollers0.jsl
- utilizza un wrapper ScrollBox(), sb, per vlb.Un ScrollBox ha una bella funzione << ottenere la posizione di scorrimento. Usando quella funzione, per impostare la posizione di scorrimento, l'utente vedrà la stessa identica posizione, tuttavia, il display è instabile, non fluido.
Entrambi gli script utilizzano espressioni per eliminare il codice "cookie cutter" che può essere difficile da leggere e da mantenere. Nota, crea maniglie/riferimenti a ciascuna casella di pulsante, ogni bivariata e ciascuna casella di contorno "visualizza".Fare clic con il pulsante destro del mouse su qualsiasi pulsante > selezionare modifica > selezionare set script per visualizzare il riferimento a bivariato, ecc.
Come un FYI per i maestri JSL, ho provato a usare Set Function() per ButtonBox(), e usando il suo genitore e fratello. Tuttavia, sono rimasto sorpreso, vlb << Scroll Window(this) non ha funzionato per me.Potrebbe essere stato un errore di codifica. Non ci ho dedicato molto tempo poiché pensavo che il codice potesse essere troppo ottuso per essere informativo.
Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneGrazie per l'aiuto!Tuttavia, il mio problema è che non voglio che venga mostrata nessuna parte del riepilogo, voglio semplicemente che venga disegnata la spline.A tal fine, utilizzo i comandi Visibility( "Collapse" ) e (Curve[x] << Report(0)), che impediscono con successo la visualizzazione dei report.Tuttavia, lo schermo si muove ancora come se fossero mostrati.
Ho incluso un esempio più completo qui.Facendo clic sul pulsante per aggiungere la spline si scorre immediatamente fino al punto in cui il grafico non è più visibile, anche se (alla fine) non viene visualizzato alcun nuovo contenuto.
Ho un report che viene utilizzato nella mia azienda che ha molti grafici in una pagina come questo esempio e avere la possibilità di aggiungere spline in modo interattivo è abbastanza utile, ma quando il grafico di interesse si sposta di conseguenza fuori dallo schermo, lo fa anche molto fastidioso da affrontare.
Qualsiasi aiuto sarebbe molto apprezzato!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);Re: Impedire lo scorrimento della finestra quando si aggiungono caselle di visualizzazioneDal punto di vista dell'interfaccia utente interattiva, lo scorrimento fino al riepilogo dell'adattamento ha senso.Questo script utilizza due utili funzioni/metodi della finestra di visualizzazione JMP: Visibility() e Scroll Window(). Scroll Window() viene utilizzato per tornare sempre all'inizio del display e la visibilità viene utilizzata per "comprimere" i riquadri di contorno associati alle spline.
Nota, per semplicità, questo script utilizza il conteggio della casella di contorno.Tuttavia, Xpath per trovare il kth Outline Box con helpKey che inizia con Bivar Spline, sarebbe più diretto.
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>