PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Trouver les enregistrements modifier dans une requête
Trouver les enregistrements modifier dans une requête
Iniciado por Dominique S., 09,ene. 2020 15:31 - 8 respuestas
Miembro registrado
34 mensajes
Publicado el 09,enero 2020 - 15:31
Bonjour

J'ai créé une requête à partir d'une table
Je modifie des enregistrements dans ma requête

A la fin de mon traitement je voudrais isoler les enregistrements qui n'ont pas été modifié, afin de les supprimer dans ma requête (qui va automatiquement les supprimer dans ma table)

Pour faire cela j'ai ajouté un champ calculé dans ma requête avec une valeur a 1







Dans mon traitement quand je modifie enregistrement dans ma requête je passe marequete.ASupprimer = 0




le problème c'est que cela ne fonctionne pas après instruction Hmodifie la valeur Asupprimer est égal a 1

Ma question :

Savez vous comment retrouver les enregistrements modifier dans une requête ?

Merci pour vos réponse
Miembro registrado
2.682 mensajes
Publicado el 09,enero 2020 - 15:43
Bonjour,

Il nous faudrait un peu plus du code du traitement pour répondre.

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
953 mensajes
Publicado el 09,enero 2020 - 16:35
bonjour,

votre rubrique ASupprimer sera toujours à 1 , car d'après votre capture d'écran c'est une rubrique calculé forcée à 1....

ce que vous pouvez faire, c'est juste stocker les ID des enregistrements que vous modifiez dans un tableau ( je suppose que votre id doit être : OfsOperations.ID_OfOperation )
et puis ensuite reprendre les lignes de votre requête, faire une recherche dans le tableau où vous avez stocké les éléments modifiés , si ce n'est pas présent vous pouvez le supprimer.....

enfin c'est une idée comme une autre....
Miembro registrado
34 mensajes
Publicado el 09,enero 2020 - 16:41
voici exemple simplifié du code

REQ_OperationdeOF.ParamID_Of = 8146
HExécuteRequête(REQ_OperationdeOF)
HLitPremier(REQ_OperationdeOF)
SI PAS HEnDehors(REQ_OperationdeOF) ALORS
REQ_OperationdeOF.ASupprimer = 0
Info("valeur ASupprimer avant Hmodifie : "+REQ_OperationdeOF.ASupprimer)
HModifie(REQ_OperationdeOF)
Info("valeur ASupprimer Aprés Hmodifie : "+REQ_OperationdeOF.ASupprimer)
HLitPremier(REQ_OperationdeOF)
Info("valeur ASupprimer Aprés Hlitpremier : "+REQ_OperationdeOF.ASupprimer)
FIN
Ferme





Exécution du code











Pour moi c'est pas logique…..
Miembro registrado
34 mensajes
Publicado el 09,enero 2020 - 16:49
Merci Christophe, c'est ce que j'ai déjà fait…
Mais pour moi ce n'est pas logique lors de la constitution de la requête tout les enregistrements de la requête on Asupprimer=1
Après si je modifie une ligne de la requête avec Asupprimer=0 quand je vais relire cet enregistrement je dois retrouver aSupprimer=0 tanque que je n'ai pas refait un HExécuteRequête


Merci pour vos réponse en tous cas….
Miembro registrado
2.682 mensajes
Publicado el 09,enero 2020 - 20:25
Bonjour,

Il faut utiliser l'option hModifieFichier dans le HExecuteRequête()
REQ_OperationdeOF.ParamID_Of = 8146
HExécuteRequête(REQ_OperationdeOF,hModifieFichier)
HLitPremier(REQ_OperationdeOF)
SI PAS HEnDehors(REQ_OperationdeOF) ALORS
REQ_OperationdeOF.ASupprimer = 0
Info("valeur ASupprimer avant Hmodifie : "+REQ_OperationdeOF.ASupprimer)
HModifie(REQ_OperationdeOF)
Info("valeur ASupprimer Aprés Hmodifie : "+REQ_OperationdeOF.ASupprimer)
HLitPremier(REQ_OperationdeOF)
Info("valeur ASupprimer Aprés Hlitpremier : "+REQ_OperationdeOF.ASupprimer)
FIN


--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
34 mensajes
Publicado el 10,enero 2020 - 08:40
Bonjour
J'ai fait le test avec HExécuteRequête(REQ_OperationdeOF,hModifieFichier)
Le résultat est le même, ce qui est logique car la variable Asupprimer est un champ calculé dans la requête.
Je n'ai aucun problème de modification de la table a partir de la requête.

Cordialement
Miembro registrado
2.682 mensajes
Publicado el 10,enero 2020 - 09:50
Sinon une solution est de copier en local dans un tableau le résultat de ta requête avec FichierVersTableau et de travailler à partir de ton tableau.

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
548 mensajes
Publicado el 12,enero 2020 - 12:08
ou alors, ce que moi je ferais, tu ajoutes une rubrique horodatage à la dernière modification, ainsi tu peux facilement trouver tes enregistrements modifiés et donc si c'est le jour même, tu peux les supprimer avec une autre requete.

ha dsl, je suis hors sujet, j'ai pas vu que c'etait sur la requête la modif.
--
José
Mensaje modificado, 12,enero 2020 - 12:14