【发布时间】:2012-09-26 16:19:09
【问题描述】:
SSSRS 2008 R2
我的 BIDS 项目有一些报告,但这些报告引用了大量子报告。如何将所有子报表移动到它们自己的文件夹中并在我的主报表正文中引用它们?
我尝试创建一个文件夹并手动将子报表移动到其中。那没有用。 BIDS 找不到子报表,并且该文件夹没有出现在项目结构中。
【问题讨论】:
标签: sql-server-2008 reporting-services
SSSRS 2008 R2
我的 BIDS 项目有一些报告,但这些报告引用了大量子报告。如何将所有子报表移动到它们自己的文件夹中并在我的主报表正文中引用它们?
我尝试创建一个文件夹并手动将子报表移动到其中。那没有用。 BIDS 找不到子报表,并且该文件夹没有出现在项目结构中。
【问题讨论】:
标签: sql-server-2008 reporting-services
这里的问题是 BIDS 要求所有子报表与主报表位于同一文件夹中,您不能使用路径或子文件夹。
但是,当部署到报表服务器时,相对路径(例如 /SomeFolder/MyReport)将起作用,因此您可以将主报告更改为指向任何子文件夹或相对路径中的报告,这将在部署后起作用。但是,在 BIDS 中运行主报表时,您将无法在主报表中看到子报表。
【讨论】:
在 Visual Studio 中开发时,不能使用文件夹路径引用。如果这样做,您将收到一条错误消息“找不到文件路径的一部分”。
对于开发,您需要确保子报告在您的项目中,然后使用下拉菜单选择报告。开发完成后,主报表需要更改以引用正确的文件夹 (/Sub reports/myReport.rdl),子报表需要部署到正确的文件夹 (@987654324 @)。这意味着将有 2 个子报表副本——1 个在您的 MainReport 项目中,1 个在您的 SubReport 项目中。有两个副本要保持最新并不理想,但它可以工作。
此外,如果排除第一个正斜杠 (Sub reports/myReport.rdl),您的参考是查看子文件夹。以正斜杠开头 (/Sub reports/myReport.rdl),您的参考路径从 SSRS Web 门户的根文件夹开始。
【讨论】:
以防有人在多年后发现。我当前的解决方案是使用报表生成器打开报表。在该界面中,您可以将子报表设置为服务器上的相对路径以及与主父报表不同的文件夹路径。您似乎无法通过 SSDT 或 BIDS 进行操作。
然后,您可以将主报告下载到 SSDT 中,并将其带回您的项目中。
要运行报告,您必须在项目 Bin\Debug 文件夹中设置报告管理器用于报告的相同文件夹结构。如果您不这样做,则会错误地要求该文件夹结构出现在那里。
那个 hack 对我有用。
【讨论】:
通过创建指向您的项目文件夹\bin\debug\full\subreport\path 的符号链接,我找到了一个不错的解决方法
详情和截图在这里:http://www.andrewmosey.com/subreport-in-a-sub-folder-working-in-visual-studio-and-ssrs
【讨论】: