【问题标题】:SQL Server Reporting Services and Report DevelopmentSQL Server 报告服务和报告开发
【发布时间】:2014-03-21 20:31:16
【问题描述】:

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

环境:

SSRS 2010

SQL Server 2012

【问题讨论】:

    标签: sql sql-server excel reporting-services report


    【解决方案1】:

    伟大的问题湖岸。我看到了两种可能性:

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

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

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

    【讨论】:

      【解决方案2】:

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

      这是一个例子:

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

      另请参阅此线程以获取更多详细信息: SSRS Field Expression to change the background color of the Cell

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

      =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")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多