[Résolu] Affichage table selon selection dans un combo
Anonyme
bonsoir
j'ai une table qui s'affiche dans une fenetre
dessous, je souhaite mettre un combo pour filtrer mes enregistrements affichés.
et ce, sur plusieurs colonnes de la table
EX : Couleur de vin, Région, Appéllation....

le trie peut se faire sur une ou plusieurs combo a la fois.
comment s'y prendre ?
la table est remplie par programmation

merci

Contribution le : 22/10/2005 23:10
Créer un fichier PDF de la contribution Imprimer


Re: Affichage table selon selection dans un combo
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Sur chaque modification de vos combos, il faut constituer une chaine avec les différents filtres à appliquer.


W_C_Filtre est une chaine = ""
W_C_CleP   est une chaine

SI ComboRegion <> 0 alors
 W_C_Filtre += "IdRegion = " + ComboRegion
FIn

SI ComboCouleur <> 0 alors
 W_C_Filtre += "IdCouleur = " + ComboCouleur
FIn

...

w_c_clep = hfiltre(VINS,W_C_Filtre)
hlitpremier(VINS,W_C_CleP)
tantque pas hendehors(VINS)
 tableajouteligne(Nomtable,Vins.id,Vins.nom...
 ...


Contribution le : 24/10/2005 08:42
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Affichage table selon selection dans un combo
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Une autre technique consiste à utiliser une requete d'ans l'éditeur de requete avec les paramêtres désirés, ici
- Couleur du Vin
- Région
- Appélation

Type de la requête générée dans l'éditeur
Nom de la requête : req_SelectVins
SELECT vi_NOM AS NOM,
       FROM Vins
       WHERE vi_Couleur = {pCouleur}
       AND vi_Region = {pRegion}
       AND viAppelation = {pAppelation}

Cette requête contient donc 3 paramètres.
utiliser l'assistant pour créer la table sur ce fichier puis créer 3 combos qui vont contenir les différentes couleurs de vin(le contenu peut lui aussi être issu d'une requete) ajouter une première ligne personnalisée qui contient
Un simple :
SELECT DISTINCT vi_Couleur AS Couleur
       FROM Vins

fera l'affaire pour remplir votre combo

Pour l'affichage de votre table Nommée 'MaTable' créer une procédure appelée à chaque changement de ligne des combos du type proAfficheVins
PROCEDURE proAfficheVins()
vCouleur est un variant
vRegion est un variant
vAppelation est un variant

Si cmbCouleur..ValeurAffichée <> "<Toutes>" alors
 vCouleur = cmbCouleur..ValeurAffichée
Fin
Si cmbRegion..ValeurAffichée <> "<Toutes>" alors
 vRegion = cmbRegion..ValeurAffichée
Fin
Si cmbAppelation..ValeurAffichée <> "<Toutes>" alors
 vAppelation = cmbAppelation..ValeurAffichée
Fin

Req_SelectVin..pCouleur = vCouleur
Req_SelectVins..pRegion = vRegion
Req_SelectVin..Appelation = vAppelation
HExecuteRequete(req_SelectVins,hModifieFichier)
MaTable..FichierParcourue = "req_SelectVins"

Les paramètres qui restent à null sont ignorés au moment de l'exécution de la requête.

Ce code qui à première abord parraît plus compliqué a les avantages suivants:

-le résultat de la table est lié aux données du fichiers et donc chaques modifications est directement retranscrites dans le fichier sans ajout de code spécifique.

- L'affichage est très rapide même sur un fichier de grande taille car il utilise une table fichier.


Le code à été saisie à la volée et peut contenir des erreurs.

Contribution le : 24/10/2005 10:54
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Affichage table selon selection dans un combo
Anonyme
bonsoir
je n'ai pas eu le temps de m'en occuper avant !!!

j'ai un petit soucis avec votre requete :
voici mon code :
SELECT Vin.Nom AS nom
FROM Vin
WHERE Vin.Couleur = {pCouleur}
AND Vin.Région = {pRegion}
AND Vin.Appellation = {pAppellation}

procédure toto()
vCouleur est un Variant
vRegion est un Variant
vAppelation est un Variant

SI choix_couleur..ValeurAffichée <> "" ALORS
vCouleur = choix_couleur..ValeurAffichée
FIN
SI choix_région..ValeurAffichée <> "" ALORS
vRegion = choix_région..ValeurAffichée
FIN
SI choix_appellation..ValeurAffichée <> "" ALORS
vAppelation = choix_appellation..ValeurAffichée
FIN

req_SelectVins.pCouleur = vCouleur
req_SelectVins.pRegion = vRegion
req_SelectVins.pAppellation = vAppelation
HExécuteRequête(req_SelectVins,hModifieFichier)
Table..FichierParcouru = "req_SelectVins"

dans ma table, je n'arrive pas a afficher tous les enregistrements a l'affichage dela fenetre.
dans l'onglet contenu de ma table, j'ai choisi la requete crée précedement.
je teste la fenetre et message d'erreur :

une erreur est survenue dans la fenetre.
le champ "table" n'as pas pu s'initialiser car il a rencontré l'erreur HF suivante :
Fichier inconnu dans l'analyse ou requete ou vu non initialisée.

je ne comprend pas ce qu'il faut faire.
soyer indulgent, je suis néophite sous windev et encore plus en SQL
merci de votre aide

Contribution le : 30/10/2005 23:26
Créer un fichier PDF de la contribution Imprimer


Re: Affichage table selon selection dans un combo
Utilisateur WDF
Inscrit:
28/06/2005 15:02
De Aurillac Cantal Auvergne
Post(s): 91
Fais un test pour vérifier que la requête s'exécute bien :

SI HExecuteRequête(req_SelectVins, hModifieFichier) ALORS
  Table..FichierParcouru = req_SelectVins
SINON
  Erreur("Erreur lors de l'exécution de la requête", ErreurInfo(errMessage))
FIN


Le message d'erreur renvoyé t'en apprendra un peu plus sur le problème.

Au fait, tu as tapé le code de la requête ou tu l'as faite avec l'éditeur ? Pour des requêtes simples, je te conseille la 2e solution, ça évite de faire des erreurs bêtes.

EDIT :
Ah, aussi, pense à initialiser tes variant à Null, le problème pourrait venir de là (enfin, j'en suis pas sûr, je ne suis pas très expérimenté non plus ^^)

Contribution le : 31/10/2005 00:22
_________________
La touche F1 est et restera toujours ta meilleure amie :p
Créer un fichier PDF de la contribution Imprimer


Re: Affichage table selon selection dans un combo
Anonyme
a force de tatonner, j'y suis arrivé !!!!!
javais oublier 2 lignes dans l'init de la table.
HExécuteRequête(req_SelectVins)
Table..FichierParcouru = "req_SelectVins"

nickel
merci encore.
plus on discute sur ce forum, plus on en apprend !!!!!!!

a bientot

Contribution le : 31/10/2005 00:33
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2