|
| effectuer plusieurs filtres sur une table |
| Iniciado por m1b.software, 18,feb. 2007 23:54 - 4 respuestas |
| |
| | | |
|
| |
| Publicado el 18,febrero 2007 - 23:54 |
Bonjour à tous,
Je voulais vous demander
1) J'aimerai faire plusieurs filtres sur la même table ( voir code ci-dessous ) en fait je filtre par ex. numéro du document, montant, statut, etc...
Mais je pense que je fais pas juste le filtre multiple, car si je fait un filtre de manière individuelle pour chacun de ces champs, ça marche très bien. Seulement quand je veux mettre plusieurs paramètres pour ce filtre, alors ca ne marche plus. ( certainement que je n'ai pas fait correctement les filtres ci-dessous) Pouvez-vous m'indiquez ce que je fais faux ?
2) Le filtre sur les dates, se passe comme pour les autres champ classiques ? Ou il y a quelque chose de spécifique à savoir pour que ça fonctionne ?
encore merci
Marc V
// FILTRE PAR NUMERO DE DOC sRubCléParcours_no_facture est une chaîne // On active le filtre sRubCléParcours_no_facture = HFiltre(T_factures, "fac_numero=" champ_no_facture "")
// Parcours des enregistrements filtrés HLitPremier(T_factures, sRubCléParcours_no_facture) TANTQUE PAS HEnDehors() HLitSuivant(T_factures, sRubCléParcours_no_facture) FIN
// FILTRE PAR MONTANT sRubCléParcours_montant_facture est une chaîne // On active le filtre sRubCléParcours_montant_facture = HFiltre(T_factures, "fac_montant_total=" champ_montant "")
// Parcours des enregistrements filtrés HLitPremier(T_factures, sRubCléParcours_montant_facture) TANTQUE PAS HEnDehors() HLitSuivant(T_factures, sRubCléParcours_montant_facture) FIN
// FILTRE PAR DATE sRubCléParcours_date est une chaîne // On active le filtre sRubCléParcours_date = HFiltre(T_factures, "fac_date=" champ_date "")
// Parcours des enregistrements filtrés HLitPremier(T_factures, sRubCléParcours_date) TANTQUE PAS HEnDehors() HLitSuivant(T_factures, sRubCléParcours_date) FIN
// FILTRE PAR STATUT DE DOCUMENT sRubCléParcours_statut_doc est une chaîne // On active le filtre sRubCléParcours_statut_doc = HFiltre(T_factures, "fac_statut=" COMBO_factures_statut "")
// Parcours des enregistrements filtrés HLitPremier(T_factures, sRubCléParcours_statut_doc) TANTQUE PAS HEnDehors() HLitSuivant(T_factures, sRubCléParcours_statut_doc) FIN
// REFRESH LA TABLE TableAffiche(FEN_factures.TABLE_factures) Ferme() |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,febrero 2007 - 09:53 |
Bonjour,
La mise en place d'un filtre remplace le filtre précédent. En procédant comme tu fais, seul le dernier filtre est pris en compte.
Pour obtenir ce que tu veux, utilise une requête et base ta table sur cette requête. En t'aidant de l'asistant, ce n'est pas difficle.
Hubert |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,febrero 2007 - 08:06 |
Hello, finalement j'ai compris comment faire le filtre multiple ( voici un exemple pour 2 champs )
SI champ_no_facture <> 0 ET champ_montant <> 0 ALORS // FILTRE PAR NUMERO DE DOC ET MONTANT TOTAL sRubCléParcours_no_facture_et_montant est une chaîne // On active le filtre
sRubCléParcours_no_facture_et_montant = HFiltre(T_factures, "fac_numero=' " champ_no_facture "' et fac_montant_total='" champ_montant "'")
// Parcours des enregistrements filtrés HLitPremier(T_factures, sRubCléParcours_no_facture_et_montant) TANTQUE PAS HEnDehors() HLitSuivant(T_factures, sRubCléParcours_no_facture_et_montant) FIN FIN
Voila voila..
Bonne soirée et bon DEV. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 01,marzo 2007 - 18:56 |
Une solution simple à créer un champ composé avec tous les champs dans l'ordre du filtre. Ensuite créer une variable de recherche en concatenant les valeurs des cahmps.
Bon Dev... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1 mensaje |
|
| Publicado el 24,julio 2019 - 11:09 |
Il est aussi possible de faire un filtrage au niveau de la table.
Pour cela, cliquer en bas de la fenêtre de code de la table sur 'Ajouter d'autres événement à TABLE_XXX'.
En ajoutant l'événement 'Filtrage des enregistrements de TABLE_XXX', il est possible de filtrer en renvoyant vrai ou faux. L'exemple de la documentation (https://doc.pcsoft.fr/fr-FR/?1013189) est le suivant :
// -- Filtrage des enregistrements // Affiche uniquement les clients dont commandes sont supérieures à 3000 euros SI Commande.TotalTTC >=3000 ALORS RENVOYER Vrai SINON RENVOYER Faux FIN
NB : bien noter que l'on travaille sur l'enregistrement (fichier Commande) et non sur les colonnes de la table dans ce code |
| |
| |
| | | |
|
| | | | |
| | |
|