1

我正在尝试使用 SQL Server 2012 SSRS 制作报告。我要显示的是,如果我的表格报告的任何列(MaxC、AvgC、MaxU)中的一个单元格变为红色(基于应用于值的阈值条件),仪表指针(表格上方)停留在红色区域,如果任何列中的任何单元格变为黄色,则仪表将停留在黄色区域,如果绿色则停留在绿色区域。怎么办 我为这个问题写了一个表达式。这就是我为 MaxC 列(值 2472)中的第一条记录所做的,它是黄色的。我能够显示仪表指针停留在黄色区域,但我不确定如何对我感兴趣的所有列中的所有记录应用类似的逻辑。谢谢

=Switch(Fields!MaxC.Value > 4000, "Red", Fields!MaxC.Value < 2000, "Green"
, true , "Gold")
4

1 回答 1

1

如果我理解正确,上述表达式适用于第一个单元格MaxC,默认情况下您可以让其他单元格单独工作吗?如果是这样,您现在关心的是在整个 tablix 上聚合它,即整个数据集?

如果是这样,我建议您Max()在有问题的数据集上使用一个函数,如下所示:

=Switch(Max(Fields!MaxC.Value, "DatasetA") > 4000, "Red", Max(Fields!MaxC.Value, "DatasetA") < 2000, "Green" , true , "Gold")

如果您想将所有三个阈值合并为一个并且如果不同,我认为您可能会:

=Switch(Max(Fields!MaxC.Value, "DatasetA") > 4000 
    OR Max(Fields!AvgC.Value, "DatasetA") > 3000 
    OR Max(Fields!MaxU.Value, "DatasetA") > 2000 , "Red",
    Max(Fields!MaxC.Value, "DatasetA") < 2000 
    OR Max(Fields!AvgC.Value, "DatasetA") < 1000 
    OR Max(Fields!MaxU.Value, "DatasetA") < 500 , "Green",
    true , "Gold")

或者

=Switch(Max(Fields!MaxC.Value, "DatasetA") > 4000 , "Red",
    Max(Fields!AvgC.Value, "DatasetA") > 3000 , "Red",
    Max(Fields!MaxU.Value, "DatasetA") > 2000 , "Red",
    Max(Fields!MaxC.Value, "DatasetA") < 2000 , "Green",
    Max(Fields!AvgC.Value, "DatasetA") < 1000 , "Green",
    Max(Fields!MaxU.Value, "DatasetA") < 500 , "Green",
    true , "Gold")
于 2013-03-26T11:07:29.747 回答