2016-04-22 9 views
0

Ich habe einen Parameter im Bericht, den ich vor kurzem geändert habe, um NULL Werte zu akzeptieren. Es war ein erforderlicher Parameter vorher, aber jetzt ist es nicht erforderlich. Der Header im Bericht hat den folgenden Ausdruck, um Daten aus dem Parameterwert zu lesen. Seit ich den Parameter so geändert habe, dass er die Werte NULL akzeptiert, wird ein Fehler ausgegeben. Es zeigt #Error in der Kopfzeile. Ich habe versucht, den Ausdruck zu ändern, um das Ergebnis anzuzeigen, selbst wenn der Parameter 'NULL' ist, aber nichts hat bisher funktioniert. Ich stecke hier ziemlich fest. Hier ist der Ausdruck, den ich in SSRS bin mit:SSRS-Ausdruck für leere Parameterwerte gibt #Error zurück

=IIF(Code.MultipleValues(Parameters!ProductID.Value(0))="True" 
,IIF(IsNothing(First(Fields!ProductName.Value, "ProductHeader")),"" 
,First(Fields!ProductName.Value, "ProductHeader")).ToString 
,IIF(Len(Parameters!ProductID.Value(0)) > 0 
,IIF(First(Fields!ProductName.Value, "ProductHeader") is nothing,"" 
,First(Fields!ProductName.Value, "ProductHeader")),"All Products Selected")) 

Ich glaube, der Fehler hat mit dem VB benutzerdefinierten Code zu tun, die in dem Bericht. Ich bin nicht so vertraut mit dem Code, so dass ich Probleme bei der Fehlerbehebung habe. VB-Code:

Public Function MultipleValues(ByVal str As String) As String 
If str.Contains(",") 
Return "True" 
Else 
Return "False" 
End If 
End Function 

Jeder Vorschlag, wie #Error in SSRS zu behandeln? Dank

+0

Warum ist es 'Parameters! ProductID.Value (0)' - Wenn Sie mehrere Werte verwenden, können Sie Join verwenden, um Ihre Bedingung zu überprüfen. etwas wie 'Join (Parameters! ProductID.Value,", ")' – pedram

+0

Ich bin nicht sicher, warum dies getan wurde. Ich repariere die Arbeit eines anderen – Stephanie

+0

Diese Zeile 'IIF (Erste (Felder! ProductName.Value," ProductHeader ") ist nichts" sollte sein "IIF (ISNOTHING (Erste (Felder! ProductName.Value," ProductHeader "))'. –

Antwort

0

ersetzen

Code.MultipleValues(Parameters!ProductID.Value(0))="True" 

mit

IndexOf(Parameters!ProductID.Value(0).ToString(),",") >= 0 
+1

Danke für Ihre Antwort. Es gibt andere Parameter in dem Bericht, der diesen Code verwendet Wenn ich es ändere, werde ich durch die anderen Parameter ausfallen. Können Sie bitte Ihre Antwort erklären? – Stephanie

+0

Es wird effizienter sein, IndexOf aufzurufen - eine eingebaute Funktion - anstatt zu gehen Code.MultipleV alues. Nimm zuerst eine Kopie, dann gehe zum eigentlichen Code und suche und ersetze. – BIDeveloper

0

Statt einer Funktion, können Sie die IsNothing Check vor dem Parameter setzen gerade?

Verwandte Themen