首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SSRS加外壳有关问题,怎么获取发布到SSRS服务器下的报表的路径

2012-11-06 
SSRS加外壳问题,如何获取发布到SSRS服务器上的报表的路径?如题,如何获取发布到SSRS服务器上的报表的路径?

SSRS加外壳问题,如何获取发布到SSRS服务器上的报表的路径?
如题,如何获取发布到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

热点排行