PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile (earlier versions) → Accéder à l'enregistrement correspondant
Accéder à l'enregistrement correspondant
Started by Believe LODY, May, 20 2016 2:21 AM - 4 replies
Registered member
9 messages
Posted on May, 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
Posted on May, 20 2016 - 2:41 PM
Bonjour

la première méthode est clairement fausse. Si ta zr est liée à un
fichier, elle est liée au fichier, tu ne peux/dois pas essayer d'ajouter
des lignes par code.

Donc, c'est forcément la deuxième méthode


A la place de ton code...
//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)


il faut faire quelque chose du genre :
- récupérer l'indice de la ligne sélectionné (iIndex=ZR devrait te
donner ca)
- récupérer l'id d'enreg que tu as du stocker dans ta ZR et le passer à
l'autre fenêtre. Quelque chose comme
ouvrefille(fen_ficher_categorie,ATT_ID[iINdex])

C'est tout

Cordialement

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com
Registered member
9 messages
Posted on May, 20 2016 - 10:29 PM
Bonsoir Fabrice,

Merci pour ces réponses. Concernant la fonction ouvreFille, tout paramètre que je marque dans la fonction me donne une erreur indiquant que je passe un paramètre à la fonction alors qu'elle n'en prend zéro.
Oú puis-je modifier ouvreFille pour qu'il considère ce paramètre?
Message modified, May, 20 2016 - 10:29 PM
Posted on May, 21 2016 - 11:31 PM
Bonjour

vu les questions, je te conseille de lire en détail le cours d'auto
formation.

Ensuite, si tu passes un paramètre dans ouvrefille, il faut que la
fenetre que tu ouvres accepte un paramètre

Cordialement

--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com
Registered member
9 messages
Posted on May, 22 2016 - 6:08 PM
Bonsoir,

Le problème se trouvait effectivement du côté de la fenêtre à ouvrir. L'aide à pu me fournir un bon exemple pour m'en sortir.
Je posterai la solution pour ceux qui sont dans la même situation.
Merci encore