Dynamische JSL-Tree-Box-Erstellung aus hierarchischen DatenKann jemand eine Methode zum Erstellen einer dynamischen verschachtelten Baumbox mit hierarchischen Daten vorschlagen? Ich habe es heute Abend ein paar Stunden versucht und es verwirrt mich 
Ich habe unten einige Dummy-Daten, um die Beziehungen darzustellen, die drei Ebenen tief sind. Offensichtlich möchte ich dies nicht fest codieren, da ich im Voraus nicht weiß, wie viele Ebenen der Verschachtelung ich erstellen muss. In Wirklichkeit werden es 10 oder mehr Ebenen sein.
Tschüss, Troy
Damit fange ich an (Tabelle im Anhang)

Das möchte ich generieren

AnalytikSkripterstellungBetreff: Dynamische JSL-Tree-Box-Erstellung aus hierarchischen DatenHier ist etwas, das ich anhand Ihrer Beispieltabelle zusammengestellt habe, das Ihnen helfen könnte, dorthin zu gelangen, wo Sie es möchten

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) ) )
)
)Betreff: Dynamische JSL-Tree-Box-Erstellung aus hierarchischen DatenVielleicht bekommst du hier ein paar Ideen Verzeichnisbaum: Erkunden Sie den von Ordnern belegten Speicherplatz oder möglicherweise vom Dateiindexer, an dem ich gearbeitet habe jthi-jmp-tools/file-indexer (github.com) (siehe bin/bin/DirectoryTreeHandler.jsl, es ist noch nicht so generisch, wie ich es gerne hätte, aber hoffentlich wird es dahin kommen), mein Code ist derzeit ein Durcheinander, weil ich keine Zeit hatte, ihn fertigzustellen und beginne mit dem Refactoring.
In meinem Code ist die (aktuelle) Eingabe wie folgt datatable:

und aktuelles Endergebnis etwa so:

Ich habe die Eingabeverzeichnisliste so geändert, dass sie ein viel tieferes Verzeichnis enthält, und es schien keine Probleme zu geben. Ich denke, das Zauberwort könnte hier Rekursion sein

Hoffentlich kann Ihnen die Funktion get_directory_roots einige Ideen geben.
Bearbeiten:
JSL-Funktionsliste addin kann auch einige Ideen liefern, ich denke, es hatte nicht mehr als 1 oder zwei Ebenen
Betreff: Dynamische JSL-Tree-Box-Erstellung aus hierarchischen DatenIch denke, dass dies Ihren Bedürfnissen entspricht, wie ich sie verstehe:
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>
Betreff: Dynamische JSL-Tree-Box-Erstellung aus hierarchischen Daten@ErraticAttach
Tolle Lösung!
Betreff: Dynamische JSL-Tree-Box-Erstellung aus hierarchischen DatenDie Fischgrätendiagramme haben ein Rechtsklickmenü, um sie neu anzuordnen. Sie alle verwenden denselben Displaybox-Baum. Es ist möglich, dem Baum weitere Steuerelemente hinzuzufügen, ähnlich wie beim Etikett. Die Plattform versteckt sich unter Analyze->QualityAndProcess->Diagram.
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>
Verschachtelt
Gräten
Hierarchie
Bearbeiten: Es sieht so aus, als ob die Diagrammplattform einen geschlossenen Knoten in JMP 15/16 (über das Popup-Menü) möglicherweise nicht wieder öffnen kann. In JMP 14 ist dies möglich. Ich habe das Problem gemeldet.