Reporting services 根据数值显示月份名称
我有一个像这样的数据集Reporting services 根据数值显示月份名称,reporting-services,Reporting Services,我有一个像这样的数据集 ProjectName MonthsThisYear CompletionDate ProjectA 5 5/1/2013 ProjectB 7 7/15/2013 ProjectC 10 10/21/2013 我想画一个条形图,其中Y轴是项目名称,X轴是2013年1月
ProjectName MonthsThisYear CompletionDate
ProjectA 5 5/1/2013
ProjectB 7 7/15/2013
ProjectC 10 10/21/2013
我想画一个条形图,其中Y轴是项目名称,X轴是2013年1月,2013年2月。。。2013年12月
现在,projectA的条必须是5个单位长,ProjectB的条必须是7个单位长,ProjectC的条必须是10个单位长
因此,人们可以看到项目A在5月完成,项目B在7月完成,项目C在10月完成
我如何绘制这个图表
目前我可以正确地绘制这个。。。但是X-Asix上有0、2、4、6、8、10、12个月名,而不是月份名
我在SSRS2008R2上
这就是我现在看到的
我只想在X轴上查看月份名称和年份。也许更多的问题细节会有用,但有一种方法可以处理数据: 我们面临的主要问题是,通常日期是类别,但在本例中,它实际上是数据值,与类别组相比,它使我们对标签的控制更少 首先,根据
ProjectName
设置一个包含类别组的图表,并使用如下数据表达式:
=DateSerial(Year(Fields!CompletionDate.Value), Month(Fields!CompletionDate.Value), 1)
i、 e.每个CompletionDate
值月份的第一个月,否则您的条形图将在两个月之间
接下来,我们需要整理X轴:
在我的示例中,我将最小值设置为:
=DateAdd(DateInterval.Month
, -1
, DateSerial(Year(Min(Fields!CompletionDate.Value)), 1, 1))
=DateSerial(Year(Max(Fields!CompletionDate.Value)), 12, 31)
i、 e.去年12月。将最大值设置为:
=DateAdd(DateInterval.Month
, -1
, DateSerial(Year(Min(Fields!CompletionDate.Value)), 1, 1))
=DateSerial(Year(Max(Fields!CompletionDate.Value)), 12, 31)
i、 e.年底
将间隔设置为1
,间隔类型设置为Months
将X轴格式化为MMM-yyyy
看起来不错:
如果您可以实际添加一个值为2013或其他值的
Year
列,那么上面几乎所有的表达式都可以简化。例如,我忽略了今年的月
,但是如果您有年
列,您可以基于今年的月
和年
来构建月初值,日期范围是否总是针对特定的一年?如果是这样,您是否有可能将今年作为数据集的一个字段,即每行都有一个带有2013的年份字段?此外,0处的标签应该是什么?您可以使用DateName(month,DateAdd(month,@MonthNumber,-1))
将x轴转换为月份名称。函数取自编辑数据集,并使用上述函数创建一个新字段monthName
。然后使用monthsisear
作为您的类别,但在标签中显示monthName
而不是monthsisear
。您可以屏蔽0以显示为空白。嗯