SSRS 折线图 NULL VALUE - 水平线

SSRS Line chart NULL VALUE - Horizontal Line

我希望有人能帮助我。我创建了一个 SSRS (2012) 报告,随着时间的推移绘制多个系列。图表如上所示。通过使空点值与线本身具有相同的颜色和大小,许多非连接点很容易 'joined up'。我已经用 MC113 证明了这一点。这一切都很好 - 我在网上找到了大量有用的信息来帮助我解决这个问题。我遇到的问题是领先的(有时是滞后的)水平线(圆圈)。这是该系列的数据与其余数据不在同一点开始或结束的地方(上面的示例似乎从 2009 年开始,而其余数据从 2005 年开始)。

数据集来自查询,这些点作为 NULL 值返回。我怎样才能删除这条线——这样在这种情况下——这条线将从 2009 年开始?我试过过滤——但这只会截断所有系列(到 2009 年),而不仅仅是过滤 MC113。

有人有什么建议吗?也许我需要研究如何显示查询中的数据?

目前看起来像:

如有任何帮助,我们将不胜感激!

你能把线条的颜色设置成一个表达式吗?

=iif(isNothing(Fields!SelectedValue.Value),'No Color',"LightBlue")

好的 - 在这里它变得丑陋...我认为您可能需要在 TSQL 中执行此操作以找到每个系列的值为 not null 的最低日期,如果日期早于此,将线条颜色设置为白色

下面的代码将创建列以确定是否显示数据点

    WITH x AS  (
                  Select SampleDate, MC113,MC114,MC46,MC47,MC48
                  From sometable
)
,MinDates AS (
SELECT MC113MinDate = (SELECT Min(SampleDate) FROM x WHERE MC113 IS NOT NULL)
      ,MC114MinDate = (SELECT Min(SampleDate) FROM x WHERE MC114 IS NOT NULL)
      ,MC46MinDate = (SELECT Min(SampleDate) FROM x WHERE MC46 IS NOT NULL)
      ,MC47MinDate = (SELECT Min(SampleDate) FROM x WHERE MC47 IS NOT NULL)
      ,MC48MinDate = (SELECT Min(SampleDate) FROM x WHERE MC48 IS NOT NULL)
      )
SELECT x.SampleDate
        ,MC113,ShowMC113 = CASE WHEN MC113 IS NULL THEN CASE WHEN MC113MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC114,ShowMC114 = CASE WHEN MC114 IS NULL THEN CASE WHEN MC114MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC46,ShowMC46 = CASE WHEN MC46 IS NULL THEN CASE WHEN MC46MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC47,ShowMC47 = CASE WHEN MC47 IS NULL THEN CASE WHEN MC47MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC48,ShowMC48 = CASE WHEN MC48 IS NULL THEN CASE WHEN MC48MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
FROM x CROSS JOIN MinDates

然后设置你的颜色和系列的空点属性,根据值ShowMC113、ShowMC114等设置颜色

注意:让图例显示您选择的颜色而不是白色有些棘手,但希望这会给您一些帮助...