2017-07-06 35 views
1

我正在製作SSRS報告。我在數據庫中有一個名爲IsAllergic的字段,它可以是1,0或NULL。報告中的業務需求是「是」和「否」。如果是,那麼會顯示一張已選中的圖像,然後顯示爲未選中的,我已嘗試以下操作。 適用下的是複選框,這一形象我用下面的查詢:如何在布爾字段的SSRS報告中顯示兩種不同類型的圖像

=switch(Fields!IsAllergic .Value <> 1, "unchecked", Fields!IsAllergic .Value = 1, "checked") 

我已在報表最初運行「秀」的可見性。

適用下沒有複選框這個形象我用下面的查詢:

=switch(Fields!IsAllergic Value <> 1, "checked", Fields!IsAllergic .Value = 1, "unchecked") 

對於這個複選框還我已在報表最初運行「秀」的可見性。

當我運行報告時,我得到相反的結果。是顯示未勾選的複選框圖像,沒有顯示選中的複選框。 我在這裏錯過了什麼? 一直在看這幾個小時,幫助表示讚賞!

+0

該示例中存在語法錯誤。此外,如果你不測試空值,你可能會使用IIF而不是開關。 – Jayvee

回答

1

我剛剛把一個快速樣本進行測試,基本上你在做什麼應該是可以的(除了錯別字)。但是你可以簡化它。

分步 我創建了一個新的報告並添加了一個新的數據集。該數據集查詢如下(只生產一些樣本數據)

DECLARE @t TABLE (Name varchar(50), IsAllergic int) 

INSERT INTO @t 
VALUES   
('Bob', 1), 
('Dave', 0), 
('Mike', NULL), 
('Tony', 1), 
('Rick', 0), 
('Steve', NULL) 
                               SELECT * FROM @t 

接下來,我添加了兩個圖像,一個是有綠色對勾和一個與紅十字一個框,但顯然掉這些爲你檢查,未經檢查的圖像。

接下來,我添加了一個簡單的表格,其中有三列,第一列是名稱,第二列和第三列是圖片。

的圖像值屬性的表達是這樣的...... 對於YES列

=SWITCH(
Fields!IsAllergic.Value = 1, "checkboxchecked", 
True, "checkboxcrossed" 
) 

對於無柱

=SWITCH(
Fields!IsAllergic.Value = 1, "checkboxcrossed", 
True, "checkboxchecked" 
) 

通過使用SWITCH這樣我們才真正測試第一個條件,TRUE條件的作用類似於ELSE捕獲任何失敗的第一個條件,包括NULL。

報告設計看起來像這樣

enter image description here

就是這樣,沒有其他性質發生了變化。 輸出看起來像這樣。

enter image description here

0

我結束了使用I如果替代交換機。 以下是我所做的。

=IIf(Fields!IsAllergic.Value <> True, "checked", "unchecked") 

這也處理NULL。如果IsAllergic爲NULL或0,則顯示未選中的複選框,如果爲true,則顯示已檢查的chkbox。

相關問題