2017-04-26 34 views
0

我有7個數據集和7臺所有的報告一致,除了數據集相同各有一個稍微不同的where子句我可以根據當前月份自動更改Tablix的數據集嗎?

where datepart(DW,[Start Time]) = 2 

的想法是這個月顯示的數據爲每星期一在一個表每個星期二在另一個星期二等等。所以一張桌子使用星期一數據集(上圖)

where datepart(DW,[Start Time]) = 3 

爲星期二等。我真正想做的是讓報告根據當月的第一天的哪一天決定首先使用哪個數據集。因此,本月(4月)1日是一個星期六,所以我想我最左邊的表使用DataSet

where datepart(DW,[Start Time]) = 7 

然後一前一後它是星期天,等等。但下個月(5月),我希望它會自動切換到第一個表中的星期一數據集,因爲第一個星期一是星期一。

這可能嗎?

回答

1

一種可能性是使用使用單個數據集的子報告。此數據集必須立足於每月的第一天,所以你第一副where子句,需要一個參數

WHERE DATEPART(DW, [Start Time]) = @dayOfWeek 

具有相同的子報告7份替換當前的7個表,但改變參數-report會傳遞的參數作爲

=WeekDay(dateserial(Year(now()), Month(now()), "1")) 

第二次報告會傳遞的參數作爲

=WeekDay(dateserial(Year(now()), Month(now()), "2")) 

等等...

+0

這是超級聰明,真正幫助我瞭解參數的真正力量。我覺得我應該回去重寫所有我的舊報告,使它們全部動態生成。 – tomdemaine

+0

很高興提供幫助,我通常會自己想,如果我正在做重複的事情,那麼我可能會以錯誤的方式去做這件事...... –

相關問題