Bonjour,
je me heurte à un problème qui me prend la tête depuis hier matin !
J'ai un module GMAO dans lequel des employés peuvent déclarer des incidents sur des machines. Dans un autre module, les gars de la maintenance peuvent tenir à jour une fiche de suivi d'interventions sur un incident. Donc pour un incident donné, ils peuvent enregistrer plusieurs interventions distinctes. Une intervention consiste en la déclaration d'une remarque, des temps de travail des différents intervenants, et éventuellement des pièces changées pour réparer la machine.
Quand je lance mon module, je dois saisir un numéro d'incident, puis j'arrive sur cette interface :
Voici donc l'objet de mon post : là je veux supprimer l'intervention 32 (colonne wrkid), je clique sur la petite croix tout au bout, qui exécute le code suivant (suppression de l'intervention et de ses dépendances, pièces, intervenants):
et ma procédure chargeInterventions, qui a déjà été lancée une première fois à l'initialisation de mon module, après saisie du numéro incident (pid pour "panne id"), et qui alimente ma table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 TableSelectPlus(TABLE_Interventions, -1) SI OuiNon("Supprimer cette intervention ?") ALORS wrkid est un entier = TABLE_Interventions.COL_wrkid Sql est une chaîne = "DELETE FROM wrk WHERE wrk_id = " + wrkid SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) RETOUR FIN Sql = "DELETE FROM wrksp WHERE wrksp_wrkid = " + wrkid SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) RETOUR FIN Sql = "DELETE FROM wrktek WHERE wrktek_wrkid = " + wrkid SI PAS HExécuteRequêteSQL("Suppression",Cnx,hRequêteDéfaut ,Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) RETOUR FIN chargeInterventions() FIN
Hé bien, après suppression, figurez-vous que je perds l'info de colonne COL_wrkid, alors qu'il me reste bien au moins une ligne dans ma table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 PROCEDURE chargeInterventions() TableSupprimeTout(TABLE_Interventions) Rs est une Source de Données Sql est une chaîne = "SELECT wrk_id, wrk_date, wrk_remarque FROM wrk WHERE wrk_pid = " + pid + " ORDER BY wrk_id DESC" SI PAS HExécuteRequêteSQL(Rs,Cnx,hRequêteDéfaut ,Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) RETOUR FIN SI HLitPremier(Rs) ALORS TANTQUE PAS HEnDehors(Rs) TableAjoute(TABLE_Interventions, Rs.wrk_id + TAB + Rs.wrk_date + TAB + Rs.wrk_remarque + TAB + "delete.png") HLitSuivant(Rs) FIN FIN HLibèreRequête(Rs) Info(TABLE_Interventions.COL_wrkid) Info(TABLE_Interventions..Vide) ExécuteTraitement(TABLE_Interventions, trtSélection)
Et forcément, comme je n'ai plus la référence de la ligne qui a le focus dans ma table des interventions, le chargement de mes tables Intervenants et Pièces échoue :
Je suis vraiment perplexe parce que des fenêtres comme ça j'en ai déjà conçu plusieurs et jamais je n'ai rencontré ce foutu problème.
Vous n'auriez pas une idée parce que là je n'en peux plus
Merci à vous
Partager