Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Formules
Formules Forum sur l'utilisation des formules sous Crystal reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2011, 12h26   #1
Futur Membre du Club
 
Inscription : mars 2009
Messages : 31
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 31
Points : 15
Points : 15
Par défaut 1er jour du mois suivant

bonjour, me revoilà.

Dans une base j'ai un champ date date_embauche; je voudrai connaitre le premier jour du mois suivant cette date d'embauche et avoir le resultat sous forme de date biensur.
Exemple date embauche 28/03/2011 1er jour du mois suivant = 01/04/2011.

Merci de m'aider
labartho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 13h50   #2
Futur Membre du Club
 
Inscription : mars 2009
Messages : 31
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 31
Points : 15
Points : 15
Par défaut 1 er jour du mois test

J'explique mieux :

Voila ce que j'ai fait dans mon etat
J'ai d abord cherché ma date de fin de formation qui corresponds a la date d'embauche + 4 semaines ( j'ai mis 30 parceque je ne sais pas ajouter 4 semaines) fin formation ({EMPLOYES.DATE_EMBAUCHE})+ 30
Puis j'ai fais une autre formule 1er jour du mois
Code :
cDate(01 &"/"& month({@fin formation})+1 &"/"& Year({@fin formation}))
Quand j'ouvre mon etat dans crystal ca marche dés que je l'ouvre via webviewer

voila le message d'erreur que j'ai

Citation:
Chaîne de mise en forme de date incorrecte. Détails : errorKind Chaîne de mise en forme de date incorrecte. Erreur dans le fichier C Validation Variables de la Paie_05_11 {9D913996-DC99-4E16-8802-72B25F83F7C9}.rpt : Erreur dans la formule 1er jour des primes: 'cDate(01 &"/"& month({@fin formation})+1 &"/"& Year({@fin formation})) ' Chaîne de mise en forme de date incorrecte. Détails : errorKind
labartho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 13h53   #3
Membre expérimenté
 
Avatar de kikidrome
 
Inscription : décembre 2004
Messages : 841
Détails du profil
Informations personnelles :
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 841
Points : 563
Points : 563
bonjour

Avec DateAdd(), je pense que tu peux trouver ton bonheur

Citation:
Syntaxes Basic et Crystal

Arguments
"typeIntervalle" est une chaîne indiquant le type d'intervalle de temps à ajouter. Valeurs possibles :
Valeur de type intervalle Description
yyyy
Année

q
Trimestre (période de trois mois)

m
Mois

y
Jour de l'année

d
Jour

w
Jour de semaine

ww
Semaine (période de 7 jours)

h
Heure

n
Minute

s
Seconde



"nIntervalles" est un nombre ou une expression numérique indiquant le nombre d'intervalles à ajouter. Cette valeur peut être positive (pour générer une valeur de type date/heure dans l'avenir) ou négative (pour générer une valeur de type date/heure dans le passé).
"dateHeureDébut" est la valeur de type date/heure à laquelle les intervalles doivent être ajoutés.
Résultat
Valeur de type date/heure

Action
DateAdd renvoie une valeur de type date/heure à laquelle a été ajouté le nombre d'intervalles indiqué.

Exemple d'utilisation
DateAdd permet d'ajouter des intervalles de temps à une valeur de type date/heure. La principale caractéristique de cette fonction est que la valeur de type date/heure renvoyée est toujours correcte. Par exemple, DateAdd tient compte du nombre de jours des différents mois et des années bissextiles. Si vous souhaitez ajouter ou soustraire des jours à dateHeure, vous pouvez utiliser les opérateurs d'addition et de soustraction au lieu de DateAdd en lui ajoutant le paramètre "d". Toutefois, la fonction DateAdd est plus complète, dans la mesure où elle permet également de gérer d'autres types d'intervalles de temps, par exemple ajouter des mois ou des jours à une valeur de type date/heure.

Exemples
Les exemples suivants sont applicables aux syntaxes Basic et Crystal :

DateAdd("d", -32, #Sept 28, 1999#)

Renvoie la valeur de type date/heure pour le 27 août 1999.

DateAdd ("m", 1, #1/31/1996#)

Renvoie la valeur de type date/heure pour le 29 février 1996. Notez que DateAdd ne renverra pas la valeur non valide "31 février 1996".

DateAdd ("q", 17, #Sept 28, 1999#)

Renvoie la valeur de type date/heure pour le 28.12.03.

DateAdd ("h", -400, #Sept 28, 1999#)

Renvoie la valeur de type date/heure pour le 11 septembre 1998 8:00:00. En d'autres termes, ce résultat est obtenu par la soustraction de 400 heures du 28 septembre 1999 12:00:00.

Commentaires
Cette fonction est conçue pour fonctionner comme la fonction qui porte le même nom dans Visual Basic.
Pour ajouter des jours à une valeur de type date/heure, vous pouvez utiliser l'un des types d'intervalle de temps disponibles, soit "y", "d" ou "w". Ces paramètres se comportent de manière semblable avec DateAdd.
DateAdd renvoie une valeur de type date/heure et non une valeur de date. Dans certains cas, vous devrez convertir cette valeur de type date/heure en valeur de date (par exemple, pour affecter à une variable de type date la valeur renvoyée par DateAdd). Pour effectuer cette conversion, il suffit d'utiliser DateAdd en combinaison avec la fonction de conversion CDate. Par exemple, la fonction suivante renvoie la valeur de date pour le 6 octobre 1997 :
CDate(DateAdd("yyyy", -2, #October 6, 1999#))
__________________
Les paysages sont plus beaux quand on transpire.
Olaf Candau
kikidrome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 14h43   #4
Futur Membre du Club
 
Inscription : mars 2009
Messages : 31
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2009
Messages : 31
Points : 15
Points : 15
Par défaut 1er jour du mois suivant

merci kikidrome ta solution me permet d'ajouter 4 semaine à ma date d'embauche mais comment je fais pour connaitre le 1er jour du mois suivant cette date ?
labartho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 15h26   #5
Membre Expert
 
Avatar de luc_chivas
 
Inscription : avril 2004
Messages : 894
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 894
Points : 1 049
Points : 1 049
oups, j'avais point vu...
utiliser la fonction dateserial

tu nous fais un petit

Code :
datevar moissuivant := dateserial(year(date_embauche),(month(date_embauche)+1),1)
__________________
Luc
luc_chivas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 15h39   #6
Membre expérimenté
 
Avatar de kikidrome
 
Inscription : décembre 2004
Messages : 841
Détails du profil
Informations personnelles :
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 841
Points : 563
Points : 563
Merci Luc, elle est bien sympa cette fonction dateserial
__________________
Les paysages sont plus beaux quand on transpire.
Olaf Candau
kikidrome est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web