Pourquoi le code initial ne marche pas ? Ca me paraît important de le comprendre pour ne pas refaire la même erreur.
Quand tu as une table comme ça qui affiche des données, et que tu modifies ce qui apparaît à l'écran, il se passe quoi ?
Windev a en tête 2 informations, totalement indépendantes l'une de l'autre. Si tu modifies une ligne de l'écran, il sait quelle est la ligne que tu modifies. Et indépendamment de ça, il a un 'pointeur' vers le fichier de données, qui pointe vers une ligne.
Pour que le pointeur pointe vers une autre ligne du fichier de données, il faut des instructions comme hLitRecherche(), hLitSuivant(), hRecherche() ... (des fonctions qui commencent par h , comme toutes les fonctions d'accès aux données et qiu sont des fonctions de positionnement, ou de lecture...)
Donc ici, la démarche c'est :
1 2 3 4 5 6
| - Pour chaque ligne de la table que tu veux modifier (par exemple, l'utilisateur sélectionne 5 ou 6 lignes avec la touche CTRL, et il faut modifier uniquement ces lignes là)
- Dans la ligne , il y a une information qui permet d'identifier clairement l'enregistrement ( code article par exemple)
- hLitRecherche( ) basé sur ce code article, pour retrouver l'enregistrement à modifier
- fichier.ville= nouvelle_valeur
- hmodifie()
- FIN |
Après l'instruction hLitRecherche(), il faudrait même tester si Windev a bien trouvé la ligne voulue, avec une ligne du type :
si pas htrouve() alors ...L'autre option, c'est effectivement de passer par des instructions de type SQL, mais c'est une autre histoire.
Update fichier set ville = nouvelle_valeur where code_article in ( ... liste des codes à modifier ... )
Partager