2016-07-21 4 views
0

Ich beschränke meinen Bericht auf 10.000 Zeilen in der Abfrage (TOP 10000), denn wenn sie keine Parameter angeben (Standard ist alles ausgewählt) dauert es ewig zu laufen und zu sein Ehrlich ist nicht nützlich.SSRS verstecken Textfeld basierend auf Anzahl der Zeilen im Bericht

Ich habe eine Textbox im Text des Berichts unten unter meinem Tablix erstellt. Der Bericht enthält keine Gruppierungen oder Summen oder irgendetwas. Ich habe die Hidden-Eigenschaft auf "= IIf (CountRows (" MainQuery ")> = 1000, False, True) gesetzt". Der Text ist etwas wie "Mehr als 9999 Ergebnisse wurden zurückgegeben. Bericht abgeschnitten."

Ich bekomme einen Fehler außerhalb des Bereichs. Wenn ich CountRows ("MainQuery") als Wert für das Textfeld verwende, gebe ich den Wert in Ordnung. Warum mag es meinen Ausdruck nicht?

+0

Bizarre. Ich änderte den Text in der Box und CountRows funktionierte. Ich änderte es zurück zu dem was ich hatte und es funktionierte. Der Ausdruck ist der gleiche wie der, den ich starten musste. Artikel schließen – user1612851

+0

Nicht sicher, warum das funktioniert, wenn Sie mehrere Datensätze haben, aber froh, dass es funktioniert. Zu Ihrer Information, siehe meine aktualisierte Antwort, wie Sie den Umfang für ähnliche Situationen festlegen können. –

Antwort

0

Verwenden Sie Count ("MainQuery") anstelle von CountRows. CountRows muss auf den aktuellen Bereich verweisen.

Update: Count funktioniert für einen Bericht mit einem einzelnen Dataset. Für einen Bericht mit mehreren Datensätzen müssen Sie den Bereich in dem Ausdruck angeben, etwa so:

= IIF (Count (Fields AnyField "MainQuery")> 1000, wahr, falsch!)

+0

Ich erhalte den gleichen Fehler "Der versteckte Ausdruck für das Textfeld 'txtRowLimit' verwendet einen Aggregatausdruck ohne einen Bereich. Ein Bereich ist für alle Aggregate erforderlich, die außerhalb eines Datenbereichs verwendet werden, außer der Bericht enthält genau einen Datensatz." – user1612851