Hiérarchie des tables de données ouvertesComment obtenir la hiérarchie de toutes les tables de données ouvertes ?
- sous-ensembles
- table empilée / divisée
- tableau récapitulatif
Quelque chose comme la structure arborescente du menu principal, ou de la liste des fenêtres ?
Automatisation et scriptageRe: Hiérarchie des tables de données ouvertesDans ma dernière approche, j'utilise l'astuce de @jthi pour analyser le journal amélioré :
Parlez à la journalisation améliorée
Mais peut-être existe-t-il une approche plus astucieuse, consistant à pirater l'affichage de la liste des fenêtres ?

Malheureusement:

... et la liste des fenêtres n'est pas répertoriée dans obtenir la liste des fenêtres()
Re: Hiérarchie des tables de données ouvertesOu bien spécifier les tables de données dans la fonction Get Window List() ?
Names Default To Here( 1 );
open_tables = Get Window List( Type( "Data Tables" ) ) << Get Window Title;
Re: Hiérarchie des tables de données ouvertesOu
Names Default To Here( 1 );
open_tables = Get Data Table List();
Re: Hiérarchie des tables de données ouvertesJe connais les deux fonctions, mais j'ignorais qu'elles pouvaient être utilisées pour obtenir la hiérarchie des tables de données ouvertes.
Comment puis-je déterminer, à partir des listes renvoyées, quelle table est un sous-ensemble ou un résumé d'une autre table de données ?
Re: Hiérarchie des tables de données ouvertesJe rencontre le même problème d'affichage des fenêtres dans la nouvelle version de l'Assistant. Pour l'instant, je me contente d'examiner les noms et d'analyser les tirets.
Re: Hiérarchie des tables de données ouvertesMalheureusement, le nom de la fenêtre ne permet pas de déterminer si les tables sont liées ou séparées.
J'ai soumis la question au support JMP : TS -00278736
Suggestion : soumettez l'idée à la liste de souhaits.
terminé : GetOpenTableDependencyGraph() et autres
Re: Hiérarchie des tables de données ouvertesPour les rapports, c'est un peu plus simple car vous pouvez utiliser << Obtenir le tableau de données (la partie fastidieuse consiste à obtenir la référence de la plateforme). Exemples très simplifiés
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);
);
Pour les tables de données, la situation se complique et, pour les tables non liées, on ne peut s'appuyer que sur le nom et le script de la table source. Pour les tables liées, il existe des stratégies plus élaborées.