PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Logique de programmation
Logique de programmation
Iniciado por Jean Turcotte, 23,nov. 2019 14:01 - 8 respuestas
Miembro registrado
1.395 mensajes
Publicado el 23,noviembre 2019 - 14:01
Voici le code simplifié que j'utilise actuellement;
SI HExécuteRequête(REQ_1,hRequêteDéfaut, dDateDébut, SAI_Numero_Employé) ALORS
SI HLitRecherchePremier(HRS_RÉGULIERES_PAR_SEMAINE,IDHRS_RÉGULIERES_PAR_SEMAINE, REQ_1.IDHRS_RÉGULIERES_PAR_SEMAINE ) ALORS
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour1 = SAI_Dispo_Jour1
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour2 = SAI_Dispo_Jour2
SI HModifie(HRS_RÉGULIERES_PAR_SEMAINE) = Faux ALORS // Modifie données
Info("Erreur d'écriture des données")
FIN
SINON // Ajoute Données
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour1 = SAI_Dispo_Jour1
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour2 = SAI_Dispo_Jour2
SI HAjoute(HRS_RÉGULIERES_PAR_SEMAINE) = Faux ALORS
Info("Erreur d'écriture des données")
FIN
FIN
FIN
et naturellement ça fonctionne mais ce n'est pas vraiment beau alors qu'il serait plus logique d'écrire;
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour1 = SAI_Dispo_Jour1
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour2 = SAI_Dispo_Jour2
SI HExécuteRequête(REQ_1,hRequêteDéfaut, dDateDébut, SAI_Numero_Employé) ALORS
SI HLitRecherchePremier(HRS_RÉGULIERES_PAR_SEMAINE,IDHRS_RÉGULIERES_PAR_SEMAINE, REQ_1.IDHRS_RÉGULIERES_PAR_SEMAINE ) ALORS
SI HModifie(HRS_RÉGULIERES_PAR_SEMAINE) = Faux ALORS // Modifie données
Info("Erreur d'écriture des données")
FIN
SINON // Ajoute Données
SI HAjoute(HRS_RÉGULIERES_PAR_SEMAINE) = Faux ALORS
Info("Erreur d'écriture des données")
FIN
FIN
FIN
malheureusement, ce code ne fonctionne pas car lorsque le HLitRecherche s'exécute, les 2 valeurs SAI_Dispo_Jour1 et 2 se réinitialisent.
Merci de m'aider à simplifier mon code.

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
4.361 mensajes
Publicado el 23,noviembre 2019 - 14:18
SAI_Dispo_Jour1 et SAI_Dispo_Jour2 sont ils reliés à une rubrique ?

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
334 mensajes
Publicado el 24,noviembre 2019 - 10:29
Tu peux utiliser :
https://doc.pcsoft.fr/fr-FR/?1000020962&name=enregistrement_type_variable

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Miembro registrado
1.395 mensajes
Publicado el 24,noviembre 2019 - 13:56
Voroltinquo a écrit :
SAI_Dispo_Jour1 et SAI_Dispo_Jour2 sont ils reliés à une rubrique ?

--
Il y a peut être plus simple, mais, ça tourne

Non, elles ne sont liées à aucune rubrique.

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
1.395 mensajes
Publicado el 24,noviembre 2019 - 13:59
Dergen a écrit :
Tu peux utiliser :
https://doc.pcsoft.fr/fr-FR/?1000020962&name=enregistrement_type_variable

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -

J'ai regardé du côté de ENREGISTREMENT et malheureusement, ce type de variable ne peut être manipulée avec la fonction HMODIFIE() mais l'idée était bonne.

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Mensaje modificado, 24,noviembre 2019 - 14:02
Publicado el 24,noviembre 2019 - 23:03
Bonjour Jean,

Essaie ça.

SI HExécuteRequête(REQ_1,hRequêteDéfaut, dDateDébut, SAI_Numero_Employé) _ET_ HLitPremier(REQ_1) ALORS

HLitRecherchePremier(HRS_RÉGULIERES_PAR_SEMAINE,IDHRS_RÉGULIERES_PAR_SEMAINE, REQ_1.IDHRS_RÉGULIERES_PAR_SEMAINE )
SI PAS HTrouve(HRS_RÉGULIERES_PAR_SEMAINE) ALORS

HRAZ(HRS_RÉGULIERES_PAR_SEMAINE)

FIN

HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour1 = SAI_Dispo_Jour1
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour2 = SAI_Dispo_Jour2

SI PAS HEnregistre(HRS_RÉGULIERES_PAR_SEMAINE) ALORS

Erreur(HErreurInfo(hErrMessage))

FIN

FIN
Miembro registrado
2.682 mensajes
Publicado el 25,noviembre 2019 - 08:51
Comme Fred je ferai

SI HExécuteRequête(REQ_1,hRequêteDéfaut, dDateDébut, SAI_Numero_Employé) ALORS
SI PAS HLitRecherchePremier(HRS_RÉGULIERES_PAR_SEMAINE,IDHRS_RÉGULIERES_PAR_SEMAINE, REQ_1.IDHRS_RÉGULIERES_PAR_SEMAINE ) ALORS
HRAZ(HRS_RÉGULIERES_PAR_SEMAINE)
FIN
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour1 = SAI_Dispo_Jour1
HRS_RÉGULIERES_PAR_SEMAINE.HRS_Dispo_Jour2 = SAI_Dispo_Jour2
SI PAS HEnregistre(HRS_RÉGULIERES_PAR_SEMAINE) ALORS
Erreur(HErreurInfo())
FIN
FIN


--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
310 mensajes
Publicado el 25,noviembre 2019 - 11:24
Bonjour,
Votre deuxième proposition (affectation des buffers fichiers avant une lecture) n'est justement pas logique. Mieux vaut rester sur la première proposition ou effectivement utiliser Henregistre() pour éviter de répéter les affectations.

Bon dev.
Miembro registrado
1.395 mensajes
Publicado el 25,noviembre 2019 - 13:32
Merci !

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram