Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Je sais comment faire cela de manière interactive, mais comment faire pour obtenir des données sélectionnées par Data Filter () à partir d'une table de données parente dans une nouvelle table de données (sous-ensemble) via JSL? J'ai également besoin que la nouvelle table de données du sous-ensemble soit créée récemment (en fermant l'ancien sous-ensemble) ou que l'ancienne soit actualisée (si cela est possible) à mesure que la sélection change dans le filtre de données.
Automatisation et scriptRe : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Quel type de filtre de données avez-vous et où ? Comment l'utilisateur effectue les sélections (doit-on utiliser uniquement les sélections effectuées sur le filtre de données) ? A quoi sert le tableau obtenu ?
Vérifier l'index de script pour le filtre de données

Obtenir les lignes filtrées, obtenir la clause Where, afficher le sous-ensemble comme certaines options
Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?@jthi C'est le filtre de données ()
C'est ce que j'ai jusqu'ici. Cela fonctionne partiellement. J'ai besoin que la table soit mise à jour ou en génère une nouvelle si la sélection change. Comment faire cela en JSL (sur Close()) ?
Names Default To Here (1);
dt = Current Data Table();
nw = New Window("Select Parameters", << modal, << return result,
obj = dt << Data Filter(
//Location( {3000, -600} ),
Width( 315 ),
Conditional,
Add Filter(
columns( :Col1, :Col2, :Col3, :Col4),
Display( :Col2, "Check Box Display" ),
Display( :Col3, "Check Box Display" ),
Display( :Col4, "Check Box Display" ),
Display(
:Parameter,
N Items( 20 ),
"Check Box Display",
Find( Set Text( "" ) )
)
)
);
);
//obj << Get Filtered Rows;
dtNew = dt << subset( selected columns(1), selected rows(1));Je commence avec toutes les cases décochées pour que l'utilisateur sélectionne en fonction de la génération de la table de données. Get Filtered Rows ne semble pas fonctionner dans mon cas.
Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Vous voulez qu'un nouveau tableau soit généré à chaque fois que la sélection change ? Ou voulez-vous avoir un modal qui continuera après que l'utilisateur ait effectué les sélections ?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?@jthi je préférerais un une nouvelle table soit générée à chaque fois que la sélection change en supprimant les anciennes valeurs de la table (utile pour ce que je veux faire ensuite). Je ne sais pas comment faire cela d'où l'approche modale.
Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Vous pouvez utiliser le gestionnaire d'état de filtre pour déclencher des "événements" lorsque la sélection dans le filtre est modifiée.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
f = Function({a},
Show(obj << get filtered rows);
);
nw = New Window("Select Parameters",
<<MODAL></MODAL>Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?@jthi Merci d'avoir pointé vers gestionnaire d'état de filtre. Cependant, votre script ne fait pas exactement ce que je voudrais pour la méthode "remplacer la table de données existante par de nouvelles données". La fenêtre du filtre de données doit rester ouverte et les données remplies/mises à jour/régénérées dans "dtNew" lorsque l'utilisateur change de sélection. Possible?
Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Ne serait-il pas plus simple de laisser l'utilisateur effectuer toutes les sélections, puis de lui faire appuyer sur OK lorsqu'il est prêt ?
Re : Comment obtenir les données sélectionnées par Data Filter () dans une nouvelle table de données (en utilisant JSL) ?Le mieux est d'utiliser un filtre de données local - un filtre de données global modifie les états des lignes de la table de données.
Si vous disposez d'une fenêtre avec un tel filtre de données local (première partie), il vous suffit d'exécuter ce code - et vous obtiendrez un sous-ensemble correspondant.
Le code peut être utilisé pour chaque fenêtre de rapport et peut être ajouté en tant que raccourci de la barre d'outils.
Alternativement, on pourrait ajouter une Button Box à la fenêtre pour déclencher la génération de la table de sous-ensemble.
Names Default to Here(1);
/*dt0 = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt0 << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);*/
ldf = Try( Current Report()["Local Data Filter"] << get scriptable object, Stop() );
dt = ldf << Get Data Table();
WhereClause = ldf << Get where clause();
If( Not( Is Missing( WhereClause ) ),
Eval( Parse( Substitute( ldf << Get where clause(), "Select Where", "myRows= dt << get rows where" ) ) );
dt << subset( Rows( myRows ), Selected columns only( 0 ) );
);
Alternativement .... *)
Re : Comment obtenir des données sélectionnées par Data Filter() dans une nouvelle table de données (à l'aide de JSL) ?Que diriez -vous du module complémentaire de sous-ensemble dynamique (table de données filtrable, mise à jour) ?