Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Vous pouvez probablement utiliser le Générateur de requêtes JMP pour créer ce flux de travail automatiquement. Utilisez la colonne des numéros de produits comme colonne de filtre et choisissez le Invite à courir option.

Vous pouvez ensuite accéder au triangle rouge, choisir Copier le script d'exécution et coller ce script dans votre script pour créer la table de sous-ensembles en tant que partie intégrante de votre script.

Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?C'est «des os nus», mais cela devrait vous aider à démarrer.
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] );
);
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Bâtir sur @markbailey approche, voici un peu plus (ancien) code:
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));
);Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Si je souhaite appliquer cela à une table existante et que toutes les colonnes associées à cette table sont associées, mais que seules les lignes respectives propres aux produits filtrés sont importées, comment puis-je simplement le faire?
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Voici un extrait de ce code. Notez que dt2 (PrimaryRFR_OUT_2015) est la table de données sur laquelle je souhaite filtrer par produit CFN, créer une nouvelle table et enregistrer cette table. Notez que la boîte de filtrage s’affiche avec la bonne liste CFN du produit, mais lorsque je clique sur OK, j’obtiens "Invalid Row #":
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));
);
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Dans votre ligne qui commence par
selectedRows = VConcat (selectedRows ……….
la référence à "dt" devrait être "dt2"Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Parfois, vous êtes tellement perdu dans votre propre code que vous oubliez quel chemin va vers le haut et quel chemin va vers le bas. Merci à tous!
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée? J'ai trouvé l'erreur, car j'ai déjà commis la même erreur plusieurs fois auparavant 
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Encore une fois, comment enregistrer ce fichier avec les nouveaux produits # maintenant? Il ne sauve pas mon 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");
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Que dit le journal à propos de la sauvegarde? Je suggérerais que vous utilisiez une référence plus précise de chemin / table de données L'emplacement par défaut dans lequel la table de données est enregistrée peut ne pas correspondre à votre choixRe: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Cela fonctionne lorsque je spécifie le chemin / l’emplacement du fichier.
Suivi: Si je veux simplifier la vie de l'utilisateur et le sauvegarder dans le répertoire choisi que je demande à l'utilisateur de choisir au début, comment puis-je le faire?
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?- Voir ma mise à jour à la dernière réponse que j'ai postée.
- Vous pouvez spécifier des variables d'environnement dans votre chemin pour votre sauvegarde.
dt << save( "$TEMP/myfile.jmp" );
Vous pouvez obtenir une liste des variables d’environnement JMP dans le Guide de script.
- Vous pouvez également créer des dossiers. En utilisant les variables d'environnement Windows pour trouver le chemin d'accès à leur dossier Documents, vous pouvez créer un nouveau dossier et y placer toute votre sortie. Lors des exécutions suivantes, vous pouvez vérifier si le dossier existe et, le cas échéant, ignorer l'étape de création.
Re: Y a-t-il un moyen de demander à l'utilisateur de sélectionner les produits communs dans une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Sur 3. Existe-t-il une ligne de code expliquant comment configurer un nouveau dossier appelé "JMP Data" et comment tout stocker, et lors des exécutions ultérieures, il suffit de vérifier de manière anatomique qu'il existe déjà dans le répertoire de l'utilisateur?
Sincères amitiés,
ZachExiste-t-il un moyen de demander à l'utilisateur de sélectionner les numéros de produits communs d'une colonne à filtrer, puis de générer un rapport à partir de cette sélection filtrée?Par exemple, je voudrais inviter l'utilisateur à un moment donné du script à lui demander de sélectionner les numéros de produit représentés dans cette ligne sur laquelle le filtre doit être filtré et à permettre à JMP de créer une nouvelle table à partir de cette entrée.
Je vous remercie,
Zach