SSRS数据集过滤器

时间:2016-09-27 20:26:42

标签: reporting-services

您好我正在尝试在ssrs中构建一个报告,该报告根据当前周末的日期提供输出,其中结束日是星期六。我从SSAS Cube中提取数据,并且我有一个周末日期字段,所以我在查询设计器中应用了一个过滤器,使用我使用此表达式的参数获取当前的周末日期:

DateAdd("d",7-DatePart(DateInterval.Weekday,Today,FirstDayOfWeek.Sunday),Today)

当我执行查询时,它会抛出一个错误,说明违反了STRTOSET函数中约束标志所施加的限制。

请告诉我如何解决此问题。

1 个答案:

答案 0 :(得分:1)

抛出错误是因为您传递的字符串与多维数据集中的有效成员不对应。

请注意,查询设计器根据您选择的维度和成员构建MDX查询,此查询使用STRTOSET()函数将您的字符串参数转换为有效成员。

...
STRTOSET(@CurrentWeekendDate,CONSTRAINED)
...

如果您将当前的周末日期传递给参数,则会生成:

STRTOSET('2016-01-10',CONSTRAINED)

由于2016-01-10不是日期维度中的有效成员,因此会抛出错误。

你必须根据你的立方体传递这样的东西:

[Date].[Date Key].&[2005-01-01T00:00:00]

因此,在SSRS中,您必须将参数设置为Text并使用以下表达式:

正确表达:

="[200 Date].[Week Ending Date].&[" &
Format(
DateAdd("d",7-DatePart(DateInterval.Weekday,Today,FirstDayOfWeek.Sunday),Today),
"yyyy-MM-ddThh:mm:ss"
)
& "]"

更新:如果[Week Ending date]级别没有包含时间:

="[Date].[Date Key].&[" &
Format(
DateAdd("d",7-DatePart(DateInterval.Weekday,Today,FirstDayOfWeek.Sunday),Today),
"yyyy-MM-dd"
)
& "]" 

如果卡住,请浏览this tutorial

如果有帮助,请告诉我。