PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → Problème d'actualisation après modification et problème de suppression des données dans une table liée a une requête
Problème d'actualisation après modification et problème de suppression des données dans une table liée a une requête
Iniciado por JshSpartan, 19,jun. 2020 14:13 - 5 respuestas
Miembro registrado
17 mensajes
Publicado el 19,junio 2020 - 14:13
Bonjour.
Je ne suis pas un professionnel en programmation avec Windev et je me suis auto-formé et c'est ma premiere fois de travailler sur un grand projet ce qui fait que je rencontre beaucoup de soucis. J'ai deux problèmes que je vais poser svp.

Svp j'ai un champ table basé sur un requête qui affiche des informations d'un fichier de donnée ANALYSES. Au clique du bouton modifier une autre fenêtre s'ouvre et les informations de la ligne sélectionnée sont renvoyé dans les champs pour être modifier.Je precise que ces informations sont passé en paramètre a la fenêtre. Mon soucis est que que après modification et clique du bouton valider la fenêtre qui sert de modification se ferme(ce qui est normal ) mais le souci est que la table ne s'actualise pas. Soit les informations affichées restent les même soit un nouveau enregistrement se créer et ces visible dans le CHFSQL hors je veux fair la modification des informations existante. Je me suis dit qu'il faut exécuter la requête. Pour se faire j'ai crée un bouton rafraîchir avec le code suivant:

HExécuteRequêteSQL(REQ_Select_Analyses)
TableAffiche(TABLE_REQ_Select_Analyses)


J'ai fait une remarque quand c'est un enregistrement nouvellement crée qui n'existait pas dans la table auparavant après modification l'actualisation marche mais si c'est un ancien enregistrement les meme problèmes surgissent. J'ai meme essayer de remettre le code qui est sous le bouton rafraîchir sous le champ table mais rien ne va. Que faire svp?

Voici le code du bouton modifier:

Ouvre(FEN_Demande_d_analyse,gsNomSoignant,gsNomPatient,gsCodeTypeAna,gdDateDemandAna,gdDateResutat,gsResultatAnalyse,gsIDPatient,gsIdSoignant,gsIdTypAna);

TableAffiche(TABLE_REQ_Select_Analyses,taCourantBandeau)

Mon second sousic cest ave le bouton Supprimer. Voici le code du bouton supprimer:

SI HTrouve(ANALYSES) ALORS

//1 : Delete
//2 : Cancel
SELON Dialogue("Do you want to delete this analyse?")

CAS 1
HRaye(ANALYSES,hNumEnrEnCours,hVérifieIntégrité)
Info("Analysis has been deleted!")
CAS 2
Info("Action aborted!")

FIN

FIN
TableAffiche(TABLE_REQ_Select_Analyses)


Vu que la table est relié a une requête quand je clique sur le bouton supprimer rien ne se passe mais dans le code si je remplace le nom du fichier ANALYSES par le nom de la requête REQ_Select_Analyses la suppression marche mais quand on clique sur le bouton actualiser les informations supprimer reviennent ce qui signifie que la suppression n'a pas été fait depuis le fichier de donnée comment réglé ce problème aussi svp?

Merci d'avance.

--
Jsh
Miembro registrado
3.845 mensajes
Popularité : +227 (347 votes)
Publicado el 20,junio 2020 - 00:28
Bonjour,
Comme je le disais dans un précédent post, il serait plus facile de passer la PK de l'analyse qui se trouve dans la requête et de baser ta fenêtre sur la table ANALYSE. Avec les liaisons qui vont bien (e.g. FK_Patient reliée à la combo Patient qui est remplie avec la table PATIENT et qui renvoie PK_Patient,) tu te simplifie la vie.

Avant ton TableAffiche il faut exécuter la requête ou alors utiliser taRéExécuteRequête dans le TableAffiche

Concernant ton 2° problème, pour que les modifications effectuée sur une requêtes se répercutent sur les tables composant la requêtes, il faut utiliser l'option hModifieFichier dans le HExécuteRequête. A l'issue de la suppresion, il faudra bien entendu réexécuter la requête avant le TableAffiche (cf supra.) Dans ce cas l'option taRéExécuteRequête est à proscrire (cf doc)

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
17 mensajes
Publicado el 20,junio 2020 - 17:39
Okay merci. Je vais essayer et vous faire un retour

--
Jsh
Miembro registrado
17 mensajes
Publicado el 20,junio 2020 - 18:09
Voroltinquo a écrit :
Bonjour,
Comme je le disais dans un précédent post, il serait plus facile de passer la PK de l'analyse qui se trouve dans la requête et de baser ta fenêtre sur la table ANALYSE. Avec les liaisons qui vont bien (e.g. FK_Patient reliée à la combo Patient qui est remplie avec la table PATIENT et qui renvoie PK_Patient,) tu te simplifie la vie.

Svp Il y a une partie de votre réponses que je ne comprends pas très bien. J'ai compris le E.G. que vous avez donné et c'est comme cela je l'ai fait. Ce que je ne comprends pas c'est << Passer la PK de l'analyse qui se trouve dans la requête>>

SVP Est ce que la PK je dois le passer en paramètre ou comment? vous avez juste dit passer la PK qui se trouve dans l'analyse mais je ne sais pas là ou je dois passer cela.

La seconde chose c'est <<baser ma fenêtre sur la table ANALYSE>>. Voulez vous dire baser ma Table TABLE_REQ_Select_Analyses sur ANALYSE? si c'est le cas j'ai essayer et j'ai eu un petit souci<< certains informations ne s'affiche pas. Je m'explique: si je prend la colonne SOIGNANTS: c'est une FK donc je transforme le type de la colonne en combo pour pouvoir manipuler le contenu et afficher les noms correspondant et le résultat c'est que certains soignant s'affiche bien sur certaine ligne(enregistrement) mais d'autres ligne la cellule est vide. Mais quand je laisse la colonne sur numérique sans changer cela en combo tout les clés secondaires s'affichent normal. Je me demande si c'est mon Windev qui déconne par ce que j'ai déjà réaliser dans une partie du projet et cela fonctionne bien mais ici cela marche pas.>>
Désole si je vous deranges mais je ne sais plus comment faire j'ai essayer tout ce que je connais.
Merci d'avance pour l'aide.

--
Jsh
Miembro registrado
3.845 mensajes
Popularité : +227 (347 votes)
Publicado el 22,junio 2020 - 13:04
Je parlais de la fenêtre FEN_Demande_d_analyse.
Il suffit de faire un Ouvre(FEN_Demande_d_analyse,n8IDAnalyse).
Fin d'initialisation
SI HLitRecherchePremier(ANALYSE,PK_Analyse,n8IDAnalyse) ALORS
FichierVersEcran()
SINON
//Traitement erreur
FIN


--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
17 mensajes
Publicado el 23,junio 2020 - 14:00
Pkay je vais essayer et vous faire un retour

--
Jsh