我的客戶希望能夠基於參數(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參數查找數據集中的名稱。
林停留在獲取列名成參數,然後使用該列中的可見性表達。任何幫助將是多少apreciated :)