Crystal Reports Designer  

Plages de dates (syntaxe Basic et Crystal)

Les plages de dates produites par ces fonctions dépendent de la date en cours. Par exemple, si nous sommes aujourd'hui le 18 septembre 2000, LastFullMonth a la valeur de plage de dates suivante :

CDate(#Aug 1, 2000#) To CDate(#Aug 31, 2000#)

Cette fonctionnalité est souvent utile, mais que se passe-t-il si vous voulez déterminer une plage de dates reposant sur un champ de base de données tel que {Commandes.Date de commande} ? Il est possible d'utiliser à la place les fonctions Date/heure.

Exemple de syntaxe Basic

Dim d As Date
d = CDate ({Commandes.Date de commande})
Dim dr As Date Range
dr = DateSerial (Year(d), Month(d) - 1, 1) To _
     DateSerial (Year(d), Month(d), 1 - 1)
'A ce point, dr est la valeur de plage de dates contenant
'le dernier mois complet précédent {Commandes.Date de commande}

Exemple de syntaxe Crystal

Local DateVar d := CDate ({Commandes.Date de commande});
Local DateVar Range dr;
dr := DateSerial (Year(d), Month(d) - 1, 1) To
      DateSerial (Year(d), Month(d), 1 - 1);
//A ce point, dr est la valeur de plage de dates contenant
//le dernier mois complet précédant {Commandes.Date de commande}

La fonction DateSerial facilite le travail car vous n'avez pas à vous soucier des cas particuliers. Elle ne vous permet pas de créer une date non valable. Par exemple, DateSerial (1999, 1 - 1, 1) donne le 1er décembre 1998. Notez que dans l'exemple ci-dessus, {Commandes.Date de commande} est en fait un champ DateHeure et, de ce fait, la fonction CDate est utilisée pour convertir la valeur en date en tronquant la partie horaire.

Voir aussi

Types de données plage | Exécution des calculs dans un état