FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WEBDEV (précédentes versions)
→
WB23 - Requête contrôle saisie heures
WB23 - Requête contrôle saisie heures
Débuté par Multipass, 16 mar. 2021 00:39 - 4 réponses
Connectez-vous…
Multipass
#1
Membre enregistré
125 messages
Popularité : +5 (5 votes)
Posté le 16 mars 2021 - 00:39
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+
Signaler
0
0
stef1811
#2
Membre enregistré
477 messages
Popularité : +20 (20 votes)
Posté le 27 mars 2021 - 16:15
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
Signaler
0
0
Multipass
#3
Membre enregistré
125 messages
Popularité : +5 (5 votes)
Posté le 29 mars 2021 - 00:05
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+
Signaler
0
0
stef1811
#4
Membre enregistré
477 messages
Popularité : +20 (20 votes)
Posté le 29 mars 2021 - 19:05
Oui mes tests fonctionnent dans les 2 sens
Signaler
0
0
Multipass
#5
Membre enregistré
125 messages
Popularité : +5 (5 votes)
Posté le 29 mars 2021 - 22:26
Ok Merci pour le retour.
A+
Signaler
0
0
→ Revenir à WEBDEV (précédentes versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte