PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → tableActiveFiltre sur plusieurs valeurs
tableActiveFiltre sur plusieurs valeurs
Started by Fany, Dec., 12 2017 8:46 AM - 8 replies
Registered member
365 messages
Popularité : +12 (12 votes)
Posted on December, 12 2017 - 8:46 AM
Bonjour à tous,

Pourriez vous m'aider svp ?
Je voudrais utiliser "TableActiveFiltre" sur une colonne.
TableActiveFiltre(TABLE_Gantt.COL_PhaseActive,filtreEgal,"JAUNE")

Ok, pas de problème si je cherche UNE SEULE valeur.
Mais comment filtrer sur plusieurs valeurs ?

Du style :
TableActiveFiltre(TABLE_Gantt.COL_PhaseActive,filtreEgal,"JAUNE","BLEU")

J'ai essayé pas mal de syntaxe, mais en vain...

Comment faire ?

D'avance merci

Fany
Posted on December, 12 2017 - 12:22 PM
Bonjour,

Je crois pas que ce soit possible, je ne sais pas comment tu remplis ta table, mais tu pourrais garder un tableau en mémoire (ou une source de données) à l'image de ta table et ré afficher à chaque fois.

Patrick
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on December, 12 2017 - 12:38 PM
Coucou,

La solution la plus simple et de crée une clef composer et de crée une colone invisible avec le contenu de la clef composer

--
In üs we trust - Joyeux noël
Posted on December, 12 2017 - 12:55 PM
pas tout à fait d'accord avec toi Charly, la clé composé implique qu'il faudra créer autant de colonne invisible que de combinaison de filtre possible, j'ai proposé une autre solution mais comme je n'avais pas encore activé mon compte, elle n'est pas encore affiché.
Posted on December, 12 2017 - 5:45 PM
Bjr,

Fany avait soumis l'idée :
Bonjour à tous,

Pourriez vous m'aider svp ? Je voudrais utiliser "TableActiveFiltre" sur une
colonne.
TableActiveFiltre(TABLE_Gantt.COL_PhaseActive,filtreEgal,"JAUNE")

Ok, pas de problème si je cherche UNE SEULE valeur.
Mais comment filtrer sur plusieurs valeurs ?

Du style :
TableActiveFiltre(TABLE_Gantt.COL_PhaseActive,filtreEgal,"JAUNE","BLEU")

J'ai essayé pas mal de syntaxe, mais en vain...

Comment faire ?

D'avance merci

Fany


Avec un index fulltext, tu as essayé ?

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posted on December, 12 2017 - 6:20 PM
La concaténation des deux colonnes est une solution simple.

On ajoute les lignes avec une colonne cachée qui concatène les deux premières valeurs
TableAjoute(Table1,"jaune"+TAB+"bleu"+TAB+"jaune"+"bleu")
TableAjoute(Table1,"jaune"+TAB+"bleu"+TAB+"jaune"+"bleu")
TableAjoute(Table1,"jaune"+TAB+"bleu"+TAB+"jaune"+"bleu")
TableAjoute(Table1,"jaune"+TAB+"bleu"+TAB+"jaune"+"bleu")
TableAjoute(Table1,"jaune"+TAB+"rouge"+TAB+"jaune"+"rouge")
TableAjoute(Table1,"jaune"+TAB+"rouge"+TAB+"jaune"+"rouge")
TableAjoute(Table1,"jaune"+TAB+"rouge"+TAB+"jaune"+"rouge")
TableAjoute(Table1,"jaune"+TAB+"rouge"+TAB+"jaune"+"rouge")


On active le filtre sur la valeur recherchée dans la colonne concaténée
TableActiveFiltre(Table1.Colonne3,filtreContient,"jaunebleu")
Registered member
96 messages
Popularité : +18 (20 votes)
Posted on December, 13 2017 - 11:30 AM
Bonjour,

Il faut savoir que les filtres de table proposé par WinDev sont minimalistes, mais je crois que la version 23 permettra d'aller plus loin puisqu'on pourra capturer les événements sur ces fameux filtres.

En attendant, si vous souhaitez faire compliqué (pour WinDev) et gérer deux valeurs de filtre différentes, je vous conseille de gérer vous même le filtre et de ne pas passer par TableActiveFiltre.

La première chose serait de savoir sur quel type de table vous travaillez, car la méthode change en fonction des cas :
- Sur une table fichier : vous avez un événement filtrage des enregistrements
- Sur une table mémoire : c'est vous qui alimentez la table, libre à vous d'ajouter ou d'enlever ce que vous ne souhaitez pas afficher
- Sur une table basée sur une variable (méthode que j'utilise le plus souvent) : j'utilise deux tableaux. Un contenant toutes mes données, l'autre contenant les données filtrées. La table affiche le contenu du tableau filtré. Chaque fois que je modifie le filtre, je mets à jour le tableau filtré.

Et pour capturer le filtre à appliquer, vous pouvez rajouter une zone de saisie à côté de la table.

Si vous souhaitez plus de détail sur l'une des méthodes, n'hésitez pas !
Bonne journée !

--
Johjo aka Jonathan Laurent

Mon blog sur WinDev : http://blog.ytreza.org
Me contacter par Twitter : @Johjo07
Registered member
365 messages
Popularité : +12 (12 votes)
Posted on December, 19 2017 - 5:17 PM
Bonjour à tous et merci pour votre aide.

Mon tableau est issu d'une requête. Donc si je la retravaille un peu, je pourrais filtrer les résultats un peu mieux.
Seulement, je pensais que je pouvais filtrer sur plusieurs valeurs dans une même colonne plus facilement avec "tableActiveFiltre", ça aurait été plus simple pour moi que de retoucher ma requête.

Patrick, sauf erreur de ma part, votre message dans lequel vous proposiez votre solution n'a jamais été publié non ? dommage, j'aurai bien voulu voir la solution que vous proposiez ^^

En tous cas merci d'avoir prit le temps d'analyser ma question et de proposer des solutions.

Fany
Registered member
4 messages
Posted on March, 06 2018 - 2:47 PM
Bonjour,
j'ai besoin de plus de précision svp.

J'ai une table (de type Fichier/Requête, chargée en mémoire) qui contient une liste d'adresses mails.
Je souhaiterais exclure les adresses venant de 2 domaines différents.

Code qui ne fonctionne pas car seule la dernière action est prise en compte :
TableActiveFiltre(TABLE_DONNEES.COL_Expediteur,filtreNeContientPas,"@domaine1.fr")
TableActiveFiltre(TABLE_DONNEES.COL_Expediteur,filtreNeContientPas,"@domaine2.fr")

Il faudrait un truc du genre :
TableActiveFiltre(TABLE_DONNEES.COL_Expediteur,filtreNeContientPas,"@domaine1.fr" ou "@domaine2.fr")

Merci à tous pour votre aide.
Lionel
Message modified, March, 06 2018 - 2:49 PM