Reporting services 在计算字段数据集中的(项,集)

Reporting services 在计算字段数据集中的(项,集),reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我试图在数据集中创建一个计算字段,在该数据集中,我需要使用Expersion 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&a

我试图在数据集中创建一个计算字段,在该数据集中,我需要使用Expersion 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")
但它不起作用


有谁能帮我写一下表达式中
的语法吗?

你可以在这里使用
IIf
在计算字段中进行各种检查;在没有自定义代码的SSR中,在
中没有真正的

=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)
它将返回一个布尔值,具体取决于它是否满足您的要求

根据需要更改字段名/返回表达式

评论后编辑

您完全可以将其用作数据集中的计算字段

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

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

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


仍然不确定你所说的SSRS中的IN函数是什么意思-我在这个函数中看不到任何东西。如果您提供一个链接,我可以修改答案,但是第一个建议很好,正如您所看到的。

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

谢谢你的支持 当做
Georges

只有在数据集之外创建计算字段时,公式才有效。在我的例子中,我需要从数据集创建它,在语法上它在(Item,Set)中,但我不知道如何在我的值中说明Set部分。为什么你说你不能在数据集中使用它?我已经扩展了我的答案,说明了这一点。