我正在开发一个包含
参数的报告 RowGroupLevel1,
RowGroupLevel2,
ColumnGroupLevel1,
ColumnGroupLevel2,
ColumnGroupLevel3
行组包含类别,主管名称,客户端名称类似字段
列组包含年,季度,月份字段。
所以我的要求与行和列分组中的Level1除外,其他字段是可选的。
例如:如果我选择如下
方案1:
RowGroupLevel1 - 类别
RowGroupLevel2 - 执行名称
ColumnGroupLevel1 - 年份
ColumnGroupLevel2 - Quaker
ColumnGroupLevel3 - 月
方案2:
RowGroupLevel1 - 类别
RowGroupLevel2 -
ColumnGroupLevel1 - 年份
ColumnGroupLevel2 - 月
ColumnGroupLevel3 -
所以我可以动态地对报告进行分组。
请帮我创建任何类型的SSRS报告。
提前致谢。
Ankit Gusani
答案 0 :(得分:0)
实现这一目标的最简单方法是首先编写您的查询,然后像这样提取结果。
SELECT DATEPART(WEEK, Date_Column) AS [Weekly]
,DATEPART(MONTH, Date_Column) AS [Monthly]
,DATEPART(YEAR, Date_Column) AS [Yearly]
,SUM(Some_Column) AS Total
FROM Table_Name
GROUP BY DATEPART(MONTH, Date_Column)
,DATEPART(WEEK, Date_Column)
,DATEPART(YEAR, Date_Column)
添加Matrix数据区域。将Total
列拖放到DATA
。
创建GROUP ON
Text
类型的参数,并提供值
1) Weekly
2) Monthly
3) Yearly
现在在ROW GROUPS
窗格的下方,右键单击唯一可见的行组并转到GROUP PROPERTIES
在GROUP ON
部分中放入以下表达式。
=SWITCH(
Parameters!Groupby.Value = "Weekly", Fields!Weekly.Value
,Parameters!Groupby.Value = "Monthly", Fields!Monthly.Value
,Parameters!Groupby.Value = "Yearly", Fields!Yearly.Value
)
在数据区域ROWS
部分使用完全相同的表达式。
对于列名,您可以使用以下表达式...
=SWITCH(
Parameters!Groupby.Value = "Weekly", "Weekly"
,Parameters!Groupby.Value = "Monthly", "Monthly"
,Parameters!Groupby.Value = "Yearly", "Yearly"
)
你很高兴。
重要提示
SSRS是一种很酷的数据表示工具,在数据处理方面并不那么酷,为了获得更好的性能,可以更接近源(数据库,SQL Server)进行各种数据处理。
所有演示文稿都应在SSRS上处理。