Cómo crear subcategorías para filas y columnas similares a tabularActualmente estoy trabajando en la creación de una tabla de datos de resultados de una consulta SQL. La tabla de datos final tiene una configuración que fusiona los grupos de columnas compartidas y también las filas de valores compartidos (consulte la Tabla 1).
Los datos a veces tienen valores numéricos, pero la mayoría de los resultados son cadenas como "Negativo" o "< 0,1". La forma en que resumo la tabla de datos con los valores nominales/de caracteres es transponiendo los resultados según el tipo de prueba. Puedo agrupar las columnas, pero cuando envío la tabla de datos a una nueva ventana como informe o a una página de diario, no muestra las columnas agrupadas. No puedo usar Tabulate porque solo resume valores numéricos y tampoco te permitirá mantener el formato cuando lo conviertas en una tabla de datos. Tampoco puedo colorear las celdas dentro de una tabla Tabular. Solo quiero tener la posibilidad de agregar subcategorías y columnas/filas anidadas como lo hace tabulate en una tabla de datos normal. Me pregunto si hay alguna manera de lograr lo que estoy buscando dentro de JMP usando el código JSL y, si no es así, ¿puede ser una solicitud de función?
Tabla 1. Ejemplo de mesa final

La personalización en masaCompartir y comunicar resultadosventanasRe: Cómo crear subcategorías para filas y columnas similar a tabularEso es lo que pensé pero pensé en preguntar. ¡Gracias de nuevo por la ayuda!
Re: Cómo crear subcategorías para filas y columnas similar a tabularNo creo que puedas hacerlo muy fácilmente.Debido a la naturaleza jerárquica del árbol de visualización, no se puede simplemente insertar un cuadro de visualización de modo que los objetos que no eran sus hijos se conviertan en sus hijos.Podrías insertar un ColSpanBox , luego usando <<CLONAR></CLONAR> podrías insertar niños en el ColSpanBox , pero en ese momento sería mejor crearlo desde cero.

Re: Cómo crear subcategorías para filas y columnas similar a tabular¡¡Esto parece muy prometedor!! ¡Gracias! Te haré saber si funciona.
Editar: Pasé la mañana revisando tu código. Es un gran comienzo para mí descubrir cómo crear más tablas personalizadas. ¡Gracias! Aprecio el tiempo y el esfuerzo. ¿Hay alguna manera de agregar un cuadro de extensión encima de las columnas a una tabla ya existente? Por ejemplo, digamos que organicé la tabla sin la categorización adicional. No quiero ir columna por columna para armar la tabla. Sólo quiero que aparezca arriba. Espero que tenga sentido.
Re: Cómo crear subcategorías para filas y columnas similar a tabularJMP no le permite agrupar filas.Tabular no agrupa filas, simplemente deja algunas filas en blanco (ver más abajo).
Si observa la estructura de árbol de Tabulate, notará que JMP utiliza construcciones especiales como MultiTblStrColBox y MultiTblNumColBox para crear la tabla del tabulado.Estos no son algo que el usuario pueda crear en JSL.La mejor opción es utilizar el <<OBTENER como="" informe=""></OBTENER> con algún grupo elegante y manejo de nombres para crear algo similar con Cuadro de mesa - al que tenemos acceso en JSL.Aquí hay una función rápida " tabular " que preparé que puede tomar una tabla que tiene colores específicos en sus celdas con cualquier agrupación de columnas que desee y crea algo así como tabular.Es necesario especificar una tabla y una columna categórica especial dentro de:
Names Default To Here( 1 );
table = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
theGroup = table << Group Columns( "BP", :BP 8M :: :BP 8W );
theGroup = table << Group Columns( "ELSE", {:BP 12W, :BP 6W} );
For( i = 1, i <= N Cols( table ), i++,
For Each Row( table,
Column( table, i ) << Color Cells( Eval List( Repeat( {Random Uniform( 0.9, 1 )}, 3 ) ), Row() )
);
);
tabulatish = Function( {table, category},
{Default Local},
column names = table << Get Column Names( "String" );
For( i = 1, i <= N Items( column names ), i++,
If( Uppercase( category ) == Uppercase( column names[i] ),
category = column names[i];
Break();
)
);
Eval( Parse( Eval Insert( JSL Quote(
table << Sort( By( :Name("^category^") ), Order( "Ascending" ), "Replace Table" );
) ) ) );
categories = Associative Array( Column( table, category ) ) << Get Keys;
locs = Repeat( {""}, N Rows( table ) );
For( i = 1, i <= N Items( categories ), i++,
locs[(Loc( Column( table, category ) << Get Values, categories[i] ))[1]] = categories[i]
);
nt = New Table( "temp", <<NEW column=""></NEW>
