Gerarchia delle tabelle di dati aperteCome posso ottenere una gerarchia di tutte le tabelle di dati aperti:
- sottoinsiemi
- tavolo impilato/diviso
- tabella riassuntiva
qualcosa come la struttura ad albero nel menu principale o nell'elenco delle finestre?
Automazione e scriptingRe: Gerarchia delle tabelle di dati apertenel mio ultimo approccio, utilizzo il trucco di @jthi per analizzare il registro migliorato:
parlare con il registro migliorato
Ma forse esiste un approccio più intelligente: hackerare la visualizzazione dell'elenco delle finestre?

Purtroppo:

... e l'elenco delle finestre non è elencato in Ottieni elenco finestre()
Re: Gerarchia delle tabelle di dati aperteOppure specificare tabelle di dati nella funzione Get Window List()?
Names Default To Here( 1 );
open_tables = Get Window List( Type( "Data Tables" ) ) << Get Window Title;
Re: Gerarchia delle tabelle di dati aperteO
Names Default To Here( 1 );
open_tables = Get Data Table List();
Re: Gerarchia delle tabelle di dati aperteConosco entrambe le funzioni, ma non sapevo che potessero essere utilizzate per ottenere la gerarchia delle tabelle di dati aperti.
Come posso scoprire dagli elenchi restituiti quale tabella è un sottoinsieme o un riepilogo di un'altra tabella dati?
Re: Gerarchia delle tabelle di dati aperteSto riscontrando lo stesso problema con la visualizzazione delle finestre nel nuovo Assistente in arrivo. Al momento sto solo esaminando i nomi e analizzando "-".
Re: Gerarchia delle tabelle di dati apertePurtroppo dal nome della finestra non è possibile dedurre se le tabelle sono collegate o separate.
Ho inviato la domanda al supporto JMP: TS- 00278736
il suggerimento: invia l'idea alla lista dei desideri.
fatto: GetOpenTableDependencyGraph() e altri
Re: Gerarchia delle tabelle di dati apertePer i report è un po' più semplice perché puoi usare << Ottieni tabella dati (la parte fastidiosa è ottenere il riferimento alla piattaforma). Esempi semplificati
get_reference_table_window = Function({reportwindow}, {Default Local},
table = Empty();
tablelist = Get Data Table List() << get name;
window_title = reportwindow << Get Window Title;
table = Empty(); // one should definitely match...
For Each({tablename}, tablelist,
If(Starts With(window_title, tablename),
table = Datatable(tablename);
break;
);
);
return(table);
);
get_reference_table_helpkey = Function({reportwindow}, {Default Local},
table = Empty();
// look for OutlineBoxes with helpKey xml attribute
obs = reportwindow << XPath("//OutlineBox[@helpKey]"); // can run out of depth, could also loop over outlineboxes
objs = obs << Get Scriptable Object;
For Each({obj}, objs,
If(Is Empty(obj),
continue();
);
sobj = obj << Get Scriptable Object;
If(!Is Empty(sobj),
table = sobj << Get Data Table;
);
);
return(table);
);
Per le tabelle dati la situazione diventa più caotica e, per le tabelle non collegate, ci si può basare solo sul nome e sullo script della tabella sorgente. Per le tabelle collegate, invece, si possono provare strategie più complesse.