14.8.11 Fonctions (syntaxe Crystal). SAP pour Enterprise
Remarque
Les conversions dans le sens opposé ne sont pas autorisées. Par exemple :
Local NumberVar num; num := 5 + $10; //Error
//OK- convert to Number type using the CDbl function num := CDbl (5 + $10) //Could also use ToNumber
5 est converti en 5 dollars et ajouté aux 10 dollars pour donner 15 dollars. Cependant, cette valeur monétaire ne peut pas être affectée automatiquement à la variable numérique num puisque les conversions automatiques de devise à nombre ne sont pas permises. De même, un argument numérique peut être affecté à des fonctions acceptant un argument monétaire, et l'argument numérique sera converti en argument monétaire alors qu'il n'est pas possible d'affecter un argument monétaire aux fonctions acceptant un argument numérique sans d'abord convertir la valeur monétaire en valeur numérique à l'aide de la fonction CDbl.
14.8.11 Fonctions (syntaxe Crystal)
Lorsque vous utilisez une fonction dans une formule, saisissez le nom de la fonction et fournissez les arguments requis. Par exemple, la fonction Length requiert un argument de type chaîne et calcule la longueur de la chaîne.
Local StringVar x := "hello";
Length (x) //The formula returns the Number 5
Si les arguments requis par la fonction sont fournis dans un type incorrect, une erreur se produit. Par exemple, un appel à la fonction Length (3) produirait une erreur puisque Length n'accepte pas d'argument Nombre. Les fonctions peuvent quelquefois accepter des nombres ou des types d'argument différents. Par exemple, CDate qui pourrait accepter un argument composé d'une chaîne unique pour former une valeur de type date ou composé de trois valeurs numériques correspondant respectivement à l'année, au mois et au jour pour former également une
valeur de type date. Pour en savoir plus, voir
Date, heure et date/heure (syntaxe Crystal)
Exemple avec la fonction Mid
Local StringVar x := "hello";
Local StringVar y;
//Start at position 2, go to the end of the string y := Mid (x, 2); //y is now "ello"
//Start at position 2, extract 1 character y := Mid (x, 2, 1) //y is now "e"
Les classes de fonctions sont : Mathématiques, Résumé, Finances, Chaînes, Date et Heure, Plages de dates,
Tableau, Conversion de type, Raccourcis de programmation, Moment d'évaluation, Statut de l'impression,
Propriétés du document et Fonctions supplémentaires. Il existe également certaines fonctions spécifiques aux formules de mise en forme conditionnelle.
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Formules
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
345
14.8.11.1 Fonctions non spécifiques au reporting (syntaxe
Crystal)
Les groupes Mathématiques, Finances, Chaîne, Date et heure, Conversion de type et Raccourcis de programmation sont principalement composés de fonctions qui ne sont pas spécifiques au reporting mais qui pourraient être rencontrées dans un environnement de programmation doté de fonctionnalités étendues.
Par exemple, la fonction Length est la fonction traditionnelle de la syntaxe Crystal pour trouver la longueur d'une chaîne. La syntaxe Crystal prend également en charge Len en tant que synonyme.
14.8.11.2 Fonctions de résumé (syntaxe Crystal)
Le groupe de fonctions de résumé fournit des fonctions permettant la création d'objets de résumé tels que :
Sum({Orders.Order Amount}, {Orders.Ship Via})
Vous créez généralement des objets de résumé en les insérant à partir de la palette et en les modifiant dans la vue
Propriétés
. Ils apparaissent ensuite dans la vue
Plan
et vous pouvez les ajouter à une formule. Toutefois, ils n'ont pas besoin d'être créés de cette façon. Vous pouvez créer un objet de résumé destiné à être utilisé exclusivement par votre formule en saisissant les arguments de l'une des fonctions figurant dans la section Fonctions de résumé de manière appropriée. Cependant, les groupes du rapport auxquels les objets de résumé font référence doivent déjà exister dans le rapport.
14.8.11.3 Plages de dates (syntaxe Crystal)
Cette catégorie de fonctions a été traitée dans la section
Données de type plage (syntaxe Crystal)
[page 334]. Le commentaire suivant peut être ajouté : les plages de dates produites par ces fonctions dépendent de la date en cours. Par exemple, si nous sommes aujourd'hui le 18.09.99, LastFullMonth a la valeur de plage de dates suivante :
CDate(#Aug 1, 1999#) To CDate(#Aug 31, 1999#)
Cette fonctionnalité est souvent utile, mais que se passe-t-il si vous voulez déterminer une plage de dates reposant sur un objet de résultat tel que {Commandes.Date de commande} ? Il est possible d'utiliser à la place les fonctions de type date et heure.
Par exemple :
Local DateVar d := CDate ({Orders.Order Date});
Local DateVar Range dr; dr := DateSerial (Year(d), Month(d) - 1, 1) To
DateSerial (Year(d), Month(d), 1 - 1);
//At this point dr is the Date Range value holding
//the last full month before {Orders.Order Date}
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 valide. Par exemple, DateSerial (1999, 1 - 1, 1) donne le 1er décembre 1998.
346
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Formules
Remarque
Dans l'exemple ci-dessus, {Commandes.Date de commande} est en fait un objet de type date/heure et, de ce fait, la fonction CDate est utilisée pour la convertir en date en tronquant la partie horaire.
14.8.11.4 Fonctions de tableau (syntaxe Crystal)
Les fonctions de tableau calculent des résumés des éléments d'un tableau. Par exemple, la fonction Sum appliquée à un tableau renvoie la somme des éléments du tableau. La formule suivante, par exemple, renvoie la valeur 100 :
Sum ([10, 20, 30, 40])
14.8.11.5 Fonctions de moment d'évaluation (syntaxe Crystal)
Il s'agit des fonctions spéciales de reporting : BeforeReadingRecords (avant la lecture des enregistrements),
WhileReadingRecords (lors de la lecture des enregistrements), WhilePrintingRecords (lors de l'impression des enregistrements) et EvaluateAfter (évaluer après). Vous pouvez utiliser ces fonctions pour indiquer à
Crystal Reports à quel moment vos formules doivent être évaluées.
Est-ce que la formule doit être évaluée avant l'extraction des enregistrements de la base de données, pendant leur lecture depuis la base de données mais avant qu'ils ne soient regroupés, triés et résumés, ou pendant l'impression du rapport, lorsque les enregistrements sont regroupés, triés et résumés ? En général,
Crystal Reports définit un moment d'évaluation approprié pour votre formule, en fonction des informations requises par la formule. Par exemple, si une formule utilise un objet de résultat, elle ne peut pas être évaluée avant que les enregistrements ne soient lus depuis la base de données. Cependant, vous aurez souvent besoin de définir un moment d'évaluation ultérieur au moment normal pour obtenir l'effet souhaité. Pour consulter un exemple, voir
Variables globales (syntaxe Crystal)
14.8.11.6 Fonctions de statut de l'impression (syntaxe Crystal)
Il s'agit là encore de fonctions spécifiques au reporting. Par exemple, la notation {Commandes.Date de commande} est utilisée pour faire référence à la valeur de l'objet de l'enregistrement en cours, alors que Previous
({Commandes.Date de commande}) fait référence à la valeur de l'enregistrement précédent et Next
({Commandes.Date de commande}) à celle de l'enregistrement suivant. IsNull ({Commandes.Date de commande}) vérifie si la valeur de l'objet est nulle.
On trouve d'autres exemples comme PageNumber et TotalPageCount que vous pouvez utiliser pour accéder aux informations de pagination de votre rapport.
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Formules
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
347
14.8.11.7 Fonctions de propriétés de document (syntaxe
Crystal)
Il s'agit de fonctions spécifiques qui font référence au document du rapport dans son ensemble. Par exemple,
PrintDate et ReportTitle.
14.8.11.8 Fonctions de mise en forme conditionnelle (syntaxe
Crystal)
Pour écrire une formule de mise en forme conditionnelle, cliquez avec le bouton droit sur la zone ou l'objet du rapport que la formule affectera dans l'
Atelier de formules
, puis cliquez sur
Mise en forme conditionnelle
.
Sélectionnez la condition et saisissez la formule conditionnelle dans la page
Formules
. Par exemple, vous pouvez mettre en forme l'objet {Clients.VENTES DE L'ANNEE DERNIERE} de manière à imprimer les ventes de plus de
100 000 € en vert, celles de moins de 15 000 € en rouge et tout le reste en noir.
Exemple
//Conditional formatting example 1
If {Customer.Last Year's Sales} > 100000 Then
crGreen
Else If {Customer.Last Year's Sales} < 15000 Then
crRed
Else
crBlack
Dans la mesure où il s'agit d'une fonction de mise en forme de la couleur de police, la liste des constantes de couleur s'affiche sous la forme d'une liste commentée dans la page Formules. L'exemple précédent en utilise trois : crGreen, crRed and crBlack. Au lieu de cela, vous pourriez avoir utilisé les valeurs numériques réelles des constantes de couleur. Par exemple, la valeur de crRed est 255 et celle de crGreen est 32 768. Toutefois, la formule est plus lisible lorsque les constantes de couleur sont utilisées. Toutes les fonctions de constante en syntaxe Crystal peuvent porter le préfixe “cr”.
La syntaxe Crystal prend toujours en charge les fonctions de constante des versions précédentes qui n'ont pas le préfixe “cr”. Vous pouvez, par exemple, utiliser “Red” au lieu de “crRed”. Toutefois, l'utilisation du préfixe “cr” permet d'organiser les fonctions de constante et est recommandée.
Remarque
Certains attributs de mise en forme n'utilisent pas les fonctions constantes. Par exemple, si vous voulez ne pas imprimer les valeurs de {Clients.VENTES DE L'ANNEE DERNIERE} en cas de ventes inférieures à 50 000 €, vous pouvez écrire la formule de mise en forme conditionnelle suivante pour l'attribut de suppression :
//Conditional formatting example 2
If {Customer.Last Year's Sales} < 50000 Then
True //suppress the value
Else
False //do not suppress the value
348
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Formules

Link público atualizado
O link público para o seu chat foi atualizado.