Obtener categorías de otro script.Esto fue muy útil para llegar a donde estoy.
Resuelto: Invocar un script desde otro script - Comunidad de usuarios de JMP
Puedo invocar un script desde el script principal. El script que invoco aplica categorías al conjunto de datos de destino y me gustaría poder formar una lista de categorías en el script que invoco que pueda aplicar al script principal. A continuación, se muestra una instantánea del script invocado; se pueden iterar varios parámetros y categorías y me gustaría tener una lista de categorías disponibles en la tabla principal.
Try((Column( "Parameter") << Set Selected(1););
dt << group columns( "ENG" );
dt << deselect column group( "ENG" );):
Automatización y scriptingRe: Obtener categorías de otro script.¿Estás ejecutando Include solo para ejecutar el otro archivo de script? ¿Tiene expresiones/funciones? ¿Qué categorías y cómo deseas que estén disponibles?
Re: Obtener categorías de otro script.Utilizo Include para ejecutar el otro script, que aplica categorías a las columnas de la tabla. Una forma alternativa de obtener lo que necesito sería incluir las categorías en la tabla finalizada.
Re: Obtener categorías de otro script.¿Dónde están las categorías? ¿Qué se entiende por categorías? ¿Cómo se deben añadir a la tabla principal?
Re: Obtener categorías de otro script.Cada medición que tiene especificaciones cae dentro de una categoría definida por la organización de la prueba. Algunas categorías son de rechazo, lo que significa que son cruciales para aprobar, otras son de ingeniería, lo que significa que son de interés pero no son críticas para aprobar.
Re: Obtener categorías de otro script.Si entiendo bien tu publicación, parece que el script que invocas está creando "categorías" en tu tabla de datos mediante la creación de varios grupos de columnas. Esos grupos de columnas tendrán nombres como "Rechazar", "Ingeniería", "Etc...".
Después de ejecutar el script invocado, puede obtener la lista de grupos de columnas de su tabla de datos mediante la función "obtener nombres de grupos de columnas". A continuación se muestra un ejemplo:
names default to here(1);
dt = current data table();
categoryList = dt << get column groups names;
show(categoryList);
Para ir un paso más allá, después de obtener la lista de categorías, puede recorrerla y utilizar la función "obtener grupo de columnas" para obtener la lista de todas las columnas de medición de pruebas que se encuentran dentro de cada grupo de columnas. A continuación, se muestra un ejemplo:
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: Obtener categorías de otro script.¡Genial! Utilizo algo como esto para enviar información desde el subíndice al script principal. Escribo el subíndice con otro script. Probablemente no sea estándar, pero escribo el script en las columnas de la tabla de datos que contienen los límites de especificación, lo copio como texto y lo pego en una ventana de script. Parece funcionar.
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);