2016-11-14 2 views
0

Ich stoße auf ein Problem mit einem SSRS-Abonnementbericht, den ich erstellt habe. Grundsätzlich habe ich 2 Datensätze und 1 Parameter, die beide @ReportDate genannt bekommen.SSRS-Abonnementparameter für den zweiten Datensatz, der nicht aktualisiert wird

enter image description here

enter image description here

@ReportDate hat einen Standardwert = Heute(). Wenn der Bericht jeden Morgen ausgeführt und vom Abonnement per E-Mail gesendet wird, erhält Datenmenge1 immer aktualisierte Informationen mit dem heutigen Datum und funktioniert einwandfrei. Datenmenge2 gibt jedoch immer Daten für das vorherige Datum zurück, an dem der Bericht erfolgreich ausgeführt wurde. Es ist also so, als würde der Parameter den aktualisierten Wert nicht in diesen Datensatz einspeisen, was ungerade ist, da beide Datensätze denselben Parameter verwenden. Wenn ich das Problem beheben und den Bericht ausführen werde, wird dataset2 dann mit Daten für das heutige Datum zurückkommen, so dass ich das Problem nicht replizieren kann. Mache ich etwas falsch? Ich benutze SSRS 2008 R2. Danke für Ihre Hilfe.

Edit: Das Problem gefunden. Beide Datasets haben dieselbe Datenquelle gemeinsam, dh die Datasets laufen parallel, nicht in der Reihenfolge, die ich im Report Builder sehe. Die Daten von Dataset2 hängen von einer Tabelle ab, die während der Ausführung von Dataset1 gefüllt wird. Dataset2 wurde vor Dataset1 beendet, daher wurden die aktuellen Tage nicht erfasst. Ich habe eine Einstellung für die Datenquelle aktualisiert, um sie so zu konfigurieren, dass die Datensätze jeweils in der Reihenfolge ausgeführt werden, in der sie im Berichtsgenerator angezeigt werden. Die Einstellung, die ich änderte, war das Aktivieren eines Kontrollkästchens in den Datenquelleneigenschaften "Einzelne Transaktion bei der Verarbeitung der Abfragen verwenden".

+0

tun Sie die where-Klausel in Ihrem Parameter gesetzt haben, einen Tag zurückblicken wie, wo date = dateadd (dd, -1, @DateParameter)? – newGuy

+0

Es gibt eine Fehlerüberprüfung am Anfang von Dataset1, die auf den Parameter verweist, aber außerhalb davon ist die Where-Klausel, die die Daten in beiden Datasets tatsächlich abruft, identisch. – BrandedSwordsMan

+0

Verwenden beide Datensätze die gleiche Datenquelle? – StevenWhite

Antwort

1

Das Problem gefunden. Beide Datasets haben dieselbe Datenquelle gemeinsam, dh die Datasets laufen parallel, nicht in der Reihenfolge, die ich im Report Builder sehe. Die Daten von Dataset2 hängen von einer Tabelle ab, die während der Ausführung von Dataset1 gefüllt wird. Dataset2 wurde vor Dataset1 beendet, daher wurden die aktuellen Tage nicht erfasst. Ich habe eine Einstellung für die Datenquelle aktualisiert, um sie so zu konfigurieren, dass die Datensätze jeweils in der Reihenfolge ausgeführt werden, in der sie im Berichtsgenerator angezeigt werden. Die Einstellung, die ich änderte, war das Aktivieren eines Kontrollkästchens in den Datenquelleneigenschaften "Einzelne Transaktion bei der Verarbeitung der Abfragen verwenden".

Updating DataSource

Verwandte Themen