L'expression If est l'une des fonctionnalités les plus utilisées de la syntaxe Crystal. Elle donne également une idée de la nature des expressions. Considérez la première expression If comme une formule séparée. Remarquez que cette formule est une expression unique qui, de ce fait, n'a pas besoin de point-virgule :
If {Orders Detail.Quantity} > 1 Then
"multiple units"
Else
"one unit"
Supposons que vous vouliez modifier cette formule pour qu'elle affiche soit "plusieurs unités", soit le chiffre 1.
//An erroneous formula
If {Orders Detail.Quantity} > 1 Then
"multiple units"
Else
1
Cette formule produira une erreur. En effet, les valeurs de cette expression sont de types différents : "plusieurs unités" est une valeur de chaîne et 1 est une valeur numérique. Crystal Reports exige que la valeur d'une expression soit toujours d'un seul type.
Remarque : Cet exemple peut être corrigé en utilisant la fonction CStr pour convertir le nombre 1 en une valeur de chaîne. Par exemple, le chiffre 1 est converti en chaîne 1 par un appel à la fonction CStr (1, 0).
//A correct formula
If {Orders Detail.Quantity} > 1 Then
"multiple units"
Else
CStr (1, 0) //Use 0 decimals