当两个折线图相遇时绘制一条垂直线 - SSRS

时间:2013-08-05 09:23:31

标签: reporting-services ssrs-2008

平台:SSRS-2008

当两张折线图相交时,我需要添加一条垂直线,如图所示。我该怎么做?

enter image description here

1 个答案:

答案 0 :(得分:1)

要放置在图表上的绿线称为StripLine。让它们正确显示可能非常棘手。首先要设置的是数据结构。

数据集结果看起来不像这样:

Time    Series    Value
12:00   A         20
12:00   B         30

他们必须看起来像这样:

Time   SeriesAValue    SeriesBValue
12:00  20              30

原因是如果您尝试使用类别组或系列组,则不会显示StripLines。

接下来,您必须计算拦截点。在我的例子中,我添加了另一个数据集来返回截距的时间。

declare @test table(Time datetime, Value1 int, Value2 int)
INSERT INTO @test values('12:00', 32, 20), ('12:01', 30, 22), ('12:02', 24, 25), ('12:03', 28, 30), ('12:04', 29, 20)

SELECT MIN(Time)
FROM @test
WHERE Value1 <= Value2

要插入StripLine,请在图表上选择“水平轴”。单击Appearance部分下的StripLines属性。单击“添加”按钮。在“间隔”部分中,您只想更改IntervalOffset表达式,将其他所有内容保留为“自动”。表达式如下所示:

=DateDiff(DateInterval.Minute, Min(Fields!Time.Value, "DataSet1"), First(Fields!ID.Value, "DataSet2")) + 1

间隔必须计算为整数,而+1是因为它从0开始。结果将如下所示:

enter image description here

由于您的其中一行是设定值,因此您可以进一步简化这一行。