2016-08-26 142 views
1

我想要顯示SSRS 2008 r2中來自數據集的值列表。我創建了一個數據集,用於從託運人編號參數中提取序列號列表。我可以得到S/N在報告上顯示,但它們是以多個頁面的列格式顯示的。我試圖把它們放在一個由逗號分隔的段落格式中。即 - s/n1,s/n2,s/n3,...我在這個網站上發現了一篇使用Join的文章,但我無法調整它爲我工作。在ssrs 2008 r2中以段落格式顯示報告中的字段r2

這裏是我用拉的數據查詢:

SELECT A.fserial 
FROM smsm2mdata.dbo.serial AS A 
JOIN shmast AS B ON B.fshipno = A.fshipno 
WHERE B.fshipno = @fshipno 

我把現場變成一個名單表矩陣上的報告

這之前,我可以發表該報告的最後一關... 幫幫我!

回答

0

Join()函數不起作用的原因可能是您將單個值傳遞給它而不是數組。如果您只是將該函數添加到新創建的Tablix中,會發生這種情況,因爲它們通常設置爲逐行顯示數據,而不是按集合進行聚合。

您有幾個不同的選項。一種是使用join()函數的查找函數。通常,查找會根據標準從數據集中檢索值,但在這種情況下,您只需要一切。這樣就可以使標準的東西,永遠是真實的,比如1 = 1的前兩個參數,在這個例子中:

=Join(LookupSet(1, 1, fields!fserial.Value,"YourDataSetName"),",") 

我相信公式甚至只是在一個文本框使用,如果你想。你也可以改變你的sql查詢來產生段落形式的結果,這樣你就不必在SSRS中做任何特殊的事情。這將使用有點深奧的SQL功能,但它是有用的知道這個特定的應用程序:

選擇的東西((選擇 '' + A.fserial FROM smsm2mdata.dbo.serial AS一 JOIN shmast爲B ON B. fshipno = A.fshipno WHERE B.fshipno = @fshipno的XML路徑( '') ),1,1, '')

我想你甚至可以與使用加入()函數沒有逃脫LookupSet()函數,如果你正確分組並且已經從你的tablix中刪除了細節部分。

+0

前兩個選項都不起作用。經過研究,我確定LookupSet和Stuff函數適用於SQL 2016(不幸的是,使我想升級)。我嘗試了第三個選項,但似乎無法讓連接功能正常工作。不斷拋出一個錯誤。 – ahartman

+0

第二個選項是純粹的基於SQL的選項 - 你會改變你的查詢。它不需要任何SSRS功能。第一個選項使用lookupset和join函數,這兩個函數至少在2008r2之後都是ssrs。 – TPhe

+0

@ahartman如果您收到錯誤消息,顯示您正在嘗試的內容,然後顯示您收到的錯誤可能有助於診斷問題。 – TPhe

相關問題