SSRS显示自定义网格线

时间:2014-10-01 04:53:42

标签: sql-server sql-server-2008 reporting-services ssrs-2008-r2

Red lines need to be displayed

您好

下面是我的图表,我需要在每4个小节后显示一条线。 SSRS为我提供了在条形图之间显示线条的功能,但我希望显示两个区间之间的线条。

因此灰色线条可以通过“显示主要网格线”显示,但我需要用红色突出显示的线条,因此每个月后都需要显示红色直线。

由于

1 个答案:

答案 0 :(得分:0)

由于SSRS不够灵活,有时我们需要做一些棘手的事情来做我们需要做的事情。

由于X轴是月度数据,因此我将每行的第15行加倍。

INSERT INTO @Output SELECT * FROM Result UNION ALL SELECT Cast(Year(DateAdd(d, -15, RevisedPeriod)) AS VarChar(4)) + '-' + Cast(Month(DateAdd(d, -15, RevisedPeriod)) AS VarChar(2)) + '-15', NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL FROM Result

然后我计算所有条形图周围的峰值。

SELECT @Max1 = Max(Bar1) FROM @Output SELECT @Max2 = Max(Bar2) FROM @Output SELECT @Max3 = Max(Bar3) FROM @Output SELECT @Max4 = Max(Bar4) FROM @Output

SELECT @MaxAll = Max(Value) FROM (VALUES (@Max1), (@Max2), (@Max3), (@Max4)) AS AllValues(Value)

然后获得条形可以达到的下一个峰值,例如,如果我得到37,295的最大值,那么峰值将是40,000 - 0.01,这样该线将到达图表的顶部。请参阅以下结果。

SET @MaxAll = Cast(Cast(Cast(SubString(Cast(Cast(@MaxAll AS BigInt) AS VarChar(50)), 1, 1) AS Int) + 1 AS VarChar(1)) + Replace(Space(Len(Cast(Cast(@MaxAll AS BigInt) AS VarChar(50)))-1), ' ', '0') AS Decimal(18, 2)) - 0.01

最后使用此@MaxDAll值

更新代表每月15日的行

UPDATE @Output SET PeriodSeparator = @MaxAll WHERE Day(RevisedPeriod) = 15 AND Month(RevisedPeriod) <> 6

然后在SSRS中显示每个月的第15个作为范围图表类型(Eror Bar)

现在每个月之间显示一个行分隔符。