PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Modifier plusieur enregistrement à la fois à partir d'une table
Modifier plusieur enregistrement à la fois à partir d'une table
Débuté par YAHIA LAMINE, 10 déc. 2017 22:15 - 2 réponses
Posté le 10 décembre 2017 - 22:15
Bonjour à tous..
Je suis nouveau dans le domaine je veut modifier plusieurs enregistrement à la fois à partir d'un champs table à l'aide de la fonction hmodifie pour faire la mise à jour de stock mais le problème que ça marche que avec le premier enregistrement.
voilà mon code: clic sur le bouton
i est un entier
POUR i=1 A TableOccurrence(TABLE_REQ_SOME_LIVRE,toAffichée)

PRODUIT.RECU=TABLE_REQ_SOME_RECU.COL_req_RECU[i]
PRODUIT.LIVRE=TABLE_REQ_SOME_LIVRE.COL_req_LIVRE[i]
HModifie(PRODUIT)


FIN
TableAffiche(TABLE_PRODUIT,taCourantBandeau)






Merci d'avance.
Posté le 22 décembre 2017 - 13:47
Normal...

Explication : tu demande une boucle sur le NOMBRE de lignes de ta table.
Tu fais la mise à jour de l'enregistrement
puis tu refait la même chose X fois, avec X = nombre de lignes de la table.

Pour que cela fonctionne, il faudrait dans ta boucle chercher l'enregistrement que tu veux mettre à jour, quelque chose du type :
i est un entier
POUR i=1 A TableOccurrence(TABLE_REQ_SOME_LIVRE,toAffichée)

// Recherche de l'enregistrement à mettre à jour
HLitRecherchePremier(PRODUIT,IDPRODUIT,TABLE_REQ_SOME_RECU.COL_IDPRODUIT)

// Puis ensuite tu fais ta mise à jour
PRODUIT.RECU=TABLE_REQ_SOME_RECU.COL_req_RECU[i]
PRODUIT.LIVRE=TABLE_REQ_SOME_LIVRE.COL_req_LIVRE[i]
HModifie(PRODUIT)


FIN
TableAffiche(TABLE_PRODUIT,taCourantBandeau)


A adapter à tes besoins exact.
Posté le 24 décembre 2017 - 14:25
Dans le premier code, cela fonctionne pour la première ligne car la ligne sélectionnée dans une "Table Fichier"
pointe sur l'enregistrement correspondant dans le fichier.
donc pour les suivantes il faut les sélectionner ou les lire et les indicer du N° de ligne comme dans le deuxième code.

Dans le deuxième code il manque l'indice de la ligne de table a traiter
HLitRecherchePremier(PRODUIT,IDPRODUIT,TABLE_REQ_SOME_RECU.COL_IDPRODUIT[i])