PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → Recherche entre 2 dates.
Recherche entre 2 dates.
Iniciado por rivier_fred, 19,sep. 2005 13:24 - 2 respuestas
Publicado el 19,septiembre 2005 - 13:24
Bonjours à vous.
Voila j'essaye de faire une recherche qui ne me donne que les résultats compris entre 2 dates saisie au clavier.
Je détaille:

J'ai 2 champs de saisie de date, un bouton recherche et une zone répétée.
Je voudrai que lorsque l'on entre 2 dates (ex: 01/02/2003 et 01/03/2003) qu'il ne m'affiche que les résultats qui se trouvent entre ces 2 dates (dans la Zone Répétée, il y a un champ date justement).

Bien sûr j'ai réussi avec Webdev de mettre une recherche sur une date précise (on rentre 01/01/2004 et il nous met les enregistrements de cette date).

Voici le code que j'ai actuellement:


// Test de code
sWhere est une chaîne = ""

// Désactivation des précédents filtres
HDésactiveFiltre(NomFic)

// Construction de la condition de sélection
SI Date_debut<>"" ALORS ConstruitCondition(sWhere,"REUNION$.Date",Date_debut)


// Activation du nouveau filtre
SI sWhere<>"" ALORS
// Mise en place du filtre et mémorisation de la clé de parcours
CleParcours = HFiltre(NomFic,sWhere)
FIN

// Mise à jour de la zone répétée
ZoneRepetee..RubriqueParcourue = CleParcours
ZoneRépétéeAffiche(ZoneRepetee,taInit)



Date_debut est le champs saisie de la 1ere date (Date_fin étant pour la fin de la période).
REUNION$.Date est la rubrique dans laquelle ce trouve les dates.

J'ai essayé de mettre des comparaisons au niveau du SI mais cela ne passe pas.

Donc si quelqu'un à une solution cela m'aidrais beaucoup.

Merci à vous.
Publicado el 19,septiembre 2005 - 14:25
Bonjour

Je te conseille plutot de faire une requete SQL afin de trouver les enregistrements correspondants.
Il te suffit pour cela de rajouter dans ton select
and REUNION.date > DateDebut
and REUNION.date < DateFin

Ensuite tu remplis ta ZR a l'aide d'une requete et dans le code d'initialisation de cette ZR tu mets:
HExécuteRequête(Requete_Panier,hRequêteDéfaut,ChampDateDebut,ChampDateFin)

Par contre fait bien attention au format des dates

Mickael
Publicado el 19,septiembre 2005 - 15:19
Merci beaucoup, mais je vien de trouver ce que je voulais.
Je vous met donc le code:

// Activation du filtre
CleParcours = HFiltre ( REUNION$ , Date , Date_debut , Date_fin )

//Parcours de la table
SI CleParcours <> "" ALORS
HLitPremier ( REUNION$ , Date )
TANTQUE PAS HEnDehors ()
// Traitement de l'enregistrement : envoi
// d'une lettre de remerciement
HLitSuivant ( REUNION$ , Date )
FIN
FIN

// Mise à jour de la zone répétée
ZoneRepetee..RubriqueParcourue = CleParcours
ZoneRépétéeAffiche(ZoneRepetee,taInit)

// Annule le filtre
HDésactiveFiltre ( REUNION$ )


REUNION$ est le nom du fichier
Date est le nom de la rubrique de parcours
Date_debut et Date_fin sont les bornes (rentrer au clavier)

Voila j'espère que cela aidera d'autre personne.