Creación de cajas de árboles JSL dinámicas a partir de datos jerárquicos¿Alguien puede sugerir un método para crear un cuadro de árbol anidado dinámico utilizando datos jerárquicos? Lo intenté durante un par de horas esta noche y me está confundiendo 
Tengo algunos datos ficticios a continuación para representar las relaciones que tienen tres niveles de profundidad. Obviamente, no quiero codificar esto, ya que no sabré por adelantado cuántos niveles de 'anidación' tendré que hacer. En realidad serán 10 o más niveles.
Saludos, Troya
Esto es con lo que estoy empezando (Tabla adjunta)

Esto es lo que quiero generar

Analíticasecuencias de comandosRe: Creación de cuadro de árbol JSL dinámico a partir de datos jerárquicosAquí hay algo que armé usando su tabla de muestra, que podría ayudarlo a llegar a donde quiere

Names Default To Here( 1 );
dt = Current Data Table();
maxLevels = Col Max( :EMPLEVEL );
dt << select where( :EMPLEVEL == 1 );
dtJoined = dt << subset( columns( :EMP_ID, :FULL_NAME ), selected rows( 1 ) );
For( m = 1, m <= N Cols( dtJoined ), m++,
Column( dtJoined, m ) << set name( Column( dtJoined, m ) << get name || "1" )
);
For( i = 2, i <= maxLevels, i++,
dt << select where( :EMPLEVEL == i );
dtTemp = dt << subset( columns( :EMP_ID, :FULL_NAME, :MGR_ID ), selected rows( 1 ) );
For( m = 1, m <= N Cols( dtTemp ), m++,
Column( dtTemp, m ) << set name( Column( dtTemp, m ) << get name || Char( i ) )
);
Eval(
Substitute(
Expr(
dtTemp2 = dtJoined << Join(
With( dtTemp ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( __emp__ = __mgr__ ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
)
),
Expr( __emp__ ), parse(":EMP_ID" || Char( i - 1 )),
Expr( __mgr__ ), Parse(":MGR_ID" || Char( i ))
)
);
Close( dtTemp, nosave );
Close( dtJoined, nosave );
dtJoined = dtTemp2;
);
theNameList={};
for(i=1,i<=maxLevels,i++,
insert into(theNameList, parse(":FULL_NAME" || char(i)))
);
Tabulate(
Show Control Panel( 0 ),
Add Table(
Row Table( Grouping Columns( eval(theNameList) ) )
)
)Re: Creación de cuadro de árbol JSL dinámico a partir de datos jerárquicosPuede obtener algunas ideas de aquí Árbol de directorios: Explore el espacio utilizado por las carpetas o posiblemente del indexador de archivos en el que he estado trabajando jthi-jmp-tools/file-indexer (github.com) (consulte bin/bin/DirectoryTreeHandler.jsl, aún no es tan genérico como me gustaría, pero espero que llegue allí), mi código actualmente es un desastre, porque no he tenido tiempo de terminarlo y empezar a refactorizar.
En mi código, la entrada (actual) es una tabla de datos como esta:

y el resultado final actual es algo como esto:

Modifiqué la lista de directorios de entrada para incluir un directorio mucho más profundo y parecía no tener problemas. Creo que la palabra mágica aquí podría ser recursividad.

Con suerte, la función get_directory_roots puede darte algunas ideas.
Editar:
Lista de funciones JSL addin también puede proporcionar algunas ideas, creo que no tenía más de 1 o dos niveles
Re: Creación de cuadro de árbol JSL dinámico a partir de datos jerárquicosCreo que esto se ajusta a tus necesidades tal como las entiendo:
Names Default to Here( 1 );
dt = Data Table( "DummyTable" );
relations = [=>];
For Each Row( dt,
relations[:FULL_NAME] = Tree Node( :FULL_NAME );
relations[:FULL_NAME] <<SET data="https://community.jmp.com/"></SET>
Re: Creación de cuadro de árbol JSL dinámico a partir de datos jerárquicos@ErraticAdjuntar
¡Gran solución!
Re: Creación de cuadro de árbol JSL dinámico a partir de datos jerárquicosLos diagramas de espina de pescado tienen un menú contextual para reorganizarlos. Todos usan el mismo árbol de displaybox. Es posible agregar otros controles al árbol, similares a la etiqueta. La plataforma se esconde bajo Analizar->CalidadYProceso->Diagrama.
dt = Open("/Z:/DummyTable.csv");
diagram = dt << diagram(parent(MGR_ID),child(EMP_ID),label(FULL_NAME));
// fishbone is the default, change it like this:
(report(diagram)[hierbox(1)])<<CHANGETYPE></CHANGETYPE>
Anidado
Espina
Jerarquía
editar: parece que la plataforma de diagramas no puede reabrir un nodo cerrado en JMP 15/16 (a través del menú emergente). En JMP 14 se puede. He informado del problema.