簡體   English   中英

用於隱藏/顯示文本框的 SSRS 表達式

[英]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

我們在這里所做的只是,從內心的表達開始......

  1. 檢查EntityID = 27,如果確實返回 1,否則返回 0。
  2. "DataSet1"范圍內的每個實例(您的整個數據集)執行此操作
  3. 總結結果
  4. 測試結果是否為零

如果結果為零(無行 = 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.

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