Obtenir des catégories à partir d'un autre script.Cela m'a été très utile pour arriver là où je suis
Résolu : Appel d'un script à partir d'un autre script - Communauté d'utilisateurs JMP
Je peux invoquer un script à partir du script principal. Le script que j'invoque applique des catégories à l'ensemble de données cible et j'aimerais pouvoir former une liste de catégories dans le script que j'invoque que je peux appliquer au script principal. Vous trouverez ci-dessous un aperçu du script invoqué, plusieurs paramètres et catégories peuvent être itérés et j'aimerais obtenir une liste des catégories disponibles dans la table principale.
Try((Column( "Parameter") << Set Selected(1););
dt << group columns( "ENG" );
dt << deselect column group( "ENG" );):
Automatisation et scriptsRe : Obtenir des catégories à partir d'un autre script.Exécutez-vous simplement Include pour exécuter l'autre fichier de script ? Contient-il des expressions/fonctions ? Quelles catégories et comment souhaitez-vous les rendre disponibles ?
Re : Obtenir des catégories à partir d'un autre script.J'utilise Include pour exécuter l'autre script, qui applique les catégories aux colonnes du tableau. Une autre façon d'obtenir ce dont j'ai besoin serait de lister les catégories dans le tableau terminé.
Re : Obtenir des catégories à partir d'un autre script.Où sont les catégories ? Qu'entendez-vous par catégories ? Comment doivent-elles être ajoutées à votre table principale ?
Re : Obtenir des catégories à partir d'un autre script.Chaque mesure qui possède des spécifications appartient à une catégorie définie par l'organisme de test. Certaines catégories sont Rejetées, ce qui signifie qu'elles sont cruciales pour réussir, d'autres sont Ingénierie, ce qui signifie qu'elles sont intéressantes mais pas cruciales pour réussir.
Re : Obtenir des catégories à partir d'un autre script.Si je comprends bien votre message, il semble que votre script invoqué crée des « catégories » dans votre table de données en créant plusieurs groupes de colonnes. Ces groupes de colonnes auront des noms tels que « Rejeter », « Ingénierie », « Etc… ».
Après avoir exécuté votre script invoqué, vous pouvez obtenir la liste des groupes de colonnes de votre table de données en utilisant la fonction « obtenir les noms des groupes de colonnes ». Un exemple est présenté ci-dessous :
names default to here(1);
dt = current data table();
categoryList = dt << get column groups names;
show(categoryList);
Pour aller plus loin, après avoir obtenu votre liste de catégories, vous pouvez parcourir la liste et utiliser la fonction « obtenir un groupe de colonnes » pour obtenir la liste de toutes les colonnes de mesure de test qui se trouvent dans chaque groupe de colonnes. Voici un exemple :
names default to here(1);
dt = current data table();
categoryList = dt << get column groups names;
for( k = 1, k <= n items( categoryList ), k++,
show( categoryList[k] );
colList = dt << get column group( categoryList[k] );
print( colList );
);Re : Obtenir des catégories à partir d'un autre script.Bien ! J'utilise quelque chose comme ça pour alimenter le script principal en informations depuis l'indice. J'écris l'indice avec un autre script. Ce n'est probablement pas la norme, mais j'écris le script dans les colonnes de la table de données contenant les limites de spécification, je copie cela sous forme de texte et je le colle dans une fenêtre de script. Cela semble fonctionner.
Spud = (":" || cnmes2[l]);
Spuds = Parse( Eval Insert( Spud ) );
Tabname = Char( dt );
//This section of the script devises a name for each script generated.
Tabname = Char( dt );
Show( Tabname );
name = Char( Column Name( l ) );
names = Char( "Spec Limits, Group and Notes Script " ) || Char( Tabname ) || Char( name );
Show( names );
Show( Spuds );
Ainim = Regex( names, "\!"", "", GLOBALREPLACE );
Show( Ainim );
link = Char(cats);
//Scripts are generated in 2 table columns "Address Data Table" and "Group with Notes and Spec Limits" before being pasted into a Script Window.
New Column( "Address Data Table",
Character,
"Nominal",
Formula(
If( Row() == 1,
"dt=Current Data Table();
Process_Script = " || "\!"" || Ainim || "\!"" || "; Show( Process_Script );
cats = " || link || "; Show( Process_Script );"
)
)
);
Column( "Address Data Table" ) << Delete Formula;For( l = Num(Start), l <= N Items( cnmes2 ), l++,
summarize(cats=by(cnmes2 [l] ));
delcats = {"", "-"};
For( i = 1, i <= N Items( delcats ), i++,
Remove From( cats, As List( Loc( cats, delcats[i] ) ) )
);
show(cats);