PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Hyperfile et filtre par mois.
Hyperfile et filtre par mois.
Iniciado por interfacesystemes, 25,feb. 2008 20:12 - 8 respuestas
Publicado el 25,febrero 2008 - 20:12
Bonjour,

J'essaie de remplir une table de tenue de caisse pour le mois en cours, et je coince un peu.

J'ai essayé ça :

/////////////////////////////////////////////////////////////////////

ln_mois est un entier = 2 // Février

POUR TOUT caisse AVEC caisse.jour..mois = ln_mois

TableAjouteLigne(TBL_CAISSE, Caisse.Jour, Caisse.Total)

FIN

/////////////////////////////////////////////////////////////////////

Mais tout ce que je récolte c'est une erreur comme quoi la condition doit être au format chaine de caractères ... Donc je dois faire un paquet de conversion avant, et ça complique drôlement le traitement.

Existe-t'il dans Hyperfile des fonctions de traitement des dates (du style MONTH(), YEAR(), et autres ) ???

Sinon, comment puis-je faire ?

Merci
Publicado el 25,febrero 2008 - 23:03
bjr
As-tu essayer une requete parametrée?

j'ai eu le même pb et je l 'ai contourné de cette facon:

dans ma fenetre j'ai mis une table alimentée par une requete ( dans ton cas ce serai total des enregistrements caisse période ou mois en cours) et 2 champs date (Début et Fin)

dans le code de sortie du 2ème champs:
dateDébut est une date = champs1..valeurAffichée
dateFin est une date = champs2..valeurAffichée

HExécuteRequete(ReqCaisse,hrequeteDéfaut,champs1,champs2)
tableaffiche(TA_Table)

tu peut saisir les dates qui t'interesses dans les champs, ou leur donner des valeurs par défaut

Je sais pas si c'est la meilleure technique à adopter, mais dans mon cas ca fonctionne NICKEL

Bon WDEV A++
Publicado el 25,febrero 2008 - 23:04
Bonjour,

dans votre cas une petite requete et un FichierVersTableMémoire() devrait faire l'affaire :


SELECT
Caisse.Jour AS Date,
Caisee.Total AS Total,
FROM
Caisse
WHERE
Caisse.Jour BETWEEN {pDateDébut} AND {pDateFin}

// -
ici les 2 paramêtres 'pDateDébut' et 'pDateFin' sont à passer à la requête sous leur forme stocké dans HF cad 'AAAAMMJJ'

Pour calculer ces paramêtres pour le mois en cours, c'est assez simple :

d , f sont des dates // par défaut initialisées à DateSys()
d..jour = 1
f..jour = 31

SI HExécuteRequête(MaRequête, hRequêteDéfaut, d, f) ALORS
TableSupprimeTout(MaTable)

FichierVersTableMémoire(MaTable, MaRequête)
FIN

et voila ;-)
bon dev
JM
Publicado el 26,febrero 2008 - 10:33
Ceci marche aussi :

l_deb est une chaîne="20080201"
l_fin est une chaîne ="20080229"

POUR TOUT Caisse AVEC jour= l_deb A l_fin
TableAjouteLigne(TBL_CAISSE, Caisse.Jour, Caisse.Total)
FIN
Publicado el 26,febrero 2008 - 18:41
Merci à vous.

Finalement, je retiens la dernière solution, qui correspond vraiment à ce que je cherchais.

Il m'a fallu faire une petit procédure pour trouver le dernier jour du mois, mais c'est tout bon.

Bon dév à vous aussi, et encore merci.
Publicado el 26,febrero 2008 - 23:11
Salut,


je crois que tu as défini dans l'analyse JOUR comme étant la date du jour ex: 20080227

alors fais comme cela:

POUR TOUT CAISSE
SI val(CAISSE.JOUR[[5 à 6]])=2 ALORS
....
FIN
FIN


@+
Philippe
Publicado el 22,noviembre 2018 - 16:35
bonjour dans le même contexte des dates , y 'a t'il un moyen d'extraire le trimestre d'une date donnée dans windev

car vraiment je galère pour ça

merci Infiniment
Miembro registrado
81 mensajes
Publicado el 27,noviembre 2018 - 14:19
bonjour.

procedure QuelTrimestre(madate est une date)

nmois est un entier = madate..mois
ntrimestre est un entier = 0

selon nmois
cas 1,2,3
ntrimestre = 1
cas 4,5,6
ntrimestre = 2
cas 7,8,9
ntrimestre = 3
cas 10,11,12
ntrimestre = 4
fin

renvoyer ntrimestre

/////////////////////////

et on appelle comme ça

montrimestre = QuelTrimestre(ladate)



je vois pas trop ce qu'il y a de dur...

apres si ce sont les trimestres scolaires, suffit de decaler ntrimestre = 1 pour 9,10,11 et ...
Publicado el 27,noviembre 2018 - 17:23
Guetaf Habib a écrit :
bonjour dans le même contexte des dates , y 'a t'il un moyen d'extraire le trimestre d'une date donnée dans windev

car vraiment je galère pour ça

merci Infiniment


Bonjour

trimestre=partieentiere((date..mois+2)/3)

bon dev