SQL 2005 Reporting Services wenn Sie auf null prüfen
In SSRS 2005 habe ich eine Tabelle mit einem Datensatz verknüpft.
Ich möchte überprüfen, ob der Wert eines Felds null ist, und wenn es nicht null ist, dann formatieren Sie die Daten, um sicherzustellen, es hat eine Dezimalstelle, und fügen Sie ein % - Zeichen etc.
Dies ist mein Ausdruck auf das Feld/Spalte:
=iif(IsNothing(Fields!COL01.Value), "" ,Format(CDbl(Trim(Replace(Fields!COL01.Value, "%", ""))), "N1") + "%")
Es scheint nicht zu funktionieren, obwohl, wenn die Daten null ist (Es funktioniert gut, wenn Daten vorhanden sind). Der Bericht zeigt aber das Feld zeigt sich als #FEHLER.
Ich denke, die überprüfen, um zu sehen, ob beide Fälle gültig sind, obwohl Ihr null. Ich versuche, verwenden Sie die if-Anweisung zu vermeiden, dann eine null.
InformationsquelleAutor MaxGeek | 2009-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde versuchen, mit ISNULL(Feldname, 0) bei der Abfrage für dataset.
Wenn Sie eine Verbindung zu einer Datenquelle, ohne eine ISNULL-operator (ie. Oracle), dann versuchen Sie es mit COALESCE(Feldname, 0), die iSeries, oracle und sql-Sie alle unterstützen.
Oracle hat NVL(Spaltenname, 0), und die funktioniert wie ISNULL().
InformationsquelleAutor Jon Erickson
SSRS-Ausdrücke werden ausgewertet, die mit Visual Basic, die in der Regel bedeutet eine vollständige (also kein Kurzschluss) Auswertung aller Operanden in einem Ausdruck, z.B. in IIf(cond, truexp, falsexp), die neben cond, beide truexp und falsexp ausgewertet und werfen kann, unabhängig von dem Wert des cond.
Da scheint es nicht zu sein-coalescing-Funktion in VB.NET 2.0, möchten Sie vielleicht hinzufügen, in den Code-Abschnitt des Berichts, z.B. für Dezimal in der Form zurückgegeben, die von Oracle
Wäre es möglich, zu definieren, eine generische Funktion zu, z.B. Coalesce(Von TResult).
InformationsquelleAutor user33675
Versuchen Sie es mit IsDBNull
InformationsquelleAutor Jason Irwin
Sie überprüfen könnten, für null in der SQL-Abfrage statt auf Berichtsebene. Wie IsNull(Feldname,0) dann einfach format für die %. Vorausgesetzt natürlich, Ihre Daten aus SQL Server.
InformationsquelleAutor Mozy
Als ich dieses problem hatte habe ich eine switch-Anweisung wertet die Bedingungen in der Reihenfolge, in der es geschrieben ist, und scheint zu mir zu Holen um beide Seiten der iif-Anweisung ausgewertet wird, zur gleichen Zeit.
Ian
InformationsquelleAutor Ian W