使用SSRS折线图在y轴上绘制时间段

时间:2009-03-05 21:04:05

标签: reporting-services charts

我希望使用SSRS折线图来绘制作业的结束运行时间。我在y轴上使用运行时,在x轴上使用日期。该图形看起来像一条平线,时间不显示在y轴上,但是整数显示。

我还想在特定时间放置一条目标线来显示我们的SLA时间。

以下是我尝试绘制的数据示例,但我想要一行。

+-------+----------+
|   y   |    x     |
+-------+----------+
| 10:05 | 3/1/2009 |
| 11:00 | 3/2/2009 |
| 10:15 | 3/3/2009 |
+-------+----------+

+-------+----------+----------+----------+
| 11:00 |          |    x     |          |
| 10:45 |          |          |          |
| 10:30 |          |          |          |
| 10:15 |          |          |    x     |
| 10:00 |    x     |          |          |
+-------+----------+----------+----------+
|       | 3/1/2009 | 3/2/2009 | 3/3/2009 |
+-------+----------+----------+----------+

1 个答案:

答案 0 :(得分:4)

假设您有表格日期和时间表。 声明报告参数@LimitHourParam decimal - 表示目标时间。 设置数据集查询:

SELECT Date, SUM(Hours) AS Hours, 'Actual Hours' AS LimitHour
FROM Times 
GROUP BY Date
UNION ALL
SELECT DISTINCT Date, @LimitHourParam AS Hours, 'Hours Limit' AS LimitHour
FROM Times 

因此,您将获得按日期分组的结果时间和每个日期唯一的小时限制。

将图表控件放在报告页面中。

转到图表属性 - >数据

按“添加值”
擦除Label的值并将Value设置为

=Sum(Fields!Hours.Value)

转到“编辑图表值”对话框的“点标签”选项卡,选中“显示点标签”,将数据标签设置为

= String.Format("{0}:{1}",  (Fields!Hours.Value / 1) - (Fields!Hours.Value Mod 1), (Fields!Hours.Value Mod 1)*60/1 - (Fields!Hours.Value Mod 1)*60 Mod 1)

添加类别组,将“Group On”表达式设置为

=Fields!Date.Value

添加系列组,将“Group On”表达式和Label值设置为

=Fields!LimitHour.Value

转到图表属性 - > X轴,设置标签格式dd / mm / yyyy

结果应如下所示: http://img9.imageshack.us/img9/3838/ssrschart.jpg

相关问题