2017-10-18 38 views
0

Je suis nouveau à Crystal Reports. J'ai une base de données où la colonne de mémoire est signalée en KB. J'ai créé un rapport pour mon directeur informatique dans lequel il souhaite que ce champ indique la mémoire en GB. J'ai essayé cette formule (basée sur le livre que j'ai acheté intitulé « Guide du débutant à Crystal Reports 2016 »)Crystal Reports 2016 Formule Syntaxe

IF {tblDts.Memory} = "" THEN "N/A" ELSE {tblDts.Memory}*0.4256 

L'erreur que je reçois est

Un certain nombre ou montant en devise est nécessaire ici

et il met en évidence le {tblDts.Memory} après mon instruction ELSE.

Ce champ dans la base de données n'a que des valeurs numériques (btw - 0.4256 est le format décimal pour 10240, j'ai essayé une instruction de division avec les mêmes résultats et j'ai donc essayé une instruction de multiplication).

Qu'est-ce que je fais mal?

+0

Peut-être que je vais créer la formule de façon incorrecte? Je sélectionne le champ de données dans les détails et faites un clic droit dessus, sélectionnez Format Field. Je sélectionne ensuite l'onglet Commun et clique sur l'icône x-2 vers la droite de Display String. Cela pourrait-il être mon problème? – Szmooz

Répondre

1

Dans une instruction conditionnelle à la fois IF et ELSE doit renvoyer le même type de données sinon il y aura ce type d'erreurs signalées.

Ici, pour IF, vous renvoyez la chaîne et pour ELSE vous renvoyez Number, d'où l'erreur.

suggéré serait revenir 0 en cas de IF et votre calcul AUTRE

IF {tblDts.Memory} = "" 
THEN 0 
ELSE {tblDts.Memory}*0.4256 

Modifier ------------------------ --------------------------

if IsNumber({tblDts.Memory}) 
then 
(
ToNumber({tblDts.Memory})*0.4256 
) 
else 
0 
+0

J'ai essayé la formule et j'ai toujours la même erreur de 'Un nombre, ou le montant de la monnaie est requis ici' où {tblDts.Memory} est en surbrillance ........ peut-être Crystal Reports est en colère contre moi .... lol – Szmooz

+0

Pouvez-vous poster la formule modifiée – Siva

+0

Siva, j'ai copié et collé la formule que vous avez posté dans les commentaires ci-dessus. J'aimerais avoir la possibilité de joindre une capture d'écran de ce que je regarde et l'erreur qui apparaît. – Szmooz