PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WEBDEV (earlier versions)
→
WB23 - Requête contrôle saisie heures
WB23 - Requête contrôle saisie heures
Started by Multipass, Mar., 16 2021 12:39 AM - 4 replies
Connect yourself…
Multipass
#1
Registered member
125 messages
Popularité : +5 (5 votes)
Posted on March, 16 2021 - 12:39 AM
Bonjour à tous,
Voici une situation que je ne comprend pas alors Merci d'avance de prendre un peu de votre temps pour m'aider à trouver une solution...
J'ai une procédure qui contrôle la saisie d'heures (début/fin) pour m'assurer qu'il n'existe pas de conflit entre 2 saisies. Typiquement, je passe par une REQ qui filtre de la façon suivante :
AND
(
(
HEURES
.
DEBUT
< {
pDEBUT
}
AND
HEURES
.
FIN
> {
pFIN
}
)
OR
(
HEURES
.
DEBUT
> {
pDEBUT
}
AND
HEURES
.
DEBUT
< {
pFIN
}
)
OR
(
HEURES
.
FIN
> {
pDEBUT
}
AND
HEURES
.
_FIN
< {
pFIN
}
)
)
Le code de la REQ utilise des opérateurs "strictement inférieur" et "strictement supérieur" pour permettre la saisie de créneaux du type 08:00-09:00 puis 09:00-10:00... sans blocage sur le fait que l'heure de fin de la saisie n°1 soit égale à l'heure de début de la saisie n°2 et tout est ok si l'utilisateur procède de cette manière là.
Par contre, s'il fait l'inverse : 09:00-10:00 puis 08:00-09:00, la REQ de contrôle remonte la saisie 1, ce qui déclenche une erreur de la procédure.
En fait c'est le 2ème bloc qui pose problème :
(
HEURES
.
DEBUT
> {
pDEBUT
}
AND
HEURES
.
DEBUT
< {
pFIN
}
)
Le résultat "considère" que l'heure de début de la saisie 1 (09:00-10:00) est strictement supérieure à l'heure de début de la saisie 2 (08:00-09:00) ce qui est vrai. Mais du coup il considère aussi que l'heure de début de la saisie 1 (09:00) est strictement inférieure à l'heure de fin de la saisie 2 (09:00 aussi). Et c'est là que je ne comprends pas...
Le résultat ne prend pas en compte les 2 conditions ou j'ai visiblement besoin de changer de lunettes ? Avez-vous déjà rencontré ça ? et/ou une piste pour trouver un contournement ?
A+
Report
0
0
stef1811
#2
Registered member
477 messages
Popularité : +20 (20 votes)
Posted on March, 27 2021 - 4:15 PM
La requete que je ferais pour tester si le créneau est pris, ces 2 critères sont suffisants
SELECT
HEURES
.
DEBUT
AS
DEBUT
,
HEURES
.
_FIN
AS
_FIN
FROM
HEURES
WHERE
HEURES
.
DEBUT
< {
pFIN
}
AND
HEURES
.
_FIN
> {
pDEBUT
}
et le code pour tester
REQ_
heures.pDEBUT
=
SAI_
Debut
REQ_
heures.pFIN
=
SAI_
Fin
SI
HExécuteRequête
(
REQ_
heures
)
ALORS
SI
HLitPremier
(
REQ_
heures
)
ALORS
Info
(
"Créneau pris"
)
SINON
HRAZ
(
HEURES
)
HEURES.DEBUT
=
SAI_
Debut
HEURES
.
_FIN
=
SAI_
Fin
HAjoute
(
HEURES
)
FIN
FIN
Report
0
0
Multipass
#3
Registered member
125 messages
Popularité : +5 (5 votes)
Posted on March, 29 2021 - 12:05 AM
Bonjour stef1811,
Effectivement 2 conditions semblent suffisantes pour effectuer le contrôle, Merci.
Pour autant, je rencontre toujours la même situation :
- tout va bien si saisie 1 = 08:00-09:00 puis saisie 2 = 09:00-10:00.
- mais si on fait l'inverse : 09:00-10:00 puis 08:00-09:00, la REQ de contrôle remonte la saisie 1...
T'avais fait des tests dans les 2 sens ?
A+
Report
0
0
stef1811
#4
Registered member
477 messages
Popularité : +20 (20 votes)
Posted on March, 29 2021 - 7:05 PM
Oui mes tests fonctionnent dans les 2 sens
Report
0
0
Multipass
#5
Registered member
125 messages
Popularité : +5 (5 votes)
Posted on March, 29 2021 - 10:26 PM
Ok Merci pour le retour.
A+
Report
0
0
→ Go back to WEBDEV (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text