簡體   English   中英

在Tablix行中顯示多值參數的選定值

[英]Display selected values of multi-value parameter in tablix rows

我正在為SSRS設計報告。 我希望請求報告的用戶能夠在生成報告時從預定義選擇中指定一些值,這些值應顯示在報告的Tablix中。

因此,我創建了一個多值參數,並在“可用值”中填充了我希望用戶能夠選擇的選項,並且,正如預期的那樣,在生成報告時,用戶能夠選擇一個或多個這些值。

但是,我現在想做的是在報表中包括一個tablix,並為用戶選擇的多值參數中的每個值顯示一行,並在該行的第一個單元格中顯示該值。

如果這些值來自數據表,這顯然很容易。 我還找到了有關如何使用JOIN函數在單個文本框中顯示所有選定參數值的答案,但我不想這樣做。

我能想到的唯一解決方案是手動復制tablix中多值參數中的可用值列表,並將tablix每行的可見性鏈接到multi-value參數中相應值的選定狀態,但這不是很好,並且會增加維護報告定義的工作量。

有關如何執行此操作的任何想法? 我知道從參數中選擇的值只是形成一個數組,但是我看不到如何將Tablix綁定到數據集中沒有的任何數據,或者如何從參數值創建數據集。

考慮到tablix來自數據集,我做了一些實驗,看看如何為您創建一個低維護的解決方案。

選項1 :創建帶有硬編碼選項的數據集以匹配您的多值參數,並在參數中存在這些選項的情況下選擇這些選項。

例:

 SELECT val
    FROM (
        SELECT 'opt1' as val
        UNION SELECT 'opt2'
        UNION SELECT 'opt3'
        UNION SELECT 'opt4') a
    WHERE val IN (@Param)

想法:維護比在表上查看要容易,但是報表中仍然有兩個硬編碼位置。

選項2 :創建一個數據集,該數據集選擇多值參數並將其按每個值划分。 這是我的第一個想法,但是在確定如何實際選擇多值而沒有語法錯誤時遇到了一些問題。 我想出了一種方法,該方法在報表中創建一個限定字符串,然后將該字符串解析回數據集中的行中:

步驟1)在數據集屬性內的參數選項卡上,將多個值與一個JOIN表達式連接在一起 在此處輸入圖片說明

步驟2)創建一個使用新的SQL Server 2016函數string_split的簡單查詢。 請注意,您的數據庫兼容性級別必須為130或更高才能使用此功能(SQL 2016+)。 如果這不是您的情況,則可以在Stack Overflow上找到許多字符串拆分函數來實現相同的目的。
在此處輸入圖片說明

好玩的問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM