IN(项目,集合)在计算的字段数据集中

时间:2013-09-18 09:14:49

标签: reporting-services ssrs-2008

我正在尝试在数据集中创建一个计算字段,我需要使用experssion IN(item,set)来测试'Covergate Type'字段是否等于以下值之一:

Cargo
Contractors All Risks
Erection All Risks 
PI A&E Single Project
Single CGL

我试过写:

IN(Coverage Type,"Cargo Contractors All Risks","Erection All Risks","PI A&E Single Project","Single CGL")

但它不起作用。

任何人都可以帮助我编写IN表达式的语法吗?

2 个答案:

答案 0 :(得分:0)

您可以在IIf处使用计算字段中的各种检查;没有自定义代码的SSRS中没有真正的IN等价物:

=IIf(Fields!CovergateType.Value = "Cargo"
    or Fields!CovergateType.Value = "Contractors All Risks"
    or Fields!CovergateType.Value = "Erection All Risks"
    or Fields!CovergateType.Value = "PI A&E Single Project"
    or Fields!CovergateType.Value = "Single CGL"
  , true
  , false)

这将返回一个布尔值,具体取决于它是否符合您的要求。

根据您的要求更改字段名称/返回表达式。

在评论后修改

您绝对可以将其用作数据集中的计算字段。

假设我们有一个简单的查询来生成样本数据集:

enter image description here

enter image description here

现在,使用上面的表达式添加一个计算字段:

enter image description here

enter image description here

enter image description here

然后,可以将其用作报表中任何位置的普通列,甚至可以用作数据集中的后续计算字段:

enter image description here

enter image description here

仍不确定SSRS中IN功能的含义 - 我在VB.NET function reference中看不到任何内容。如果您提供链接,我可以修改答案,但第一个建议可以正常工作,如您所见。

答案 1 :(得分:0)

我只是通过数据集内的这个计算字段公式来解决我的问题:

enter image description here

感谢您的支持 问候。 乔治