我有一個用戶請求來創建一個SSRS訂閱,每天將觸發,並提供從昨天的日期直到運行報告的時間的內容。SSRS訂閱允許今天或昨天的參數SQL Server 2012
通過visual studio設計的報表在運行報表時確實有最小和最大日期。但是,在訂閱上選擇日期範圍並使其動態前進不是一種選擇。在訂購屏幕上都沒有輸入參數。有誰知道如何做到這一點?
我有一個用戶請求來創建一個SSRS訂閱,每天將觸發,並提供從昨天的日期直到運行報告的時間的內容。SSRS訂閱允許今天或昨天的參數SQL Server 2012
通過visual studio設計的報表在運行報表時確實有最小和最大日期。但是,在訂閱上選擇日期範圍並使其動態前進不是一種選擇。在訂購屏幕上都沒有輸入參數。有誰知道如何做到這一點?
我通常會將當天的天數作爲日期範圍。
例如:
create proc my_report(@start_date_offset int, @end_date_offset int)
as
begin
declare @start_date date;
declare @end_date date;
select
@start_date = dateadd(dd, -1 * @start_date_offset, getdate()),
@end_date = dateadd(dd, -1 * @end_date_offset, getdate());
-- Do stuff with @start_date and @end_date
end
然後,您可以調用這些相關的偏移量,而不是實際日期您的報告。
您可以使用實際的日期時間並以小時或分鐘爲單位定義偏移量,而總體原則是您的SSRS訂閱具有偏移量作爲其硬編碼參數,而不是實際日期。
編輯:
另一種方法是有存儲過程只需要日期變量,但SSRS報表可以有隱藏的偏移參數和可見日期參數。日期參數可以使用偏移量計算其默認值,並且可以允許用戶覆蓋它們。您的SSRS訂閱將指定偏移量,並將日期變量設置爲使用默認值。
我的問題是,我仍然需要讓用戶輸入自己的參數來運行報告。這只是這個訂閱的時間安排,我希望允許特定用戶默認到昨天的日期。 –
您可以將偏移量設置爲隱藏參數,手動運行報表時不可見,並且將日期參數默認爲空。在proc開始時,測試日期參數是否爲空,如果是,則使用偏移量計算新的參數。訂閱可以將日期參數設置爲空,並指定偏移量。 –
你有沒有試過用表達式顯示或隱藏數據集? – LONG
這可能會幫助你。基本上你需要使你的參數動態:https://stackoverflow.com/questions/12039295/ssrs-report-subscription-parameters-date-values或https://stackoverflow.com/questions/38273583/need-to-set -a-date-parameter-on-an-ssrs-subscription –