我有一个Report Builder 3.0报告,它使用绑定到参数的组过滤器来显示数据。如何仅在可见行上对这些列求和?
我需要总结Fields!PY_Dollars.Value
,Fields!CY_Dollars.Value
并计算py-cy和两者之间的差异
在PY值为零或为零的情况2中,我不需要总计py值或进行比较行。如果参数!Store.Value = 1
,我隐藏了那些组过滤器[bool表达式= TRUE]:
=(
(Parameters!Store.Value=2)
OR
(Parameters!Store.Value=1 AND (IsNothing(SUM(Fields!PY_Dollars.Value)) OR (SUM(Fields!PY_Dollars.Value)=0)))
OR
(Parameters!Store.Value=0 AND SUM(Fields!PY_Dollars.Value)>0)
)
答案 0 :(得分:0)
好的,我很确定我知道如何完成这项工作。 将CY美元值和PY美元值的总和移动到构建报告的sql查询中。我使用相同的过滤器组保持分组相同。这里显示了一些细微的变化:
=(
(Parameters!Store.Value=2)
OR
(Parameters!Store.Value=1 AND (IsNothing(Fields!Sum_PY_Dollars.Value) OR (Fields!Sum_PY_Dollars.Value=0)))
OR
(Parameters!Store.Value=0 AND Fields!Sum_PY_Dollars.Value>0)
)
要获得通过报告显示的正确CY值,表达式需要Switch()函数。
=SUM(
Switch(
(Parameters!Store.Value=2), (Fields!Sum_CY_Dollars.Value) ,
(Parameters!Store.Value=1 AND (IsNothing(Fields!Sum_PY_Dollars.Value) OR Fields!Sum_PY_Dollars.Value=0)), (Fields!Sum_CY_Dollars.Value) ,
(Parameters!Store.Value=0 AND Fields!Sum_PY_Dollars.Value>0), (Fields!Sum_CY_Dollars.Value)
)
)
这基本上告诉它只对过滤器显示的内容求和。由于PY只需要在存在的地方求和,