Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Probabilmente puoi usare il JMP Query Builder per creare questo flusso di lavoro automaticamente. Utilizza la colonna dei numeri di prodotto come colonna Filtro e scegli Prompt on Run opzione.

È quindi possibile passare al triangolo rosso e scegliere Copia Esegui script e incollarlo nello script per creare la tabella secondaria come parte dello script.

Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Questo è "bare bones" ma dovrebbe iniziare.
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Summarize( age group = By( :age ) );
// you could also use an associative array to get the unique levels.
New Window( "Selection", << Modal,
lb = List Box(
age group,
),
Button Box( "OK",
got em = lb << Get Selected;
)
);
For( g = 1, g <= N Items( got em), g++,
// do something with each selected group
Show( got em[g] );
);
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Costruire su @markbailey approccio, ecco un po 'più (vecchio) codice:
NamesDefaultToHere(1);
// Make a table with a list of 'products'
dt = NewTable("Products", NewColumn("Product ID", Character, Nominal, Formula(Char(RandomInteger(1, 10)))));
dt << addRows(20);
dt << runFormulas;
// Put up a list of distinct products that occur in 'dt'
prods = AssociativeArray(Column(dt, "Product ID") << getValues) << getKeys;
nw = NewWindow("Pick some Products from the List",
lb = ListBox(prods),
ButtonBox("OK", OKscript)
);
// This script runs when the user hits 'OK'
OKscript =
Expr(
nw << closeWindow;
// Find out which products were selected
selecedProds = lb << getSelected;
// Find out all corresponding rows in 'dt'
selectedRows = [];
for(p=1, p<=NItems(selecedProds), p++,
selectedRows = VConcat(selectedRows, dt << getRowsWhere(:Product ID == selecedProds[p]))
);
// Make the subset table
dt2 = dt << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Se voglio farlo a una tabella esistente e, allo stesso modo, prendo TUTTE le colonne associate a questa tabella, ma porto solo le rispettive righe specifiche per i prodotti filtrati, come posso farlo?
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Ecco un frammento di questo codice, nota che dt2 (PrimaryRFR_OUT_2015) è la tabella dati che mi interessa filtrare per prodotto CFN, creare una nuova tabella e salvare questa tabella. Si noti che la casella del filtro si presenta in modo accurato con l'elenco CFN prodotto corretto, ma una volta premuto OK ricevo "Numero riga non valido":
dt2 << Save( "PrimaryRFR_OUT_2015.jmp" );
tab = dt2 << Tabulate(
Add Table(
Column Table( Grouping Columns( :Code LLT of OUT_2015 ) ),
Row Table( Grouping Columns( :Code LLT of PrimaryRFR_2015, :Code LLT Desc of PrimaryRFR_2015) )
)
);
dt_tab = tab << Make Into Data Table;
dt_tab << set name( "Tabulate" );
dt_tab << Save( "PrimaryRFR_OUT_Tabulate_2015.jmp" );
prods = AssociativeArray(Column(dt2, "Product CFN") << getValues) << getKeys;
nw = NewWindow("Pick Products from the List to be filtered",
lb = ListBox(prods),
ButtonBox("OK", OKscript)
);
OKscript =
Expr(
nw << closeWindow;
SelectedProds = lb << getSelected;
selectedRows = [];
for( p = 1, p <= NItems( SelectedProds ), p++,
selectedRows = VConcat( selectedRows, dt << getRowsWhere( :Product CFN == SelectedProds[p]))
);
dt5 = dt2 << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Nella tua linea che inizia con
selectedRows = VConcat (selectedRows ..........
il riferimento a "dt" dovrebbe essere "dt2"Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?A volte ci si perde così tanto nella propria codifica, si dimentica in che direzione si trova e in quale direzione si trova. Grazie a tutti!
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata? Ho trovato l'errore, perché ho fatto lo stesso errore molte volte prima 
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Ancora una volta, come faccio a salvare questo file con i nuovi # del prodotto ora? Non sta salvando il mio ZACH_2015.jmp
//*** Create a window to prompt user to filter for Model numbers they would like to use
prods = AssociativeArray(Column( dt2, "Product CFN" ) << getValues) << getKeys;
nw = NewWindow( "Pick Products from the List to be filtered",
lb = ListBox( prods ),
ButtonBox( "OK", OKscript )
);
OKscript =
Expr(
nw << closeWindow;
SelectedProds = lb << getSelected;
selectedRows = [];
for( p = 1, p <= NItems( SelectedProds ), p++,
selectedRows = VConcat( selectedRows, dt2 << getRowsWhere( :Product CFN == SelectedProds[p]))
);
dt5 = dt2 << Subset(Rows(selectedRows), LinkToOriginalDataTable(1));
);
dt5 << Save( "ZACH_2015.jmp");
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Cosa dice il registro del salvataggio? Ti suggerirei di utilizzare un riferimento di tabella di percorso / dati più preciso. La posizione predefinita in cui viene salvata la tabella di dati, potrebbe non essere quella in cui si pensa che venga salvata.Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Funziona quando specifichi il percorso / posizione del file.
Follow-up: se voglio semplificare per l'utente e farlo salvare nella directory selezionata attiva che chiedo all'utente di scegliere all'inizio, come faccio?
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?- Vedi il mio aggiornamento per l'ultima risposta che ho postato.
- È possibile specificare variabili d'ambiente nel percorso per il salvataggio.
dt << save( "$TEMP/myfile.jmp" );
È possibile ottenere un elenco di variabili di ambiente JMP nella Guida allo scripting
- Puoi anche creare cartelle. Usando le variabili d'ambiente di Windows per trovare il percorso della loro cartella Documenti, potresti creare una nuova cartella e inserire tutti i tuoi output. Nelle esecuzioni successive, è possibile verificare se la cartella esiste e, in tal caso, ignorare il passaggio di creazione.
Ri: C'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Il 3. Esiste una linea di codice per iniziare a configurare una nuova cartella chiamata "Dati JMP" e per memorizzare tutto ciò che contiene, e nelle esecuzioni successive basta fare in modo che l'intestino esista già nella directory dell'utente?
Cordiali saluti,
ZachC'è un modo per chiedere all'utente di selezionare quali comuni numeri di prodotto in una colonna filtrare e quindi generare un report da quella selezione filtrata?Ad esempio, vorrei chiedere all'utente in un particolare punto dello script di selezionare i numeri di prodotto rappresentati in questa particolare riga da filtrare e fare in modo che JMP crei una nuova tabella basata su questo input.
Grazie,
Zach