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