Reporting services 在SSRS中显示多个折线图

Reporting services 在SSRS中显示多个折线图,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在SSRS中开发报告,我必须在折线图上显示数据。 折线图因用户选择的参数而异 现在我的问题是如何根据所选参数生成折线图。根据用户选择的参数,有时折线图可能是2,有时可能是4 请告知如何操作。在下面的示例中,我使用了一些基本的人口数据,它返回 国家、年份和人口 下面是生成示例数据的SQL DECLARE @t TABLE(Country varchar(20), [Year] int, Population float) INSERT INTO @t VALUES ('France', 20

我正在SSRS中开发报告,我必须在折线图上显示数据。 折线图因用户选择的参数而异

现在我的问题是如何根据所选参数生成折线图。根据用户选择的参数,有时折线图可能是2,有时可能是4


请告知如何操作。

在下面的示例中,我使用了一些基本的人口数据,它返回

国家、年份和人口

下面是生成示例数据的SQL

DECLARE @t TABLE(Country varchar(20), [Year] int, Population float)

INSERT INTO @t VALUES
('France', 2000, 59.0),
('France', 2005, 61.1),
('France', 2010, 62.9),
('France', 2015, 64.5),
('France', 2020, 65.3),
('Germany', 2000, 81.4),
('Germany', 2005, 81.6),
('Germany', 2010, 80.8),
('Germany', 2015, 81.8),
('Germany', 2020, 83.8),
('UK', 2000, 58.9),
('UK', 2005, 60.3),
('UK', 2010, 63.5),
('UK', 2015, 65.9),
('UK', 2020, 67.9)

SELECT * FROM @t
    WHERE Country = @Country
最后一个WHERE子句使用一个参数@Country,该参数将从报告中传入

方法

我们将创建一份显示单个国家人口的报告,该报告将用作子报告。 然后,我们将创建一个主报告,根据需要多次调用子报告

创建子报告

我创建了一个新报告,使用上面的查询添加了一个数据集,并将其称为数据集dsPopulation。这将自动生成参数@Country。不需要对该参数执行任何操作,因为用户不会直接使用它

然后,我在报告中添加了一个折线图,并将人口拖到值部分,将年份拖到类别组部分,将国家拖到系列组部分,如下所示

保存报告,称之为_sub_PopulationReport

现在创建主报告

创建新报告

添加新的数据集“dsCountries”,其中包含不同国家的列表。你必须决定如何最好地做到这一点。您可能可以从myDataTable中按国家顺序选择不同的国家。对于本例,我将对列表进行硬编码

datatset查询如下所示

DECLARE @t TABLE(Country varchar(20))
INSERT INTO @t VALUES
('France'), ('Germany'), ('UK')

SELECT * FROM @t
    WHERE Country IN (@Country)
这将自动创建国家/地区参数。 编辑参数并将“可用值”列表设置为国家/地区列表。您可以通过将其指向一个只需手动添加它们的查询来实现这一点

将参数设置为多值

现在向报表设计中添加一个表

接下来,右键单击任何行或列标题(任何一个标题都可以使用),然后选择Tablix属性。将“数据集名称”选项设置为刚创建的数据集

接下来,删除标题行和两列,这样就只剩下一个“单元格”

让桌子足够宽,使你的图表与高度相适应,这并不重要

在剩余的单元格中,右键单击并选择Insert=>Subreport

在占位符上单击鼠标右键,然后选择“子报表属性”。在“将此报告用作子报告”选项下,选择我们先前创建的报告_sub_PopulationReport

单击左侧的“参数”选项卡,然后添加

在名称下选择或键入国家,在值下选择或键入[国家]

就这样

报告设计应该是这样的。。。注意我的子报表名称与上面的不同,请忽略此项

如果我为一个国家运行报告并选择一个国家,我会得到这个

如果我选择更多的国家,在这种情况下,我会得到这个


我的要求是,我必须在单独的折线图中显示每个国家的人口。例如,如果用户选择法国和德国,则将显示两个单独的折线图,而不是在单线图上同时显示这两个国家的数据。同样,如果用户选择3个国家,则会显示3个单独的折线图。好的,我将在接下来的几小时内发布一个新答案。请阅读更新后的答案。使用分组还有其他方法,但我发现这种方法更灵活。非常感谢!!这就是我要找的