Sélecteur de tableau de données interactif<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Existe-t-il un moyen de scripter cette partie de sélection de liste de table de données suivante dans un script jsl?

À partir de maintenant, j'ai un script fait, mais seulement sur une table de données à la fois, y a-t-il une fonction que je peux appeler pour créer un sélecteur de liste de table de données comme l'image que j'ai jointe ci-dessus, et lors de la sélection, je peux avoir mon tableau de données actuel mis à jour en conséquence ? Mon script pas si flexible ressemble maintenant à ceci

Je veux y parvenir

Toute aide serait grandement appréciée!
Re : Sélecteur de tableau de données interactifQuelqu'un a-t-il une solution pour actualiser le sélecteur de filtre de col en utilisant une méthode similaire à PMroz ? Sa réponse est à peu près la plus proche de ce que j'essaie d'obtenir, la seule différence étant que j'utilise un sélecteur de filtre de couleur au lieu d'une zone de liste de couleurs, et je n'arrive pas à le mettre à jour ou à l'actualiser en conséquence
Re : Sélecteur de tableau de données interactifSalut PMroz,
Cela fonctionne très bien pour moi, je l'ai intégré dans mon script et j'ai réalisé que j'avais mal utilisé un mot là-haut, j'utilisais un filtre Col Selector au lieu d'une liste déroulante col, je vois que votre façon de le faire est de définir et de mettre à jour le nouvel ensemble de colonnes de la table basée sur la table de données sélectionnée, et la partie qui l'actualise est lorsque vous appelez
colonnes_listbox = zone de liste ( col_list ) ;
pour afficher le tableau nouvellement mis à jour. J'ai donc essayé de le reproduire pour le "filter col selector".
1) J'ai modifié un peu votre code pour qu'il n'apparaisse pas dans une nouvelle fenêtre et revienne dans ma fenêtre d'origine
2) J'ai modifié le filtre Col Selector en variable "SelectedIndex" et l'ai appelé ci-dessous dans l'espoir qu'il se mettrait à jour, mais évidemment je le fais mal. Connaissez-vous la bonne façon d'actualiser le sélecteur de couleurs de filtre comme vous l'avez fait pour la zone de liste de couleurs ? J'aimerais appliquer votre méthode de travail pour la Col List Box au Filter Col Selector

Ceci est mon code pour le filtre Col Selector
param = Filter Col Selector(table de données(selectedIndex),
tous,
largeur( 250 ),
nom_colonne = param << obtenir sélectionné();
colStatInfo(colname[1]);
liste << inval;
liste << fenêtre de mise à jour ;
liste << réafficher ;
),
param << nominal( 0 );
//param << Le nom contient( " " );
)
Re : Sélecteur de tableau de données interactifEssayez ce code :
// Précharge la table combobox avec une liste de tables existantes
table_par_défaut = tableau de données actuel () << obtenir le nom ;
table_list = {} ;
tables = ntable () ;
Pour ( je = 1 , je <= tables , je ++,
un_nom = Tableau de données ( je ) << Obtenir le nom ;
table_list [ je ] = un_nom ;
// Pour la table par défaut charger la liste des colonnes
si ( un_nom == table_par_défaut ,
par défaut = je ;
col_list = tableau de données ( je ) << obtenir les noms de colonnes ( en tant que chaîne ) ;
) ;
) ;
nouveau = nouvelle fenetre ( "Test" ,
select_table_combo = boîte combo ( table_list ,
// Cette fonction est appelée lorsque la sélection Combo Box change
index sélectionné = select_table_Combo << Soyez sélectionné ;
col_list = tableau de données ( index sélectionné ) << obtenir les noms de colonnes ( en tant que chaîne ) ;
// colonnes_listbox << tout supprimer ;
colonnes_listbox << définir des éléments ( col_list ) ; ) ,
colonnes_listbox = zone de liste ( col_list ) ;
) ;
Re : Sélecteur de tableau de données interactifSalut PMroz, j'ai lu la présentation et je suis maintenant conscient que cela peut être fait plus facilement et beaucoup plus interactif s'il est fait en utilisant le constructeur d'applications, mais à ce stade (un millier de lignes dans le script), il faudrait probablement un certain temps pour le reconstruire dans le générateur d'applications. Existe-t-il un moyen d'actualiser automatiquement les colonnes lorsque je sélectionne la table et que je clique sur la boîte à boutons sans tout porter au générateur d'applications ?
Re : Sélecteur de tableau de données interactifCe présentation sur Application Builder devrait être utile.Entre autres choses, il montre comment remplir dynamiquement une zone de liste avec des noms de colonne lorsqu'une table particulière est choisie.
Re : Sélecteur de tableau de données interactifDésolé, j'aurais dû fournir plus de détails, vous avez raison, j'ai une Col List Box quelque part en dessous que je voudrais mettre à jour automatiquement en affichant les colonnes en fonction du tableau que j'ai sélectionné

