如何在SSRS中为Gauge指针编写表达式?

时间:2013-03-22 15:26:10

标签: reporting-services expression

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

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

1 个答案:

答案 0 :(得分: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")