2017-07-06 11 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。

相关问题