2013-06-18 30 views
0

我正在使用SQL Server Reporting Services 2008與C#進行ASPX網頁。如何鏈接SSRS中表格的頁腳中的多個數據集?

說我有一張食物表。

然後說我把食物分組。 對於每一個食品,我需要表現出相當多的信息,包括:食品是在口味相似

  • 列表
  • 可能的健康風險清單
  • 評級

這是我對如何做到這一點在SSRS最初的想法:

  1. 開始與獲取所有的食物
  2. 數據表組由食品ID
  3. 對於每個組創建一個包含所有信息爲食品領域/表頁腳名單表(類似食物,健康風險,評級等)

我的問題:

我想我能夠有數據集:

  • 讓所有的食品
  • 掌握食品ID
  • 掌握食品ID
  • 越來越評級等與食品ID相關聯

然後相關的健康風險相關的類似食物,在頁腳我將特定於食物的數據集與該特定組的食物標識相鏈接。

但是,我不能在一個組的頁腳中引用多個數據集。

有沒有什麼辦法可以將頁腳中的其他數據集與食品標識符鏈接在一起?

任何幫助表示讚賞!

+0

您使用的具體哪個版本的SSRS的:

你會在這樣一個表達式中使用它? –

+0

哦對不起。 2008年,上面添加了這一點。 –

回答

1

您可以根據當前FoodId 你組的其他數據集查找值:

=Lookup(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFoods.Value, "SimilarFoodsDataset") 

這是假設FoodId值之間的一個一對一的關係。如果您有一個值列表,請在相關表格中爲每個FoodId說幾行類似的食物,然後您要使用子報告或LookupSet

子報表

子報表是一個很好的選擇,因爲它們會自動工作,並提供了很多的靈活性,格式化和佈局。如果你想顯示多個字段,這當然是使用的選項。

創建一個名爲SimilarFoods的新報告。它應該只是列出類似食物的表格,並且有一個名爲FoodId的參數。它的數據集都會有這樣的SQL:

SELECT FoodId, SimilarFood 
FROM SimilarFoods 
WHERE FoodId = @FoodId 

回到主報表,在表格的組頁腳中插入從工具箱Subreport並設置ReportName到你上面創建的SimilarFoods報告(你可能想合併頁腳行的單元格,以便報表佔用整個表格長度)。右鍵單擊報告並選擇Subreport Properties...,單擊Parameters選項卡並添加一個參數Name設置爲FoodId,並將值設置爲[FoodId](您可以從下拉列表中選擇此字段)。

現在運行您的報告,併爲每個食物你會得到一個類似的食物在組頁腳。

LookupSet

LookupSet作品像Lookup但顧名思義它返回的結果集。結果不能直接在文本框中使用 - 您必須先操作它。但是,如果您只需要顯示一個字段,那麼這是一個不錯的選擇。

=Join(LookupSet(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFood.Value, "SimilarFoodsDataset"), vbCrLf) 
+0

我剛找到LookupSet。它返回一個行集合,而不僅僅是一個單一的值。不是我在找什麼?唯一的問題是我的表達式編輯器(在Visual Studio中)沒有識別這些查找函數(在'Lookup'下放置一條紅色的波浪線)。 –

+0

是的,你可以使用'LookupSet',但結果不能直接在文本框中使用,沒有一些操作,但它很容易做到這一點。您會發現子報表可能會給您更大的佈局靈活性,但我會在答案中添加「LookupSet」。 –

+0

是的,我最喜歡subreport的想法。 –

相關問題