Guida con la casella di contesto del filtro dati()Ho problemi a inserire una casella di contesto del filtro dati nel mio script. Il mio script viene utilizzato per inserire dati tramite SQL, eseguire alcune funzioni di tabella e quindi sputare grafici all'interno di finestre a schede. Questo lo rende visivamente più bello di quello che stavo facendo poiché a ogni singolo output era associata una nuova finestra e gli ingegneri di test avrebbero dovuto fare clic su più pulsanti.
Ho letto queste schede oltre a leggere la guida allo scripting. Il problema che ho è come inserirlo dopo che i grafici e le distribuzioni sono stati popolati. Dalla guida agli script.
Ho cercato di usare la stessa filosofia che Mr. xnelson mi ha aiutato ma non riesco a farlo creare una casella temporanea e quindi popolare dopo aver fatto clic sui miei pulsanti. Ancora una volta, qualsiasi aiuto è apprezzato.
D
guida,
// --------------------------- From Scripting Guide -------------------------
dt = Open( "$SAMPLE_DATA/Hollywood Movies.jmp" );
win = New Window( "Shared Local Filter",
Data Filter Context Box(
// enclose the h list box that contains distribution and graph builder
H List Box(
// add the local data filter
// NOTE: My tables aren't created yet so i am getting an error here.
dt << Data Filter( Local ),
dt << Distribution(
Weight( :Profitability ),
Nominal Distribution(
Column( :Lead Studio Name )
),
Nominal Distribution(
Column( :Genre )
),
Histograms Only
),
dt << Graph Builder(
Variables(
X( :Genre ),
Y( :Domestic Gross ),
Y( :Foreign Gross, Position( 1 ) )
),
Show Control Panel( 0 ),
Elements(
Bar( X, Y( 1 ), Y( 2 ),
Legend( 2 ),
Bar Style( "Side by side" ),
Summary Statistic( "Mean" )
),
Frequencies( 0 ),
)
)
)
)
);
// --------------------------- My Data Pull Script Simplified -------------------------
Names Default To Here( 1 );
Close All( Data Tables, No Save );
Close All( Reports );
Clear Log();
Close All( journals, no save );
Clear Symbols();
sqlstartA = Today();
sqlendA = Today();
sqlstart = Format( sqlstartA, "yyyy-mm-dd" );
sqlend = Format( sqlendA, "yyyy-mm-dd" );
/************************************************************************************************************************************************/
/* */
/* ---------------------------------------------------------------[START EXAMPLE] ----------------------------------------------------------- */
/* */
/************************************************************************************************************************************************/
hay = New Window( "Test Database Tools",
V List Box(
V List Box(
Text Box(
"Product Engineering Database Tools",
<<SET font="" size=""></SET>
Ri: Aiuto con la casella di contesto del filtro dati()Ha funzionato perfettamente, grazie. Devo leggere su "Is Scriptable" e vedere in quale altro modo potrebbe essere utilizzato
Ri: Aiuto con la casella di contesto del filtro dati()Sì, ho notato per la prima volta che "Carica i dati del test" duplica parti dell'interfaccia (il filtro) e, come fai notare, "Fai clic qui al termine" duplica anche l'interfaccia utente.Hai detto che avevi problemi a eliminare la casella, ma non ero sicuro se volevi (a) eliminare i controlli in modo che possano essere utilizzati solo una volta (b) eliminare il filtro in modo da poterlo sostituire con un altro.La mia risposta precedente è stata quella di dimostrare un modo per (a) senza dover effettivamente eliminare nulla: basta nascondere e mostrare diverse parti della finestra a seconda dello stato.
In allegato c'è un'altra modifica dello script che ho modificato per eliminare i componenti.Salvo un riferimento alle caselle che vengono aggiunte al display.Ogni volta che le caselle vengono aggiunte, chiamerà prima << Elimina casella sulle caselle aggiunte in precedenza.
Ri: Aiuto con la casella di contesto del filtro dati()Le mie scuse. Se esegui lo script che hai corretto e fai clic sul pulsante "Fai clic qui al termine", continua ad aggiungere la casella di visualizzazione. Avrei giurato che l'avessi indicato quando hai risposto, ma ora mi rendo conto che era correlato a un argomento diverso.
Ri: Aiuto con la casella di contesto del filtro dati()Non mi è chiaro cosa stai cercando di fare all'interno del loop.Se vuoi che i controlli scompaiano, puoi eliminarli o puoi semplicemente nasconderli.Nasconderli potrebbe non essere l'ideale - sono ancora nella struttura di visualizzazione - ma questo è un approccio comune.Ecco un esempio che guida l'utente attraverso più passaggi di input, nascondendo i controlli ad ogni passaggio:
New Window( "Wizard Interface",
top = H List Box(
// Control panels
controls = Panel Box( "Inputs",
panel1 = V List Box(
Text Box("Panel 1"),
Button Box( "Next",
panel1 << Visibility( "Collapse" );
panel2 << Visibility( "Visible" );
)
),
panel2 = V List Box(
Text Box("Panel 2"),
Button Box( "Next",
panel2 << Visibility( "Collapse" );
panel3 << Visibility( "Visible" );
),
<<VISIBILITY></VISIBILITY>
È simile a quello che vuoi fare?
Ri: Aiuto con la casella di contesto del filtro dati()Credo di poter eseguire l'aggiunta di quella finestra utilizzando un ciclo for. Esattamente come ho inserito il codice i <=
Grazie
For( i = 1, i <= /* not sure what i would put in here */ , i ++,<BR /> sqlstart = Format( sqlstartA, "yyyy-mm-dd" );<BR /> sqlend = Format( sqlendA, "yyyy-mm-dd" );<BR /> Show( sqlstart, sqlend );<BR /> lineup1 << Append(<BR /> V List Box(<BR /> Spacer Box( Size( 5, 5 ) ), <BR /> Text Box( "Select Your Wafer(s)", <BR /> << Set Font Size( 15 ), <BR /> << Justify Text( "Center" ) <BR /> ),<BR /> Spacer Box( Size( 5, 15 ) ),<BR /> loaddata = Button Box( "Load The Test Data",<BR /> dt = current data table();<BR />// dt = Open( "$SAMPLE_DATA/big class.jmp", invisible )<BR /><BR />// Insert End of Script<BR />
Ri: Aiuto con la casella di contesto del filtro dati()Come hai sottolineato nella tua risposta, il problema con "Fai clic qui al termine" aggiunge la finestra quando viene fatto clic. Ho provato a << Delete the Box() e alcune altre cose che non hanno avuto successo. Tuttavia, sono riuscito a inserire alcune istruzioni Throw() quando non sono state selezionate date o wafer. Questo si sta rivelando impegnativo. Eventuali suggerimenti?Ri: Aiuto con la casella di contesto del filtro dati()Grazie per l'aiuto tuo e di Jim. Non ho pensato affatto al ricalcolo automatico. E un ringraziamento speciale per l'aggiunta Data Filter Context Box(). Stavo cercando di usarlo ma non riuscivo a capire il posizionamento corretto.
Per quanto riguarda il calendario, sono completamente d'accordo con te. Rendilo una scatola di contorno che può aprirsi e chiudersi..
La finestra principale richiede alcune aggiunte e tweek una volta che ho ottenuto tutti i grafici, le distribuzioni, Fit Y by X e Wafer Maps (toolkit per semiconduttori) nelle finestre appropriate. I problemi con cui tu e Jim state aiutando sono i frutti bassi quando si tratta di questo strumento di analisi. Sento che l'ostacolo più grande sarà il modo in cui gestirò i valori anomali. Ho trovato GrubbsOutlierTest3.jsl su queste schede e lo userò in qualche modo, forma o forma.
Grazie ancora.
D
Ri: Aiuto con la casella di contesto del filtro dati()Sebbene non sia possibile ridimensionare l'oggetto Casella calendario, è possibile utilizzare invece una Casella di modifica numero per lo stesso scopo. Imposta il formato sullo stile della data che desideri e quindi presenterà un calendario durante l'interazione, ma per il resto è solo una piccola scatola.
Names Default to Here( 1 );
nw = New Window( "Date Entry",
Outline Box( "Calendar Box Substitute",
neb = Number Edit Box( 01Jan2019,
<< Set Format( Format( "m/d/y", 12 ) )
)
),
H List Box(
Button Box( "OK",
date = neb << Get;
),
Button Box( "Cancel" )
)
);
Ri: Aiuto con la casella di contesto del filtro dati()Ho allegato una versione aggiornata del tuo script.Come sottolinea Jim, il ricalcolo automatico non è impostato sulla distribuzione.Il motivo è che i tuoi filtri di dati sono filtri globali e non filtri locali.Nel tuo script, nota che mentre tutti i rapporti sembrano essere aggiornati, gli stati delle righe della tabella dati stanno cambiando e i risultati si stanno aggiornando in entrambe le schede.
Ho apportato due modifiche per rendere locali i filtri:
- Aggiunta l'opzione "Locale" ai comandi Data Filter()
- Modificato il tuo HListBox() in un Data Filter Context Box() in ogni scheda.Ciò mantiene l'effetto di ogni filtro locale alla scheda
Il filtro dati locali imposterà automaticamente il flag Auto Recalc su ogni piattaforma associata.
Non conosco un modo per rendere il calendario più piccolo.Non sono sicuro del flusso di lavoro che stai seguendo dopo la selezione della data iniziale.Potresti prendere in considerazione due finestre, una finestra di avvio con selezione della data e una finestra dei risultati che mostra i rapporti.Potresti includere l'intervallo di date come sottotitolo.
Se si desidera mantenere entrambi nella stessa finestra, è possibile inserire i calendari all'interno di un nodo di struttura che utilizza <Ri: Aiuto con la casella di contesto del filtro dati()Questo ha perfettamente senso. Grazie per il vostro aiuto.
Ri: Aiuto con la casella di contesto del filtro dati()Il motivo per cui la tua distribuzione non cambia quando modifichi le selezioni nel tuo filtro dati, è perché l'opzione "Ricalcolo automatico(1)" non è impostata nel JSL per le distribuzioni.
Per quanto riguarda il ridimensionamento delle caselle del calendario, non vedo un modo per modificarne le dimensioni. Qualche altro membro della comunità potrebbe avere un metodo, ma non riesco a trovarne uno.
Ri: Aiuto con la casella di contesto del filtro dati()
Signor Nelson,
Ho provato a inserirlo nel mio script e sembra che stia aggiornando solo una parte dei grafici/distribuzioni.Ho allegato uno script aggiornato che è esattamente quello che sto cercando di fare con l'aggiunta di un paio di altre schede dietro le due che vedete.
Ho anche allegato un buon esempio di un set di dati che sto inserendo. Questa tabella include 3 wafer di dati per darti un'idea.
Inoltre, vorrei sapere se esiste un modo per ridimensionare le caselle del calendario in modo che occupino meno spazio, lasciandone di più per l'analisi.
Grazie
Ri: Aiuto con la casella di contesto del filtro dati()Ci scusiamo per non aver specificato.
Sì, un filtro dati locale che influisce su tutti i grafici nella scheda,... Guarderò il tuo copione tra un momento.
Grazie
Ri: Aiuto con la casella di contesto del filtro dati()Stai cercando di aggiungere uno o più filtri di dati locali per grafici/grafici specifici?
Stai cercando di aggiungere un filtro che modifichi tutti i grafici in base a un singolo filtro?
Stai cercando di fare in modo che l'utente faccia clic su una delle barre nell'istogramma e, dalle righe selezionate, modifichi gli altri grafici e grafici?
In allegato è una modifica dello script che aggiunge un filtro di dati a sinistra dell'output della piattaforma di distribuzione e, quando selezionato, modifica tutti i grafici allegati alla tabella di dati.