2013-10-08 164 views
2

我有一个数据集,它看起来像这样显示月份名称值

ProjectName   MonthsThisYear CompletionDate 
ProjectA     5    5/1/2013 
ProjectB     7    7/15/2013 
ProjectC     10    10/21/2013 

我想柱状图中一个图,其中Y轴是项目名称和X轴是2013年1月,2013年2月......月

现在,针对projectA的栏必须为5个单位长,ProjectB为7个单位长,项目C的栏应为10个单位长。

这样人们可以看到ProjectA在5月份完成,ProjectB在7月完成,在10月份完成项目C.

如何绘制此图?

目前我可以正确地绘制这个......但X-ASIX有0,2,4,6,8,10,12在上面而不是月份名称。

我在SSRS 2008 R2上。

这是我现在看到的

enter image description here

我只是想看看在X轴月份名称和年份。

+1

日期范围会一直保持特定年份吗?如果是这样,今年有没有机会作为数据集的一个领域,即每一行都有一个2013年的字段? –

+1

另外,* 0 *处的标签应该是什么? –

+0

您可以使用'DateName(月,DateAdd(month,@MonthNumber,-1))'将您的x轴转换为月份名称。函数采取从http://stackoverflow.com/questions/185520/convert-month-number-to-month-name-function-in-sql –

回答

2

也许更多一些问题的细节将是有益的,但在这里与您的数据的工作方式一:

enter image description here

我们面临的主要问题是,一般的日期是类别,但在这种情况下它实际上是数据值,与类别组相比,这使我们对标签的控制更少。

首先,建立了基于ProjectName一个类别组的图表,以及像数据表现:

=DateSerial(Year(Fields!CompletionDate.Value), Month(Fields!CompletionDate.Value), 1) 

即首先将每个CompletionDate值的一个月,否则你的酒吧将是几个月之间。

enter image description here

接下来,我们需要理清X轴:

enter image description here

在我的例子中,我设置最低到:

=DateAdd(DateInterval.Month 
    , -1 
    , DateSerial(Year(Min(Fields!CompletionDate.Value)), 1, 1)) 

即12月为去年。设置最大到:

=DateSerial(Year(Max(Fields!CompletionDate.Value)), 12, 31) 

即今年年底。设置间隔为1,间隔类型为Months

将X轴格式化为MMM yyyy

看起来OK:

enter image description here

如果你其实可以用一个值或任何添加Year列,几乎所有的上述表述可以简化的。例如,我忽略了MonthsThisYear,但如果您有Year列,则可以根据MonthsThisYearYear构建月份的起始值。