2013-04-05 66 views
0

我正在使用SSAS中的數據創建SSRS以創建報告。如何在選擇另一個時自動選擇Reporting Services參數值

在一個多值參數中,我想在選擇另一個參數時自動選擇一個參數值。

例如:在Month參數中;在值列表中選擇第6個月將從第1到第6個選擇所有值。或者檢查參數的值也會檢查以前的值。

該過程將類似於檢查「全選」選項來檢查所有可用的值。

任何建議將是最受歡迎的。

感謝您的幫助。

+0

只是爲了澄清:給定參數選擇特定的值時,你想爲** ** **參數自動選擇其他值還是爲不同的參數? – 2013-04-05 17:47:00

+0

@MarkBannister。對於相同的參數。 – 2013-04-05 21:01:34

回答

0

我會以兩種方式之一將第二個參數綁定到第一個參數。對於兩者,我都會設置'datasets'來綁定參數。

  1. 您可以在數據集上設置「過濾器」以僅返回一個條件。

  2. 您可以在第二個日期集中擁有一個謂詞,該謂詞引用由第一個參數設置的參數。

EG:如果我有一個 '人' 數據集(這兩個應該在SSRS 2008年或2012年的工作)

declare @Person Table (personID int identity, person varchar(8)); 

insert into @Person values ('Brett'),('Sean'),('Chad'),('Michael'),('Ray'),('Erik'),('Queyn'); 

Select top 100 * 
from @Person p 

然後在 '命令' 數據集:

declare @Orders table (OrderID int identity, PersonID int, Desciption varchar(32), Amount int); 

insert into @Orders values (1, 'Shirt', 20),(1, 'Shoes', 50),(2, 'Shirt', 22),(2, 'Shoes', 52),(3, 'Shirt', 20),(3, 'Shoes', 50),(3, 'Hat', 20),(4, 'Shirt', 20),(5, 'Shirt', 20),(5, 'Pants', 30), 
(6, 'Shirt', 20),(6, 'RunningShoes', 70),(7, 'Shirt', 22),(7, 'Shoes', 40),(7, 'Coat', 80) 

select * 
from @Orders 

如果我設置了一個Person變量,該變量使用'從查詢中獲取數據',並且將'PersonID'設置爲值,將'person'設置爲標籤。那麼我可以設置得到它通過添加任何過濾器或是從第一個值的第二參數where子句,如:

select * 
from @Orders 
where PersonID in (@Person) 
+0

感謝您的努力。數據正在從SSAS中提取。所以我的目標是自動檢查多值參數中的複選框。 – 2013-04-05 21:07:29

+0

這應該做到這一點。它只會將範圍從20個項目限制到適用的4個或5個範圍。如果您希望自動填充然後「運行」,則可以選擇:第二個參數的「默認值」。如果你不希望用戶看到它,你甚至可以使它「隱藏」。或者不填充「可用值」的謂詞,然後填充「默認值」的謂詞。該方法允許用戶獲得默認運行,但如果他們想要更改選擇,則可以在此之後覆蓋它。 – djangojazz 2013-04-05 22:25:25

+1

您不能爲自己填充相同的參數。你可以做的最好的做法是分別填充與參數相關的數據集。根據我對SSRS的瞭解,您不能執行遞歸操作。該參數是前瞻性操作。它希望投入在其他事情上做些事情,它不能獲得投入和自我更新,只能進一步向下。但是,您可以多次使用相似的數據集,並對其使用不同的謂詞並對其進行標記。如果我繼續進行操作,我可以使用n次訂單並獲得n個不同的結果。 – djangojazz 2013-04-05 22:40:13

相關問題