JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiCiao a tutti,
Sto cercando di creare uno script che funzioni in questo modo:
1. Apre una nuova finestra che mostra "Seleziona i parametri che vuoi tracciare" con un elenco di parametri con caselle di controllo per ciascuno, e l'operatore sceglierà quali vuole tracciare spuntandoli.
2. Quindi, per quelli contrassegnati, aprire un generatore di grafici con le variabili corrispondenti.
Al momento sono in grado di eseguire il primo passaggio (nuova finestra ed elenco con caselle di controllo) e so come creare script per creare un grafico, ma mi manca il collegamento tra loro...Inizialmente pensavo di chiamare ciascuna casella di controllo individualmente e poi fare una successione di "se" come "se è spuntato cb1, allora fai il grafico, altrimenti, allora se è spuntato cb2 ecc...". Ho provato il seguente script per eseguire il training, ma alla fine viene sempre visualizzato "Failed", indipendentemente se ho selezionato la casella, quindi in realtà non seleziona la casella:
Names Default To Here( 1 );
New Window( "Choose the parameters to be plotted",
cb1 = Check Box ("Parameter 1",0),
cb2 = Check Box ("Parameter 2",0)
);
wait(5);
If (cb1 == 1,
Graph Builder(
Variables(
X( :Name( "Process duration" ) ),
Y( :Name( "Parameter 1" ) ) ) ),
New Window( "Failed"));Hai qualche idea su come farlo?
@martindemel
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiPerdonami per quello. Intanto ho fatto i complimenti anche a Mark.Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficii complimenti vanno a Marco
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiGrazie Martin, per questo utile script.Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiHo appena testato questa soluzione e ha funzionato perfettamente, grazie!!Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiEsempio:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dialog = Column Dialog(
col = Col List( "X, Factor", Min Col( 1 ), Max Col( 1 ) )
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
Remove From( dialog );
Eval List( dialog );
x = col[1];
dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( x ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiNon sono sicuro di capire
Vedo l'utilità di utilizzare la finestra di dialogo delle colonne per chiedere all'operatore di selezionare la colonna, ma non so ancora come collegarla successivamente alla creazione automatica del grafico?Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiok, ha senso. Anche in questo caso potresti utilizzare la finestra di dialogo della colonna, anche se in seguito dovrai modificare leggermente lo script per utilizzare il nome della variabile corretto. La cosa bella è che puoi utilizzare un nome di variabile autodefinito che desideri utilizzare nel tuo script in seguito e rimuovere la dipendenza dai nomi delle variabili della tabella. Puoi ancora creare una struttura if_else, ma invece di :age puoi usare il tuo nome che rende lo script più generale e di solito anche più robusto.Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiIl metodo Choose() che ho utilizzato è appropriato per Radio Box, ma non altrettanto utile per il caso di input Check Box: consente solo l'esecuzione di una delle istruzioni.
Prova qualcosa come:
If(cb<<GET></GET>
Tieni presente che CheckBox<
http://www.jmp.com/support/help/en/15.1/#page/jmp/display-functions.shtml#ww2548850
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiCiao Martino,
In realtà non ho menzionato il quadro completo: ho già uno script che costruisce tutti i grafici uno per uno, li salva nel diario e poi chiude il generatore di grafici. Quindi, alla fine di questo script, ho un diario con tutti i miei grafici.
Ora vorrei aggiungere un primo passo a questo grafico che è la selezione delle variabili. Quindi ho bisogno che l'operatore selezioni ciò che vuole, e quindi per tutta la variabile selezionata, dovrebbe essere applicato il secondo generatore di grafici di script -> Journal.
Ha senso?
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiPotrebbe non essere esattamente quello di cui hai bisogno, ma se vuoi creare un grafico per ciascuna delle variabili selezionate potresti prendere in considerazione una finestra di dialogo Colonna per consentire all'operatore di selezionare le variabili che vuole tracciare nei ruoli X e Y e quindi tracciarle per ciascuna variabile selezionata:
https://www.jmp.com/support/help/en/15.1/?os=win&source=application#page/jmp/construct-a-column-dialog.shtml#
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Tablet Production.jmp", Invisible);
cdb = Column Dialog("Add continuous variables you want to plot against Dissolution" ,
colxx = ColList( "X", Min Col( 1 ), Modeling Type( "Continuous" ) ),
);
show(cdb);
Eval List(cdb[1::N Items(cdb)-1]);
Graph Builder(
Size( 526, 454 ),
Show Control Panel( 0 ),
Variables( X( colxx[1] ), Y( :Dissolution )),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) ),
Column Switcher( colxx[1], colxx )
);
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiHo provato a trasformare la casella radio in una casella di controllo nel tuo esempio, ma ancora una volta viene eseguito solo un singolo grafico anche se sono selezionate più caselle (e in realtà non funziona per Altezza e non ho idea del perché)... Penso che mi manchi ancora qualcosa in quella sceneggiatura:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
rc = New Window("Choose the parameters to be plotted",
cb = Check box ({"weight", "height", "sex"}),
Button Box("Ok",
Choose(cb<<GET></GET>
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiIn tal caso puoi mantenere il Casella di controllo() display che stavi utilizzando originariamente: dal tuo esempio non ero chiaro come sarebbero stati utilizzati gli input se entrambi gli elementi (o nessuno dei due) fossero stati selezionati.RadioBox è un buon controllo se desideri una e una sola risposta, ma puoi utilizzare uno dei metodi di input con qualsiasi set di controlli, incluso CasellaModificaTesto() per l'input di stringhe o NumeroModificaBox() per l'immissione numerica.
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiSembra promettente, grazie mille!! Tuttavia in quello che hai suggerito, o è una casella o l'altra ma non entrambe, mentre mi piacerebbe che fossero spuntate tutte le caselle necessarie... Cosa dovrei cambiare nei tuoi script?
Oggetto: JSL: casella di controllo per selezionare la variabile da tracciare nel generatore di graficiQuando viene richiesto un input in una finestra di dialogo, ecco due modi comuni per eseguire le operazioni:
1. Utilizzare una finestra di dialogo modale per mettere in pausa l'esecuzione dello script in attesa dell'input:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input
rc = New Window("Choose the parameters to be plotted",
<<MODAL></MODAL>// Launch report if Ok was pressed
if (rc["Button"] == 1,
// Ok pressed
Choose (rc["rb"],
Graph Builder(Variables(X(:age), Y(:weight))),
Graph Builder(Variables(X(:age), Y(:height)))
);
,
// Cancel
"Cancel"
)
Nel tuo script, la variabile "cb1" è un DisplayBox.In questo esempio, l'opzione <
2. Esegui la parte "azione" della finestra di dialogo come parte di uno script di pulsante:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input and create graph
rc = New Window("Choose the parameters to be plotted",
rb = Radio Box({"weight", "height"}),
Button Box("Ok",
Choose(rb<<GET></GET>
Una finestra di dialogo modale bloccherà tutti gli altri input in altre finestre, mentre il secondo approccio consentirebbe di continuare a utilizzare altre finestre in JMP contemporaneamente.
Spero che aiuti!
Re: JSL - Casella di controllo per selezionare la variabile da tracciare nel generatore di graficiSemplice ed efficace. Bello!