Berechnung Fehler in Crystal-Reports-Bericht Fomula
Ich habe 2 decimal Felder: GrossSalary und Abzüge. In dem Bericht, habe ich mir eine Formel-Feld mit dem Namen NetSalary, das ist:
If Not IsNull({SalaryDetails.GrossAmount}) Then
{SalaryDetails.GrossAmount} - {SalaryDetails.Deduction}
Wenn Daten verfügbar sind, wird der Bericht ordnungsgemäß ausgeführt, aber wenn nicht bekomme ich die folgende Fehlermeldung
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
Wie kann ich dieses Problem beheben?
sind die Werte NULL oder sind Sie leere strings? Wenn Nicht IsNull({SalaryDetails.GrossAmount}) UND {SalaryDetails.GrossAmount} <> "" Dann ... würde ich auch überprüfen Sie Ihre Datenbank stellen Sie sicher, es gibt keine alpha-Zeichen, weil das wird auch dazu führen, die Nachricht.
ich habe auch enthalten leere schauen. Aber wenn ich direkt bekam ich Fehler. So habe ich, wie, Wenn Nicht IsNull({SalaryDetails.GrossAmount}) UND CSTR({SalaryDetails.GrossAmount}) <> "" Dann.. Aber das gleiche Problem
Können Sie versuchen, mit CDBL() um den decimal-Felder? Sind Sie sicher, dass es keine alpha-chars in der Datenbank?
richtig ist, Crystal denkt, dass entweder {SalaryDetails.GrossAmount} oder {SalaryDetails.Abzug} ist keine Zahl. Das kann passieren, wenn das Feld ein string-Feld von etwas geben (wie VARCHAR), auch wenn es enthält nur zahlen. Versuchen Sie die CDBL() trick für ein Feld eingeben und überprüfen Sie die Fehler, dann versuchen Sie das andere. (Und wenn Sie weiterhin die Fehlermeldung erhalten, versuchen Sie beide Felder ein.)
Dank Freund. Ich fügte hinzu, CDBL in beiden Feld-und es ist der Erfolg jetzt. Bitte sagen Sie mir, was ist das alpha-Zeichen. Eigentlich ist der Bericht Quelle LINQ-Abfrage und das problem wird ausgelöst, wenn keine Daten für die input-Parameter
ich habe auch enthalten leere schauen. Aber wenn ich direkt bekam ich Fehler. So habe ich, wie, Wenn Nicht IsNull({SalaryDetails.GrossAmount}) UND CSTR({SalaryDetails.GrossAmount}) <> "" Dann.. Aber das gleiche Problem
Können Sie versuchen, mit CDBL() um den decimal-Felder? Sind Sie sicher, dass es keine alpha-chars in der Datenbank?
richtig ist, Crystal denkt, dass entweder {SalaryDetails.GrossAmount} oder {SalaryDetails.Abzug} ist keine Zahl. Das kann passieren, wenn das Feld ein string-Feld von etwas geben (wie VARCHAR), auch wenn es enthält nur zahlen. Versuchen Sie die CDBL() trick für ein Feld eingeben und überprüfen Sie die Fehler, dann versuchen Sie das andere. (Und wenn Sie weiterhin die Fehlermeldung erhalten, versuchen Sie beide Felder ein.)
Dank Freund. Ich fügte hinzu, CDBL in beiden Feld-und es ist der Erfolg jetzt. Bitte sagen Sie mir, was ist das alpha-Zeichen. Eigentlich ist der Bericht Quelle LINQ-Abfrage und das problem wird ausgelöst, wenn keine Daten für die input-Parameter
InformationsquelleAutor Akhil | 2012-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Crystal Reports löst diese Fehler, wenn es glaubt, es ist das arbeiten mit einem Wert, der keine Zahl ist. Crystal hat viele Funktionen für die Konvertierung wie (CDBL, CSTR, etc) und auch die Daten überprüfen Funktionen (IsNull, IsNumeric, etc), die Sie verwenden können.
In Ihrem speziellen Fall, die Umwandlung der Werte in eine DBL (CDBL({Feld}) löst Ihr problem nach Crystal Prüfungen für null-Werte oder Leerzeichen.
InformationsquelleAutor Andrew
CDBL oder IsNumeric-Funktion ist in Ordnung der Arbeit e.g :
{@Gesamt} /100 * CDBL({tblinvdetail.disc}). In dieser Formel, die disc ist der Rabatt-Spalte von tblinvdetail Tabelle. Wir gehen davon aus, dass disc-Spalte auch null-Werte annehmen. Zur Vermeidung dieser Fehler CDBL oder IsNumeric-Funktion konvertieren, null, 0 Wert. Sollten Sie precautionally gelten cdbl oder IsNumeric Funktion immer in der jede Formel in Crystal-Reports-Bericht zu vermeiden, diese Art von Fehler. Verwenden IsNumeric-Funktion wenn der Wert des Ausgangs hat keine schwimmende Punkte andere weisen, die CDBL-Funktion. Sie können auch verwenden Sie IsNull-Funktion, um zu bestimmen, den Wert null.e.g:
if IsNull({tblinvdetail.disc}) dann
"0"
sonst
{@Gesamt} /100 * {tblinvdetail.disc}
=====================================================================
Munawar Shah AFridi
(MCSD.net)
InformationsquelleAutor Munawar Shah Afridi