|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par Jean TURCOTTE, 21 juin 2019 18:48 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 1 123 messages Popularité : +8 (8 votes) |
|
Posté le 21 juin 2019 - 18:48 |
Bonjour, j'éprouve des difficultés avec la commande HMODIFIE et je ne sais vraiment pas pourquoi, c'est super simple et ca devrait fonctionner. Lorsque j'execute le programe pas à pas, les données avec HAJOUTE() fonctionnent mais celles avec HMODIFIE ne modifie pas dans la BD. Toutes les données à être écrites dans la base sont OK et je n'ai aucune erreur avec la BD.
DateDébutAgenda est Date = AgendaPosition(AGD_Disponibilité) DateFinAgenda est Date = DateDébutAgenda + 6j Date_A_Évaluer est une Date
SI HExécuteRequête(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ, hRequêteDéfaut,sNoEmployé,DateDébutAgenda,DateFinAgenda)=Vrai ALORS POUR TOUT REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ Date_A_Évaluer = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.DateAbsolue SI REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée <> 0 ALORS Contact_NBR_HeureDispo_Par_Jour.DateDispo = Date_A_Évaluer Contact_NBR_HeureDispo_Par_Jour.NoEmploye = sNoEmployé Contact_NBR_HeureDispo_Par_Jour.TotalHeuresDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée SI HLitRecherche(Contact_NBR_HeureDispo_Par_Jour, DateDispo, Date_A_Évaluer) = Vrai ALORS HModifie(Contact_NBR_HeureDispo_Par_Jour) SINON HAjoute(Contact_NBR_HeureDispo_Par_Jour) FIN FIN FIN FIN HLibèreRequête(Contact_NBR_HeureDispo_Par_Jour)
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB RamMessage modifié, 21 juin 2019 - 18:49 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 123 messages Popularité : +8 (8 votes) |
|
Posté le 21 juin 2019 - 20:03 |
J'ai finalement trouvé la solution en changeant la position de mon HLitRecherche, il semble que c'était lui qui causait mon erreur. Voici le code fonctionnel;
DateDébutAgenda est Date = AgendaPosition(AGD_Disponibilité) DateFinAgenda est Date = DateDébutAgenda + 6j Date_A_Évaluer est une Date bTest est un booléen nNBRJOUR est un entier
SI HExécuteRequête(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ, hRequêteDéfaut,sNoEmployé,DateDébutAgenda,DateFinAgenda)=Vrai ALORS nNBRJOUR = HNbEnr(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ) POUR TOUT REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ Date_A_Évaluer = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.DateAbsolue SI REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée <> 0 ALORS SI HLitRecherche(CONTACT_NBR_HeureDispo_Par_Jour, DateDispo, Date_A_Évaluer) = Vrai ALORS CONTACT_NBR_HeureDispo_Par_Jour.ID_DISPONIBILITE = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.ID_DISPONIBILITE CONTACT_NBR_HeureDispo_Par_Jour.DateDispo = Date_A_Évaluer CONTACT_NBR_HeureDispo_Par_Jour.NoEmploye = sNoEmployé CONTACT_NBR_HeureDispo_Par_Jour.TotalHeuresDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée bTest = HModifie(CONTACT_NBR_HeureDispo_Par_Jour) SINON CONTACT_NBR_HeureDispo_Par_Jour.ID_DISPONIBILITE = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.ID_DISPONIBILITE CONTACT_NBR_HeureDispo_Par_Jour.DateDispo = Date_A_Évaluer CONTACT_NBR_HeureDispo_Par_Jour.NoEmploye = sNoEmployé CONTACT_NBR_HeureDispo_Par_Jour.TotalHeuresDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée bTest = HAjoute(CONTACT_NBR_HeureDispo_Par_Jour) FIN FIN FIN FIN
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 889 messages Popularité : +227 (347 votes) |
|
Posté le 21 juin 2019 - 22:21 |
Bonjour,
SI HLitRecherche(Contact_NBR_HeureDispo_Par_Jour, DateDispo, Date_A_Évaluer) = Vrai ALORS HModifie(Contact_NBR_HeureDispo_Par_Jour) SINON [HAjoute(Contact_NBR_HeureDispo_Par_Jour) FIN pourrait avantageusement être remplacé par :
HEnregistre(Contact_NBR_HeureDispo_Par_Jour)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 46 messages Popularité : -1 (9 votes) |
|
Posté le 21 juin 2019 - 23:10 |
Bonjour, En enlevant les redondances, votre code deviendrait
SI HExécuteRequête(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ, hRequêteDéfaut,sNoEmployé,DateDébutAgenda,DateFinAgenda)=Vrai nNBRJOUR = HNbEnr(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ)
POUR TOUT REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ Date_A_Évaluer = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.DateAbsolue SI REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée <> 0 ALORS HLitRecherche(CONTACT_NBR_HeureDispo_Par_Jour, DateDispo, Date_A_Évaluer) CONTACT_NBR_HeureDispo_Par_Jour.ID_DISPONIBILITE = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.ID_DISPONIBILITE CONTACT_NBR_HeureDispo_Par_Jour.DateDispo = Date_A_Évaluer CONTACT_NBR_HeureDispo_Par_Jour.NoEmploye = sNoEmployé CONTACT_NBR_HeureDispo_Par_Jour.TotalHeuresDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée
SI HTrouve() ALORS bTest = HModifie(CONTACT_NBR_HeureDispo_Par_Jour) SINON bTest = HAjoute(CONTACT_NBR_HeureDispo_Par_Jour) FIN FIN FIN FIN Message modifié, 21 juin 2019 - 23:17 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 574 messages Popularité : +222 (260 votes) |
|
Posté le 22 juin 2019 - 10:15 |
Bonjour,
Il manque un "hidentique" au HLitRecherche(), ce qui peut renvoyer des enregistrements non désirés (recherche générique).
D'autre part, voici le code que j'aurais mis personnellement, qui est plus concis et facile à lire.
SI HExécuteRequête(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ, hRequêteDéfaut,sNoEmployé,DateDébutAgenda,DateFinAgenda)=Vrai ALORS nNBRJOUR = HNbEnr(REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ) POUR TOUT REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ SI REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée <> 0 ALORS SI PAS HLitRecherche(CONTACT_NBR_HeureDispo_Par_Jour, DateDispo, REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.DateAbsolue, hIdentique) ALORS HRAZ(CONTACT_NBR_HeureDispo_Par_Jour) FIN CONTACT_NBR_HeureDispo_Par_Jour.ID_DISPONIBILITE = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.ID_DISPONIBILITE CONTACT_NBR_HeureDispo_Par_Jour.DateDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.DateAbsolue CONTACT_NBR_HeureDispo_Par_Jour.NoEmploye = sNoEmployé CONTACT_NBR_HeureDispo_Par_Jour.TotalHeuresDispo = REQ_TOT_HEURE_DISPO_PAR_EMPLOYÉ.la_somme_Durée bTest = HEnregistre(CONTACT_NBR_HeureDispo_Par_Jour) FIN FIN FIN
-- Cordialement,
Philippe SAINT-BERTINMessage modifié, 22 juin 2019 - 10:17 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 123 messages Popularité : +8 (8 votes) |
|
Posté le 22 juin 2019 - 12:45 |
Je m'étonne à chaque jour de constater la quantité de méthodes et de façon de coder un programme. Merci à tous pour votre aide, j'applique ça tout de suite...
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|