SSRS加外壳问题,如何获取发布到SSRS服务器上的报表的路径?
如题,如何获取发布到SSRS服务器上的报表的路径?想自已做一个登录界面,登录后,把报表名称重新组织一一个树上,点树的节点,对应一个SSRS上报表路径,如何获取到已发布报表的路径?
------解决方案--------------------讲个大体思路,如果有对报表管理器的database 有访问权限的话,那么在报表管理器的database 中找个到表
[ReportServer$DBINstanceName].[dbo].[Catalog],跟据这个表的数据parentID,path等字段内容生成上下层的树结构。 至于路径那么就需要catalog中的path字段数据和报表管理器的地址来拼接。 也就是一些字符串替换拼接的工作。
比如
http://localhost:8080/Reports/Pages/Folder.aspx?+拼凑好报表地址。
SELECT TOP 1000 [ItemID]
,[Path]
,[Name]
,[ParentID]
,[Type]
,[Content]
,[Intermediate]
,[SnapshotDataID]
,[LinkSourceID]
,[Property]
,[Description]
,[Hidden]
,[CreatedByID]
,[CreationDate]
,[ModifiedByID]
,[ModifiedDate]
,[MimeType]
,[SnapshotLimit]
,[Parameter]
,[PolicyID]
,[PolicyRoot]
,[ExecutionFlag]
,[ExecutionTime]
,[SubType]
,[ComponentID]
FROM [ReportServer$DBINstanceName].[dbo].[Catalog]
------解决方案-------------------- ////报表服务器webservice操作类
ReportingService2010 _rs = new ReportingService2010(); //负责管理服务器的接口
_rs.Credentials = new System.Net.NetworkCredential(reportViewerUserName, reportViewerPassword, reportViewerDomain);
_rs.Url = String.Format("{0}/{1}", Common.ReadConfig.ReportServerUrl(), Common.EnumClass.ReportService2010.ToString() + ".asmx");
CatalogItem[] items;
items = _rs.ListChildren(Common.CommonClass.GetReportFileFolderPath(Common.ReadConfig.ReportProjectName()), true);
foreach (var item in items)
{
if (item.TypeName == "Report")
{
sb.Append("<li>");
&