Pouvez-vous en dire plus sur l'attachement d'un script à dtlb? Défini ci-dessus, dtlb = Zone de liste ( dtNames , MaxItems ( 1 ))
Re : Sélecteur de tableau de données interactifJe pense que la réponse dépend de la manière dont vous avez conçu les autres parties de l'interface utilisateur pour prendre en charge le flux de travail souhaité. Mais je ne pense pas que vous ayez besoin de récursivité.
Par exemple, si vous avez également un 'ColListBox()' pour afficher les colonnes de la table qui a été sélectionnée via la méthode ci-dessus, vous pouvez attacher un script à 'dtlb' (défini ci-dessus) de sorte que (lorsque la sélection de la table est faites ou modifiées), il met automatiquement à jour la liste des colonnes disponibles. De même, vous pouvez lier un script au 'ColListBox()' qui crée ou met à jour une fenêtre de rapport (en supposant que vous n'ayez besoin que d'une seule colonne pour votre analyse).
(Sans voir plus de détails, c'est un peu difficile d'être plus utile).
Re : Sélecteur de tableau de données interactifMerci Ian pour l'aide, j'ai une question de suivi si cela ne vous dérange pas. Maintenant que j'ai un moyen d'obtenir la liste de toutes les tables de données, de mettre à jour le script et d'exécuter toutes les opérations sur la table de données nouvellement sélectionnée, il est recommandé d'appeler exactement le même script (avec la table de données nouvellement choisie) par récursivité ? Ou y a-t-il une fonction que j'ignore qui peut rapidement actualiser le script et l'exécuter sur la nouvelle table de données que j'ai sélectionnée ?
Re : Sélecteur de tableau de données interactifPeut-être quelque chose comme ça :
NomsDefaultToHere ( 1 ) ;
dtNames = {} ;
Pour ( t = 1 , t <= NTable () , t ++,
Insérer dans ( dtNames , Tableau de données ( t ) << obtenirNom ) ;
) ;
nouveau =
Nouvelle fenetre ( "Test" ,
Panneau électrique ( "Choisir une table" ,
dtlb = Zone de liste ( dtNames , MaxItems ( 1 ))
) ,
ButtonBox ( "D'ACCORD" , OKscript )
) ;
OKScript =
Expr (
nouveau << Fermer la fenêtre ;
dtName = dtlb << getSelected ;
si ( NIéléments ( dtName ) > 0 ,
Imprimer ( "Tableau sélectionné : " || dtName [ 1 ])
,
Imprimer ( "Aucun tableau sélectionné" )
)
) ;
Re : Sélecteur de table de données interactive@pmroz Bonjour, pourriez-vous partager à nouveau le lien de présentation vers le générateur d'applications. J'ai le même cas d'utilisation mais le lien semble avoir été archivé.
Re : Sélecteur de table de données interactiveVoilà @Aadit . Cela a été écrit dans JMP 10 ! Mais il devrait toujours avoir des informations pertinentes.