首页 > 解决方案 > 报表生成器图表上的条件标签格式

问题描述

我正在尝试设计一个 SSRS 报告,最终用户可以在其中选择是否要查看按年或按月分组的某些图表。用户选择参数@dategroup 的值来确定这一点。

如果@dategroup 为“YEAR”,则 SQL 分组并提取过去 6 年的行数。如果@dategroup 是“MONTH”,它会分组并提取过去 6 个月。SQL 工作正常,但我正在努力让水平轴标签在我的报告生成器图表上正确格式化。

我的查询将“cte_date”列传递到作为日期字段的水平轴。当报告按月分组时,我使用 LabelsFormat 属性获取日期的月份部分。例如,如果查询将值 2019-01-01 传递给图表,LabelsFormat 会将其转换为“Jan”。在这种情况下,属性 LabelsFormat 的值为“MMM”。当@dateformat 为“YEAR”时,本例中的横轴为“2019”,LabelsFormat 为“yyyy”。

我尝试将 LabelsFormat 属性自定义为

Iif(Parameters!dategroup.Value=YEAR,yyyy,MMM)

但这并没有返回所需的结果(如果按月分组,则为月部分,如果按年分组,则为年部分)。有没有办法根据参数值格式化轴标签(日期)?

标签: reportbuilder

解决方案


问题中的代码很接近,它只需要一些格式更改。为参数值和格式添加双引号。在要更改的轴的 LabelsFormat 属性中输入以下代码。

=IIf(Parameters!dategroup.Value="YEAR","yyyy","MMM")

如果@dategroup 参数设置为“YEAR”,它将格式化日期以仅显示年份。否则,它将日期格式化为三个字母的月份代码。


推荐阅读