Filtre de données de case à cocherSalut,
Je souhaite avoir une case à cocher dans laquelle l'utilisateur peut sélectionner l'option permettant d'afficher les données. J'ai essayé d'utiliser function mais quelque chose ne semble pas correct dans mon code. Pourriez-vous s'il vous plaît me conseiller ?
Names default to here( 1 );
dt = Open( "$SAMPLE_DATA/Time Series/Raleigh Temps.jmp" );
New window(
"Graph with filter",
Data filter context box(
H list box(
V list box(
Text Box( "Enter month:"),
check Box( {"1","2", "3"}, << set(2),
<<SETFUNCTION></SETFUNCTION>
Études de consommation et de marchéConception d'expériencesRe : Filtre de données avec case à cocherSalut @Jackie_ - l'option invisible n'est vraiment utile que pour les filtres globaux.Cette option supprime complètement le composant d'affichage des filtres de données, mais les filtres locaux dépendent de la position dans le rapport pour déterminer quels rapports sont filtrés.Vous pouvez masquer le filtre d'autres manières, par exemple avec l'option de visibilité d'origine que vous avez utilisée dans la version initiale du script :
lb << Visibility("Collapse");Re : Filtre de données avec case à cocher@danschikore @jthi
J'ai modifié la fonction d'appel ajoutée au code pour clear. Si je définis le filtre de données sur invisible, il ne filtre pas les lignes. Je ne suis pas sûr de ce qui ne va pas. J'ai également joint le tableau de données
Voici à quoi ça ressemble
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Graph with filter",
modal,
Data Filter Context Box(
H List Box(
V List Box(
Text Box( "Select Bins:" ),
Radio Box(
{"1", "2", "N", "A","B","All"},
<<SETFUNCTION></SETFUNCTION>Re : Filtre de données avec case à cocherSalut @Jackie_ - Si vous utilisez le mode d'affichage Radio Box intégré, "Aucun sélectionné" est l'option ajoutée pour sélectionner tous les niveaux.Il s'agit de l'état dans lequel les filtres de colonnes démarrent, ainsi que de l'état dans lequel ils reviennent lorsque vous effacez l'élément de filtre.Lorsqu'un élément de filtre est « Clear », il ne participe pas au filtre et le script enregistré ne contient pas de clause Where pour cette colonne.
Si vous devez le faire à partir de votre affichage de filtre personnalisé, appeler <
Re : Filtre de données avec case à cocherLe problème vient très probablement de la clause Where, je suggérerais d'ajouter une référence à la case à cocher pour vous aider avec le débogage et voir comment elle se comporte, puis d'essayer de faire fonctionner la fonction en dehors de la fonction. Une fois que vous avez fait cela comme vous le souhaitez, essayez de l'implémenter dans la fonction.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Time Series/Raleigh Temps.jmp");
New Window("Graph with filter",
Data Filter Context Box(
H List Box(
V List Box(
Text Box("Enter month:"),
cb = Check Box({"1", "2", "3"}, // add reference here for easier debugging
<<SET></SET>
Si vous pouviez utiliser Masquer et Exclure (ou rowstates) ici, ce serait beaucoup plus simple que d'utiliser un filtre de données local, mais ce n'est pas toujours possible.
Re : Filtre de données avec case à cocher@danschikore Merci beaucoup!
Question rapide - Je souhaite ajouter une option dans la case radio "Afficher tout" qui affichera toutes les données du mois. Aucune suggestion?
Re : Filtre de données avec case à cocherEn général, je pense qu'il est préférable d'évaluer pleinement les expressions constantes de la clause Where, avant d'envoyer le message au filtre de données.Dans ce petit extrait, je suis également passé d'une Check Box à une Radio Box.Le problème avec une case à cocher est que vous pouvez sélectionner des plages qui ne sont peut-être pas réellement possibles dans le filtre (sélectionnez 1,3, mais pas 2).
radio Box( {"1","2", "3"}, << set(2),
<<SETFUNCTION></SETFUNCTION>
Vous pouvez envisager de changer le type de modélisation du numéro de mois dans cet exemple en Nominal/Ordinal (soit dans le tableau de données, soit uniquement pour le filtre, dans le menu du triangle rouge).Cela vous donnerait plus de flexibilité dans la clause Where qui prendrait en charge le comportement de type Check Box, ou vous pourrez peut-être simplement utiliser les modes Check Box et Radio Box intégrés du filtre.Ceci est un exemple JMP 16 :
dt = Open( "$SAMPLE_DATA/Time Series/Raleigh Temps.jmp" );
dt << Graph Builder(
Size( 400, 563 ),
Show Control Panel( 0 ),
Variables(
X( :"Month/Year"n ),
Y( :Temperature ),
Y( :Predicted Temperature, Position( 1 ) )
),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 23 ) ) ),
Local Data Filter(
Add Filter(
columns( :Month Number ),
Modeling Type( :Month Number, Nominal ),
Where( :Month Number == {1, 3} ),
Display(
:Month Number,
N Items( 5 ),
"Check Box Display",
Find( Set Text( "" ) )
)
)
)
);