2013-07-26 148 views
0

我有2个表二者均具有列“countyID”SSRS传递参数给子报表

我有一个基于类似的查询带来了报告的主报告:

SELECT countyID, name, address, state 
FROM TableA 

---我在TableA上有一个参数集,您可以在其中选择Name来查看其报告。

然后我有一个基于像查询了第二份报告:

SELECT * 
FROM TableB 

我想用第二报表作为子报表,如,当您选择名称为顶级报告,应然后列表来自TableB的所有记录都具有相同的CountyID。

有没有办法将县ID设置为参数,然后将其传递给子报表?通过这种方式,子报表总是只将具有匹配的县ID的记录返回到主报表的当前选定记录。

+0

[SSRS循环报告和子报告]可能的重复(http://stackoverflow.com/questions/17888709/ssrs-loop-for-report-and-subreport) –

+0

TableB查询是否返回相同数量和类型的TableA做的那些行? – TTUGecko

回答

1

我假设你已经创建了一个下拉@Name参数加载到你用于TableA的DataSet中。你已经配置了此参数从您的TableA的数据集,可能使用类似于查询的名称字段中指定其值:

SELECT CountyID, Name, Address, State 
FROM TableA 
WHERE Name = @Name 

你会那么需要创建另一个参数来存储来自相关CountyID值数据集,例如@CountyID。将其设置为“隐藏”。对于“可用值”和“默认值”,将其指向同一个TableA DataSet,但使用CountyID字段作为其值/标签。

然后您需要将@CountyID参数传递到您的子报表中。此表矩阵的数据集应该是,像你这样的概括:

SELECT * 
FROM TableB 
WHERE CountyID = @CountyID 

你确定你使用的是报表对于这一点,而不是其他表矩阵?原因是,如果您使用的是子报表,则需要打开子报表对象并在其上创建@CountyID参数,假设这是TableB DataSet所在的位置。将其设置为隐藏,但不要担心设置任何值,因为它会从主报告中收到。

最后,再回到原来的主报告,在您拖到您的报告的身体报表框中单击鼠标右键,选择属性>参数>设置名称CountyID,和值作为[@ CountyID]

* *注:在SSRS中,参数具有区分大小写的烦人特性。在报告开发中尽早记住这一点总是好事。

+1

感谢这工作完美 –

相关问题