SSRS加外壳有关问题,怎么获取发布到SSRS服务器下的报表的路径
SSRS加外壳问题,如何获取发布到SSRS服务器上的报表的路径?
如题,如何获取发布到SSRS服务器上的报表的路径?想自已做一个登录界面,登录后,把报表名称重新组织一一个树上,点树的节点,对应一个SSRS上报表路径,如何获取到已发布报表的路径?
------解决方案--------------------
讲个大体思路,如果有对报表管理器的database 有访问权限的话,那么在报表管理器的database 中找个到表
[ReportServer$DBINstanceName].[dbo].[Catalog],跟据这个表的数据parentID,path等字段内容生成上下层的树结构。 至于路径那么就需要catalog中的path字段数据和报表管理器的地址来拼接。 也就是一些字符串替换拼接的工作。
比如
http://localhost:8080/Reports/Pages/Folder.aspx?+拼凑好报表地址。
如题,如何获取发布到SSRS服务器上的报表的路径?想自已做一个登录界面,登录后,把报表名称重新组织一一个树上,点树的节点,对应一个SSRS上报表路径,如何获取到已发布报表的路径?
------解决方案--------------------
讲个大体思路,如果有对报表管理器的database 有访问权限的话,那么在报表管理器的database 中找个到表
[ReportServer$DBINstanceName].[dbo].[Catalog],跟据这个表的数据parentID,path等字段内容生成上下层的树结构。 至于路径那么就需要catalog中的path字段数据和报表管理器的地址来拼接。 也就是一些字符串替换拼接的工作。
比如
http://localhost:8080/Reports/Pages/Folder.aspx?+拼凑好报表地址。
- SQL code
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>");
sb.Append("<a href='Report/" + item.Name + "/" + "001' target='_blank'>" + item.Name + "</a>");
sb.Append("</li>");
}
}
this.myReportList.Text = sb.ToString();
自己参考吧,调用的webservice