PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → filtre sur liste
filtre sur liste
Débuté par Bianchessi, 16 avr. 2006 17:32 - 6 réponses
Posté le 16 avril 2006 - 17:32
Bonjour,

Voila j'ai une liste qui se reprend à l'init par un flistefichier :
nbFichier est un entier = fListeFichier(RepPlanche + "*.*","AjoutListe")
RepPlanche contient mon chemin avec \ à la fin
Donc dans ma liste j'ai tous les fichiers présents dnas ce répertoire

Maintenant j'ai un champ de saisie à côté et je veux qu'à chaque saisie ne cours il me filtre ma liste.
Du genre je tape a, il affiche tous ce qui commence par a, ensuite je tape b et tous ce qui commence par "ab" mais je sais pas trop comment faire

Auriez-vous une idée? D'avance merci
Posté le 17 avril 2006 - 00:03
// Dans le code de ton Projet
tabFichier est un tableau dynamique de 1 chaîne

//
Dans le code de Ta fenêtre

NbFichier est un entier
// A la place de "*.*" mettre ton filtre
fListeFichier("*.*", "FichierVersTable", &NbFichier)
// Affichage du nombre de fichiers répondant aux critères
// Procédure locale appelée par fListeFichier
nFic est un entier
SI Dimension(tabFichier)>0 ALORS
ListeSupprimeTout(NomListe)
POUR nFic = 1 A Dimension(tabFichier)
ListeAjoute(NomListe,tabFichier[nFic])
FIN
FIN

// Dans le code de ton champ recherche "A chaque modification"

ListeSupprimeTout(NomListe)
SI SAI_Recherche="" ALORS
// Pas de filtre
POUR nFic= 1 A Dimension(tabFichier)
ListeAjoute(NomListe,tabFichier[nFic])
FIN

SINON
POUR nFic= 1 A Dimension(tabFichier)
//SI Gauche(majuscule(tabFichier[nFic]),Taille(SAI_Recherche))=Majuscule(SAI_Recherche) ou
SI Gauche(tabFichier[nFic],Taille(SAI_Recherche))=SAI_Recherche ALORS
ListeAjoute(NomListe,tabFichier[nFic])
FIN
FIN
FIN
// Tu peux egalement mettre MAJUSCULE pour eviter la difference entre minuscule et Majuscule
// Pruis Une procédure Locale à la Fenêtre
PROCEDURE FichierVersTable(Repertoire, Nom, Change, NbFichierRetourner)
// Déclaration de la variable
NbFichierTrouver est un entier
Transfert(&NbFichierTrouver, NbFichierRetourner, 4)
NbFichierTrouver++
Dimension(tabFichier, NbFichierTrouver)
tabFichier[NbFichierTrouver]=Nom
Transfert(NbFichierRetourner,&NbFichierTrouver, 4)
RENVOYER Vrai
Posté le 17 avril 2006 - 00:03
Si tu me communiques ton adresse Email , je t'enverrai la fenêtre que j'ai créée.

Cm16.top@wanadoo.fr
Posté le 17 avril 2006 - 13:59
// Dans code Initialisation Liste

_ListeAffiche()
// Dans le code "A chaque modification Filtre"
_ListeAffiche()

//--------------------------------------------------
// Création de deux Procédure Locale à la fenetre
//--------------------------------------------------
PROCEDURE _ListeAffiche()
ListeSupprimeTout(NomListe)
fListeFichier(SAI_Recherche+"*.*", "FichierVersListe", &NbFichier)
//---------------------------------------------------
PROCEDURE FichierVersListe(Repertoire, Nom, Change, NbFichierRetourner)
NbFichierTrouver est un entier
Transfert(&NbFichierTrouver, NbFichierRetourner, 4)
NbFichierTrouver++
ListeAjoute(NomListe,Nom)
Transfert(NbFichierRetourner,&NbFichierTrouver, 4)
RENVOYER Vrai
Posté le 17 avril 2006 - 16:51
Merci pour les conseils, en fait j'ai réussi à me débrouiller en faisant le même code que toi dans le précédent post.

bon dev
Posté le 18 avril 2006 - 11:07
Dans son message, Bianchessi racontait :
Merci pour les conseils, en fait j'ai réussi à me débrouiller en faisant le même code que toi dans le précédent post.

bon dev


Effectivement des fois c'est tellement plus simple un petit filtre :D
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 18 avril 2006 - 11:44
he bien oui , pourquoi faire simple quant on peut faire compliquer !