您好
下面是我的图表,我需要在每4个小节后显示一条线。 SSRS为我提供了在条形图之间显示线条的功能,但我希望显示两个区间之间的线条。
因此灰色线条可以通过“显示主要网格线”显示,但我需要用红色突出显示的线条,因此每个月后都需要显示红色直线。
由于
答案 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)
现在每个月之间显示一个行分隔符。