Visual Studio for SSRS 2008 - 如何在解决方案资源管理器中将报表组织到子文件夹中?

问题描述 投票:28回答:7

现在我有一个名为带有多个报告的报告的项目。在解决方案资源管理器中看起来像这样:

Shared Data Sources
 -- DEV
Reports
 -- Report1
 -- Report2
 -- Report3

我想让它看起来像这样,并且当我点击部署时,具有相同的结构转移到报表管理器网站。

Shared Data Sources
 -- DEV
Folder A
 -- Report1
Folder B
 -- Report2
 -- Report3

有人知道怎么做吗?

sql visual-studio visual-studio-2008 reporting-services ssrs-2008
7个回答
28
投票

我正在使用SSRS 2005 - 我认为这部分工作方式与2008年相同。

据我所知,您不能在项目中拥有文件夹,但您可以在解决方案中拥有多个项目。

要创建新文件夹,请在解决方案资源管理器中右键单击解决方案,然后选择添加>新建项目...

键入新的项目名称(例如MyProject),然后从Visual Studio安装的模板列表中选择Report Server Project。单击“确定”,新项目应显示在“解决方案资源管理器”中项目列表的末尾。

(还有其他方法可以设置一个新的Reports项目,但这似乎是最快的。)

如果现在右键单击新的“报表项目”并选择“属性”,则可以看到TargetReportFolder,它将默认为您的新项目名称(例如,MyProject)。从SSRS部署报告时,它们将部署到此位置。 (如果您愿意,您可以更改位置 - 我发现通过使用项目名称可以更轻松地跟踪发生的情况。)

您需要将要在每个项目中使用的任何数据源复制到使用该数据源的所有项目的数据源文件夹中。默认情况下,OverwriteDataSources设置为false,因此在部署新报表时,它将使用已部署到Report Manager环境的数据源。

因此,要获取要查看的报表管理器结构:

  • 创建名为文件夹A和文件夹B的项目
  • 将Report1移动/复制到项目文件夹A中的Reports文件夹中
  • 将Report2和Report3移动/复制到项目文件夹B中的Reports文件夹中
  • 将数据源DEV移动/复制到项目文件夹A和文件夹B中的共享数据源文件夹中
  • 部署报告

不要忘记检查您对源代码管理的更改。


4
投票

它的方式类似于其他海报,我有一个多个项目的解决方案(每个项目都被命名并放入我希望它部署的相同文件夹名称)。

然后我在RS中编写了一个脚本: - 在我的例子中,创建所有报告使用的单个数据源 - 循环解决方案文件夹中的所有目录 - 在RS服务器上创建相同的文件夹名称 - 将此目录中的所有文件部署到RS服务器上的该文件夹 - 在每个报表上使用rs.SetItemDataSources将其重定向到我的主数据源

这基本上就是它。

注意事项是你有时会上传你不想上传的文件(比如已删除的.RDLs报告仍然存在)。但你可以在周围编写脚本,或者只是在RS中将其吹掉并重新上传。

这样做,我有一个脚本但可以在许多不同的父文件夹下部署一个结构,每个父文件夹都有不同的数据源,并且所有报告都在一个文件夹中绘制来自不同数据库的数据。这让我运行1x RS实例,但有开发,测试,培训等领域。


3
投票

我们使用SSRS中的链接报告进行管理。我们将报表部署到报表分发文件夹,对用户隐藏,然后在Reporting Services Web UI中创建链接报表(每个报表的“管理”部分中的选项)。您可以在任何文件夹中创建链接报告,这样您就可以构建所需的文件夹结构并将链接的报告放在适当的位置。

您可以将所有内容部署到VS的单个分发文件夹,并更新链接的报告。这解决了子报告和DataSource问题,因为所有报告都来自'distrib文件夹。显然有很多预先设置,创建一个新环境是一件麻烦事 - 它很少发生,我们没有尝试过自动化。


2
投票

我在SSRS2008中有一个BI项目,大约有80个报告 - 这是我将报告部署到文件夹的经验。这是我第一次涉足Reporting Services的开发,所以如果我出去吃午饭,任何大师都请打我。

最初,我使用源代码管理中的文件夹按部门分隔较小的报表,以帮助我保持井井有条。我最初开发报告时工作正常,但是第一次将项目部署到报表服务器时,结构完全变平了 - 所以我放弃了使用文件夹结构来组织。

据我所知,在SSRS中创建文件夹结构的唯一方法是使用Report Manager UI并在Report Server上创建文件夹。我假设您将在那里修改Visual Studio中的报表属性中的路径。您或者必须在首次设置报告时定义路径。我没有测试过这个YMMV。

总而言之:无法在BIDS中创建文件夹并使用IDE将报表部署到文件夹中。我希望在2008R2中解决这个问题,因为在解决方案资源管理器中将所有这些报告放在一起会让人感到痛苦。


1
投票

您可以将文件放在磁盘/源控件上的单独文件夹中,但是它们列表是平的,并在Visual Studio中按字母顺序排序。

我无法看到用于管理上述内容的用户界面,但如果您编辑项目文件(VS解决方案的单个项目文件),则可以指定每个报告文件的FullPath XML标记。


0
投票

我创建了一个报表服务器类型项目,没有选择添加另一个项目。相反,我编辑了SLN文件并添加了我的其他项目。然后,SLN文件的第一部分最终看起来像是将子文件夹中的2个项目访问到SLN文件

Microsoft Visual Studio解决方案文件,格式版本10.00

Visual Studio 2008

项目(“{F14B399A-7131-4C87-9E4B-1186C45EF12D}”)=“RestOfWorld”,“RestOfWorld \ RestOfWorld.rptproj”,“{D24D5EEA-88A4-4375-802B-7CA877202787}”EndProject

项目(“{F14B399A-7131-4C87-9E4B-1186C45EF12D}”)=“NorthAmerica”,“NorthAmerica \ NorthAmerica.rptproj”,“{C64A3BDC-F526-4037-AD48-31799BECC3AD}”EndProject Global


0
投票

@skiwii是正确的,使用VS 2013社区版和SQL数据工具 - 商业智能,您在VS解决方案资源管理器中看不到树顶部的解决方案节点,并且您必须破解.SLN文件以公开它。

  1. 从源树中所需的主.sln和一个.rptproj文件开始。称之为'父母'。
  2. 在新的子文件夹中创建一个全新的空Report Services .rptproj文件(在包含.sln的文件夹下)。例如,项目是'child1'。 VS还会在该文件夹中为您提供child1.sln文件。
  3. 关闭所有VS窗口。
  4. 用你最喜欢的文本编辑器(teco!) 打开child1.sln。 复制顶部的2行;项目......和EndProject 打开parent1.sln 将这些行粘贴到现有的Project / EndProject下。
  5. 现在在VS中打开parent1.sln。您将神奇地看到解决方案资源管理器窗口顶部的解决方案节点。

如果你很幸运,你还会看到第二个名为child1的项目。但如果没有,没问题。您可以右键单击解决方案并添加Report Services类型的新项目。

© www.soinside.com 2019 - 2024. All rights reserved.