Erreur de calcul dans le Rapport Crystal Fomula
J'ai 2 champs décimaux: GrossSalary et des Déductions. Dans le rapport, j'ai créé un champ de formule nommé NetSalary, qui est:
If Not IsNull({SalaryDetails.GrossAmount}) Then
{SalaryDetails.GrossAmount} - {SalaryDetails.Deduction}
Lorsque les données sont disponibles, le rapport s'exécute correctement, mais si j'obtiens l'erreur suivante
A number, currency amount,date,time, or date-time is required here.
Details:errorKind
Error in File tempxxxxxxxxx.rpt:
Error in formula NetAmount:
'If Not IsNull({SalaryDetails.GrossAmount}) Then
'
A number,currency amount,date,time, or date-time is required here.
Details:errorKind
Comment puis-je résoudre ce problème?
- sont les valeurs NULL ou sont-ils des chaînes vides? Si Pas IsNull({SalaryDetails.GrossAmount}) ET {SalaryDetails.GrossAmount} <> "", Alors ... je voudrais aussi vérifier que votre base de données pour s'assurer il n'y a pas de caractères alpha parce que cela va également provoquer ce message.
- j'ai aussi inclus case vide. Mais si j'utilise directement je suis d'erreur. J'ai donc utilisé comme Si ce N'IsNull({SalaryDetails.GrossAmount}) ET CSTR({SalaryDetails.GrossAmount}) <> "" Alors.. Mais même problème
- Pouvez-vous essayer d'utiliser CDBL() autour de vos champs décimaux? Êtes-vous sûr il n'y a pas alpha caractères dans la base de données?
- est correcte, Crystal pense que, soit {SalaryDetails.GrossAmount} ou {SalaryDetails.Déduction} n'est pas un nombre. Cela peut se produire si le champ est un champ de chaîne d'un certain type (comme VARCHAR), même si elle ne contient que des chiffres. Essayez le CDBL() astuce pour un champ et vérifier l'erreur, puis essayez de l'autre. (Et si l'erreur persiste, essayez les deux champs.)
- Merci ami. J'ai ajouté CDBL sur le terrain et c'est le succès maintenant. Veuillez me dire quelle est cette caractères alpha. En fait la source de la déclaration est d'une requête LINQ et le problème soulevé lors de l'absence de données pour les paramètres d'entrée
Vous devez vous connecter pour publier un commentaire.
Crystal Reports lancer cette erreur, s'il estime qu'il est de travailler avec une valeur qui n'est pas un nombre. Crystal a de nombreuses fonctions de conversion telles que (CDBL, CSTR, etc) et également des données fonctions de contrôle (IsNull, IsNumeric, etc) que vous pouvez utiliser.
Dans votre cas particulier, la conversion des valeurs d'un DBL (CDBL({champ}) permet de résoudre votre problème après Crystal vérifie les valeurs null ou les espaces.
Le CDBL ou de la fonction IsNumeric est bon de travail électronique.g :
{@Total} /100 * CDBL({tblinvdetail.disque}). Dans cette formule, le disque est la colonne remise de tblinvdetail table. Nous supposons que le disque de la colonne aussi accepter les valeurs null. Pour Éviter cette erreur le CDBL ou de la fonction IsNumeric convertir la valeur null à la valeur 0. Vous devriez precautionally appliquer cdbl ou IsNumeric fucntion toujours dans une formule de Rapport Crystal pour éviter ce genre d'erreur. Utiliser la Fonction IsNumeric si la valeur de la production n'a pas de floating points autres sages fonction CDBL. Vous pouvez également utiliser la Fonction IsNull pour déterminer la valeur null e.g:
si IsNull({tblinvdetail.disque}) alors
"0"
d'autre
{@Total} /100 * {tblinvdetail.disque}
=====================================================================
Munawar Shah AFridi
(MCSD.net)