2016-07-07 1 views
1

Ich muss einen Bericht einmal im Monat, jeden Monat und einmal im Quartal, jedes Quartal ausführen. Die zugrunde liegenden Daten für beide Berichte sind identisch. Muss ich eine separate ssrs-Lösung für jede rdl-Datei pflegen, so dass ich die Standardwerte für Startdatum und Enddatum anpassen kann, oder gibt es eine Möglichkeit, dass ich beide rdl-Dateien in derselben Lösung aufbewahren kann und einen monthStartDate- und monthEndDate-Parameter habe nur die monatlichen Bericht Referenzen und eine QuarterStartDate und QuarterEndDate Parameter?SSRS mehrere Berichte einzelne Lösung

Cheers,

Antwort

0

Von dem, was Sie geteilt haben, bin ich nicht klar, warum dies muss auch verschiedene Berichte sein (RDL-Dateien). Eine RDL ein start und end Parameter nehmen und die Abonnements könnte für vierteljährlich und monatlich mit unterschiedlichen Werten eingerichtet werden. Oder es könnte ein weiterer Parameter hinzugefügt werden, MonthOrQuarter, der die Variablenwerte für das Dataset oder die Filter ändert.

Aber sicherlich könnte dies zwei .rdl bezieht sich auf einen gemeinsamen Datensatz.

0

Erstellen Sie eine Ansicht, die den Anfang und das Ende der verschiedenen Zeitperioden Sie basieren auf dem aktuellen Datum wollen berechnet, und hat ein Etikett, das Sie als Parameter-Label verwenden können

CREATE VIEW DateRangeParameters 
AS 
SELECT 
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS StartDate, 
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate())+1, '2000-01-01') AS EndDate, 
'This Month' as Label 
UNION ALL 
SELECT 
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate())-1, '2000-01-01') AS 
StartDate, 
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS EndDate, 
'LastMonth' as Label 
UNION ALL 
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS StartDate, 
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate())+1, '2000-01-01') AS EndDate, 
'This quarter' as Label 
UNION ALL 
SELECT 
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate())-1, '2000-01-01') AS 
StartDate, 
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate()), '2000-01-01') AS EndDate, 
'LastQuarter' as Label 

Extend für jede andere Zeit Zeiträume, die Sie Woche, Jahr etc. benötigen.

Erstellen Sie einen Datensatz mit dieser Ansicht direkt, um einen Datumsbereich auswählen zu können.

Verknüpfen Sie die Ansicht mit Ihrer vorhandenen Abfrage mit> = start und < Enddatumsspalten fügen Sie eine WHERE-Klausel hinzu, die die Beschriftung mit Ihrem Berichtsparameter verknüpft.

Auf diese Weise wird mit Ihrem Parameter ausgewählt, welcher Zeitbereich in Ihrer Abfrage verwendet werden soll.

Sie können die Berichte dann entweder manuell ausführen und den Parameter für den Zeitbereich auswählen oder den Bericht für die monatliche und separate Ausführung planen, um ihn vierteljährlich zu planen. Wählen Sie jeweils den entsprechenden Parameter aus, der den entsprechenden Datumsbereich dynamisch berechnet.