SSRS的新手
我的表的第1列是Department,第2列是The计算
例如费用总和...
我用下面的表达式求和
但是我想排除那些为空的部门,但这并不令人高兴。
= Sum(IIF(Fields!ReturnOrder.Value =“ 1” + IsNothing(Fields!Department.Value)= 1,Fields!Cost.Value,0))
第1列仍显示空部门。我不想显示这个...
我只想让第1列显示部门名称,而不显示空行..和第2列成本总和,其中返回值= 1
请帮助
答案 0 :(得分:1)
要使表达式按照您所拥有的方式工作,您需要将加号更改为AND进行逻辑运算,并将ISNOTHING保留为布尔值(不等于1):
=Sum(IIF(Fields!ReturnOrder.Value = "1" AND NOT(IsNothing(Fields!Department.Value)), Fields!Cost.Value, 0))
我不确定ReturnOrder是做什么的,但您保留了条件。
答案 1 :(得分:0)
最好的方法是更改您的查询:
SELECT *
FROM [YourTable]
WHERE [Department] IS NOT NULL;
您还可以选择详细信息行,单击“属性”选项卡,然后在“隐藏”属性中输入公式
=IIF(IsNothing(Fields!Department.value), True, False)
这说:“如果部门为空,则隐藏此行,否则显示它”。第一种方法更好,因为返回到报表的数据更少。第二种方法要求返回所有行,并且报表必须对显示的行进行排序。
答案 2 :(得分:0)
您要查找的表达式是
=Sum(IIF(Fields!ReturnOrder.Value = "1" AND IsNothing(Fields!Department.Value) = False, Fields!Cost.Value, 0))
提示:如果您的值是十进制而不是0,请使用Cdec(0)以避免错误。
为避免显示空部门,我建议过滤您的SQL查询。
您也可以通过过滤tablix来实现
Expression: IsNothing(Fields!Department.Value)
Type: Boolean
Operator: Equal =
Value: False
这样做会隐藏Null部门,您的表情可以简化为
=Sum(IIF(Fields!ReturnOrder.Value = "1", Fields!cost.Value, 0))