Crystal Reports  

Conversions de type automatiques (syntaxe Crystal)

Généralement, dans Crystal Reports, les valeurs d'un type ne peuvent pas être utilisées là où les valeurs d'un autre type sont attendues sans fournir explicitement une fonction de conversion de type. Par exemple :

Local StringVar codepostal;
//Erreur- une valeur numérique est affectée à une chaîne
//codepostal := 10025;
//OK - utiliser la fonction de conversion de type CStr
//pour créer "10025"
codepostal := CStr (10025, 0);

Cependant, quelques conversions sont effectuées automatiquement :

Par exemple, les affectations suivantes sont correctes :

Local CurrencyVar prix;
//Identique à : prix := $10
prix := 10;
Local DateTimeVar dateCommande;
//Identique à : dateCommande := CDateTime (1999, 9, 23, 0, 0, 0)
datecommande := CDate (1999, 9, 23);
Local NumberVar Range plage;
//Identique à : plage := 20 To 20
plage := 20;
Local NumberVar Range Array TableauPlage;
//Identique à : TableauPlage := [10 To 10, 20 To 25, 2 To 2]
intervalleplage := [10, 20 To 25, 2];
Remarque   Les conversions dans le sens opposé ne sont pas autorisées. Par exemple :
Local NumberVar num;
num := 5 + $10; //Erreur
//OK- convertir en type numérique à l'aide de la fonction CDbl
num := CDbl (5 + $10) //Pourrait aussi utiliser la fonction 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 en 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.

Voir aussi

Variables | Types de données simples | Types de données plage | Types de données tableau