Frage

Also ich habe einen "daily Armaturenbrett" Bericht in SSRS 2005. Es hat einen Parameter, @pDate, die standardmäßig auf "= Now".

Ich möchte diesen gleichen Bericht in einem verknüpften Bericht verwenden gestrigen Finale Armaturenbrett zu zeigen (die über Abonnement würde dann verschickt) und mit einem anderen Ausdruck, der die Parameter Standardeinstellung überschreiben „= dateadd (d, 1, Jetzt)." Aber wenn ich die Standard-Parameter zu ändern, ich einen Datenabgleichfehler erhalten (natch).

Ich gehe davon aus, das ist das Ende der Linie und ich brauche nur eine Kopie des täglichen Dashboard-Berichts mit einem Standard-@pDate von gestern zu implementieren, aber ich dachte, dass ich hier posten würde und sehen, ob jemand einige nette Abkürzung hatte um dies zu erreichen, ohne zwei RDLs pflegen zu müssen.

UPDATE: Ich fand dies auf MSDN :

  

Wenn übernimmt Standardwert Wert, Sie   kann eine Konstante oder Syntaxtyp ist, die   gültig für die Datenverarbeitung   Erweiterung mit dem Bericht verwendet werden.

"Datenverarbeitungserweiterung" übersetzt offenbar zu SQL Server, so habe ich versucht, wählt gültige Singleton, die nicht Konstanten waren (GETDATE () "27.04 /" + JAHR (GETDATE ()), etc ...) und immer noch nichts.

War es hilfreich?

Lösung

So fand ich mein Problem heraus: Wenn Sie subreports in Ihrem Haupt-Bericht haben die Pass-Through verwenden Parameter aus dem Hauptbericht, sicherstellen, dass alle Ihre Parameter in Ihrem subreports den gleichen Datentyp verwenden . Zwei meiner subreports wurden mit einem String-Datentyp für das @pDate Feld statt Datum- und so das Abonnement versagt (obwohl aus irgendeinem Grunde die Live-Version des Berichts diese Inkonsistenz duldet.)

Ich bin jetzt ein datengesteuertes Abonnement @pDate setzen dynamisch und alles scheint gut zu funktionieren.

Andere Tipps

ich nicht getestet haben, aber Sie könnten versuchen, einen zweiten Parameter den Bericht Hinzufügen (ohne Standard - nennen es für die Zwecke des Beweises pDateOverride) und dann den Standardwert für pDate ändern Ausdruck mit der zu sein neuer Wert, wenn es vorhanden ist, sonst Now (). So etwas wie:

=Iif(IsEmpty(Parameters!pDateOverride.Value),Now(),Parameters!pDateOverride.Value)

Sie können dann pDateOverride gesetzt, wenn der Bericht Aufruf gestrigen Abschluss Armaturenbrett zu erzeugen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top