我正在使用SSRS,情况是我在主报告中加载用户并且我创建了一个子报告来显示用户地址(每个用户可以有多个地址)。 现在,在添加子报告后,报告变得非常缓慢。我的猜测是,这是因为主报告需要为列表中的每个用户获取子报告的数据。
我想要实现的是在单个数据库命中中加载子报告的所有数据,然后只过滤应用程序中的记录。在SSRS报告中有没有办法做到这一点?
如果需要任何其他信息,请告诉我。 谢谢你的时间。
答案 0 :(得分:3)
如果你想这样做,那么你应该使用分组来实现它。例如,让您的数据集查询一些Sql,如:
SELECT User.Name, Address.StreetNumber, Address.Street, Address.City
FROM User
INNER JOIN Address ON User.Id = Address.UserId
ORDER BY User.Name
然后在您的Tablix上添加一个组(右键单击Tablix右侧的句柄以添加组)以显示用户详细信息的行,然后在Detail组中添加地址(您可以添加更多详细信息)行如果需要通过使用tablix句柄再次很好地格式化它)。
这将显示用户然后显示用户的所有地址,然后显示下一个用户,依此类推。
答案 1 :(得分:0)
您可以考虑使用共享数据集并在属性上启用缓存(将在SSRS本身上完成)