PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile (versões anteriores) → Accéder à l'enregistrement correspondant
Accéder à l'enregistrement correspondant
Iniciado por Believe LODY, mai., 20 2016 2:21 AM - Sem resposta
Membro registado
9 mensagems
Publicado em maio, 20 2016 - 2:21 AM
Bonsoir, (un peu long mais svp lisez jusqu'au bout)

J'ai une fenêtre contenant une ZR. Celle-ci me liste toutes les catégories que j'ai créé.
Le but est de faire une recherche générique qui soit affiche les résultats via un bouton
soit au fur et à mesure que l'on écrit dans un champ.
J'ai deux situations:
La 1ère:
Je lie ma ZR à mon fichier Catégorie. Toutes les catégories sont bien listées et le plus important, une sélection d'une ligne m'envoie bien vers la fiche de la catégorie correspondante. Donc pas besoin de programmer le remplissage de la ZR.
Cependant mon code de recherche ne marche pas, il s'ajoute aux enregistrements déjà présents. Le voici au traitement "Clic d'un BTN":
ZoneRépétéeSupprimeTout(ZR_Recherche_catégorie)
HLitPremier(Catégorie, IDCategorie)
TANTQUE PAS HEnDehors()
SI Contient(Catégorie.Nom, SAI_Recherche, SansCasse) = Vrai ALORS
ZoneRépétéeAjoute(ZR_Recherche_catégorie, Catégorie.Nom)
FIN
HLitSuivant(Catégorie,IDCategorie)
FIN

ZoneRépétéeAffiche(ZR_Recherche_catégorie, taDébut)

Et pourtant je supprime tout avant de faire mon traitement. En plus la sélection d'un des enregistrements me renvoie au tout dernier enregsitrement.

Le 2e cas:
Je remplis ma ZR par programmation.
HLitPremier(Catégorie,IDCategorie)
TANTQUE PAS HEnDehors()
ZoneRépétéeAjouteLigne(ZR_Recherche_catégorie, Catégorie.Nom, Catégorie.IDCategorie)
//ZR_Recherche_catégorie.ATT_ID = Catégorie.IDCategorie
HLitSuivant(Catégorie,IDCategorie)
FIN

A l'affichage, les champs correspondent bien à la liste des catégories et le code du bouton écrit plus haut marche. Toutes les lignes de la ZR sont supprimées et les nouvelles selon la condition s'ajoutent et s'affichent. Malheureusement la sélection d'une ligne me renvoie vers le dernier enregistrement effectué et je n'arrive à accéder à la bonne fiche de la catégorie correspondant à la ligne.
Le code au traitement "Sélection d'une ligne de la ZR" est:
//HLitPremier(Catégorie, IDCategorie)
//i est un entier = 0
//n est un entier
//tantque pas HEnDehors()
// si Catégorie.IDCategorie = ATT_ID ALORS
// n = ZoneRépétéeSelect(ZR_Recherche_catégorie, i)
// FIN
// HLitSuivant(Catégorie, IDCategorie)
// i++
//FIN
//info(ATT_ID)
//OuvreFille(FEN_Fiche_categorie, n)
OuvreFille(FEN_Fiche_categorie)

Ce que j'ai mis en commentaire est une tentative d'accéder à la bonne fiche via OuvreFille(), rien ne se passe.
Quel peut être le soucis dans mes codes svp? Ou encore, quelle est la bonne méthode?
Je rappelle, le but de ma démarche est de rechercher la(les) catégorie(s) correspondant à une chaîne de caractère et de pouvoir accéder à la (aux) fiche(s).
Mes problèmes:
1/- J'accède aux fiches initiales de ma liste mais la recherche ne fonctionne pas.
2/- La recherche fonctionne mais l'accès aux fiches trouvées est faussé.

Merci à vous pour l'attention