GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEV
,
WEBDEV
e
WINDEV Mobile
Inicio
|
Mensagens recentes
|
Conecte-se...
|
Disconnect
|
Português
Inicio
→
WEBDEV (versões anteriores)
→
WB23 - Requête contrôle saisie heures
WB23 - Requête contrôle saisie heures
Iniciado por Multipass, mar., 16 2021 12:39 AM - 4 respostas
Conecte-se…
Multipass
#1
Membro registado
125 mensagems
Popularité : +5 (5 votes)
Publicado em março, 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+
Denunciar
0
0
stef1811
#2
Membro registado
473 mensagems
Popularité : +20 (20 votes)
Publicado em março, 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
Denunciar
0
0
Multipass
#3
Membro registado
125 mensagems
Popularité : +5 (5 votes)
Publicado em março, 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+
Denunciar
0
0
stef1811
#4
Membro registado
473 mensagems
Popularité : +20 (20 votes)
Publicado em março, 29 2021 - 7:05 PM
Oui mes tests fonctionnent dans les 2 sens
Denunciar
0
0
Multipass
#5
Membro registado
125 mensagems
Popularité : +5 (5 votes)
Publicado em março, 29 2021 - 10:26 PM
Ok Merci pour le retour.
A+
Denunciar
0
0
→ Voltar para WEBDEV (versões anteriores)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versões anteriores)
WEBDEV (versões anteriores)
WINDEV Mobile (versões anteriores)
Reports & Queries
Off-topic
Ferramentas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Tipo de Pesquisa
Apenas tópicos
Todas as mensagens
Período de pesquisa
Qualquer momento
Última hora
Últimas 24 horas
Semana passada
Mês passado
Ano passado
Cancelar
Pré-visualização da sua mensagem
Adicionar imagem
Importar uma imagem de uma URL
Enviar uma imagem a partir do seu disco
Deixe um ficheiro ou clique em "Procurar ..."
ou
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto