SQL Server Reporting Services和报表开发

SQL Server Reporting Services和报表开发,sql,sql-server,excel,reporting-services,report,Sql,Sql Server,Excel,Reporting Services,Report,我有四个数据集,计划,预测,实际和每八个不同的产品线SPLY。如果实际值高于或低于计划和/或预测值,我想添加背景色的条件格式。报告需要正确导出到Excel。是否有一种方法可以使用一个控件而不是多个文本框来显示数据、允许条件格式设置和导出到Excel?谢谢 环境: SSRS 2010 SQL Server 2012湖岸大问题。我认为有两种可能性: 将这些数据集连接在一个数据集中,以便结果返回每个产品线的计划、预测和实际值。然后,您可以简单地设置背景: =iif(Fields!Plan.Value

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

环境:

SSRS 2010


SQL Server 2012

湖岸大问题。我认为有两种可能性:

  • 将这些数据集连接在一个数据集中,以便结果返回每个产品线的计划、预测和实际值。然后,您可以简单地设置背景:

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

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

  • 将数据连接到报表的SQL语句中,以便在同一数据集中获得一行产品、实际、计划和预测。然后,可以使用表达式作为要有条件格式化的文本框的背景色

    以下是一个例子:

    =IIF(Fields!Actual.Value >= Fields!Plan.Value, "Green", "Red")
    
    有关更多详细信息,请参见此线程:

    或者,您可以使用一个开关语句,该语句会说,如果实际值低于计划和预测值,则将其变为红色;如果实际值高于或等于计划和预测值,则将其变为绿色;否则(假设实际值高于一个,低于另一个),则将其变为黄色:

    =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")
    
    =开关(字段!实际值<字段!计划值和字段!实际值<字段!预测值
    “红色”
    ,字段!实际值>=字段!计划值和字段!实际值>=字段!预测值
    “绿色”
    ,1=1,“黄色”)