2012-10-12 45 views
0

我的客戶希望能夠基於參數(ReportType)顯示/隱藏報表中的列。報告欄是靜態的,它們將控制哪些隱藏/顯示,從而創建不同的「視圖」。目前只有2個視圖,但我們即將添加幾個視圖。使用DataSet值控制列可見性

目前列能見度通過簡單的表達控制:!=參數ReportType.Value =「someValue中」

,只有1報告類型隱藏列,以便該表達式是罰款。

現在我們正在進入一種情況,其中一列可能隱藏在多個ReportType中,我想避免進入:IF報告類型= VAL1或VAL2或VAL3 THEN HIDE,因爲它會使其很難看到要顯示任何給定的REPORTTYPE是指哪些列(因爲所有的邏輯是在每列的知名度表達式)

我找到了一個職位,並使用它的基本要素: http://sql-bi-dev.blogspot.co.uk/2010/10/displaying-dynamic-columns-in-ssrs.html

什麼即時試圖做的是定義數據集,如下所示:

SELECT * FROM 
(
select 'Rpt Type1' ReportType, 'Units' ColumnName UNION 
select 'Rpt Type1' ReportType, 'Price' ColumnName UNION 
select 'Rpt Type2' ReportType, 'Units' ColumnName 
) ReportColumns 
WHERE ReportType = @ReportType 

然後在Column Visibility表達式中檢查數據集中是否存在列名。通過這種方式,報表類型的可見列被定義在一個地方,並易於管理/維護。

在我鏈接的帖子裏,他讓用戶在參數中選擇列名。我想根據所選的ReportType參數查找數據集中的名稱。

林停留在獲取列名成參數,然後使用該列中的可見性表達。任何幫助將是多少a​​preciated :)

回答

0

Doh,我幾乎沒有。

我創建了一個參數並設置其默認值「擺脫查詢」,並選擇我的數據集和的ColumnName場......完成任務!

然後,我只是在使用我所關注的文章中的代碼編寫每列的可見性表達式。