SQL Server Reporting Services和报表开发

我有八个不同的产品线有四个数据集,计划,预测,实际和SPLY。 如果实际高于或低于计划和/或预测,我想要添加条件格式的背景颜色。 报告需要正确导出到Excel。 有没有一种方法,我可以使用一个控件而不是多个文本框来显示数据,允许条件格式和导出到Excel? 谢谢!

环境:

SSRS 2010

SQL Server 2012

很好的问题湖岸。 我看到两种可能性:

  1. 将数据集一起join到一个数据集中,以便结果返回每个产品线的计划,预测和实际值。 那么你可以简单的设置背景:

    =iif(Fields!Plan.Value > Fields!Actual.Value,"Pink","LightGreen") 
  2. 使用查找function根据产品线引用不同数据集中的值:

     =iif(Lookup(Fields!ProductLine.Value,Fields!ProductLine.Value, Fields!Plan.Value,"Plan") > Fields!Actual.Value,"Pink","LightGreen") 

在报表的SQL语句中一起join数据,以便在同一个数据集中获得一行产品,实际,计划和预测。 然后,您可以使用expression式来为要有条件地格式化的文本框的背景颜色。

这里是一个例子:

 =IIF(Fields!Actual.Value >= Fields!Plan.Value, "Green", "Red") 

另请参阅此主题以获取更多详细信息: SSRS字段expression式可更改单元格的背景颜色

或者你可以使用一个switch语句来表示如果Actual低于计划和预测,则将其设置为红色,如果高于或等于两者,则使绿色,否则(实际假定为高于一个,低于另一个)使黄色:

 =Switch(Fields!Actual.Value < Fields!Plan.Value and Fields!Actual.Value < Fields!Forecast.Value , "Red" , Fields!Actual.Value >= Fields!Plan.Value and Fields!Actual.Value >= Fields!Forecast.Value , "Green" , 1=1, "Yellow")