[英]SSRS expression for hiding/showing text boxes
我創建了一個 SSRS 報告。
在這份報告中,我創建了一個名為:DataSet1 的數據集。 DataSet1 包含兩列:EntityId(整數)和 Name(Varchar)。 如果 EntityId 列中的值之一是“27”,我想顯示一個文本框。
所以我想寫一個這樣的表達式:
如果 DataSet1 中的某一行的 EntityId 值為 27,則顯示文本框,否則隱藏文本框。
通過閱讀其他一些類似的問題,我認為計算行數可能是要走的路。 所以它可能是這樣的:
計算 DataSet1.EntityId = 27 的行數。如果行數大於 0,則顯示 SSRS 文本框,否則隱藏文本框。
對表達式的任何幫助將不勝感激
您可以使用簡單的表達式輕松完成此操作。
將文本框的hidden
屬性設置為
=SUM(IIF(Fields!EntityID.Value = 27,1,0), "DataSet1") = 0
我們在這里所做的只是,從內心的表達開始......
EntityID
= 27,如果確實返回 1,否則返回 0。"DataSet1"
范圍內的每個實例(您的整個數據集)執行此操作如果結果為零(無行 = 27),這將返回True
並因此隱藏文本框
注意:數據集名稱必須用引號引起來並且區分大小寫。
為了保持表達式簡單,我建議直接在DataSet中添加相應的標志。 下面是一個例子:
DECLARE @t TABLE(
EntityID int
,Title nvarchar(10)
)
INSERT INTO @t VALUES
(10, 'Test 1')
,(27, 'Test 2')
,(27, 'Test 3')
,(11, 'Test 4')
,(15, 'Test 5')
,(15, 'Test 6')
,(27, 'Test 7')
SELECT *, COUNT(CASE WHEN EntityID = 27 THEN 1 ELSE NULL END) OVER (ORDER BY (SELECT 1)) AS flag
FROM @t
如果未找到 EntityID 27,則列flag
為 0,如果找到此 ID,則列flag
為 > 0,因此您的表達式將類似於if flag > 0 then...
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.