SSRS 使用报表目录报表超链接到报表管理器上的其他报表
SSRS Using a report catalog report to hyperlink to other reports on report manager
我有一个查询使用 ReportServer 数据库来检索有关服务器上可用报告的信息。我创建了一个带有标准 table(无分组)的 "report catalog",其中列出了所有单独的报告、它们的文件夹以及每个报告 运行 的次数。有没有一种方法可以超链接每个报告名称以将用户带到这些报告?
如果有帮助,请参考以下查询:
SELECT
c.Name,
REPLACE(c.[Path], c.Name, '') as Path,
COUNT(*) as TimesRun
FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) el
INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) c ON el.ReportID = c.ItemID
WHERE c.Type = 2
GROUP BY c.Name,c.[Path]
order by TimesRun desc
我通过将一些 URL 文本(如 "http://")与现有列连接起来创建了 "ReportURL" 列。 URL 也用“%20”替换了所有空格,所以我在查询中做了同样的事情。在我的 SSRS table 中,在 文本框属性 上,我将操作设置为 Go to URL 并使用表达式 =Fields!ReportURL.Value 它似乎可以解决问题。
SELECT
c.Name,
REPLACE(c.[Path], c.Name, '') as Path,
REPLACE(('http://'+
LEFT(el.InstanceName, CHARINDEX('\', el.InstanceName, CHARINDEX('\', el.InstanceName)) - 1)+
'/reports/report'+
c.Path),' ','%20')
as ReportURL,
COUNT(*) as TimesRun
FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) el
INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) c ON el.ReportID = c.ItemID
WHERE c.Type = 2
GROUP BY c.Name,c.[Path], el.InstanceName
order by TimesRun desc
我有一个查询使用 ReportServer 数据库来检索有关服务器上可用报告的信息。我创建了一个带有标准 table(无分组)的 "report catalog",其中列出了所有单独的报告、它们的文件夹以及每个报告 运行 的次数。有没有一种方法可以超链接每个报告名称以将用户带到这些报告?
如果有帮助,请参考以下查询:
SELECT
c.Name,
REPLACE(c.[Path], c.Name, '') as Path,
COUNT(*) as TimesRun
FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) el
INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) c ON el.ReportID = c.ItemID
WHERE c.Type = 2
GROUP BY c.Name,c.[Path]
order by TimesRun desc
我通过将一些 URL 文本(如 "http://")与现有列连接起来创建了 "ReportURL" 列。 URL 也用“%20”替换了所有空格,所以我在查询中做了同样的事情。在我的 SSRS table 中,在 文本框属性 上,我将操作设置为 Go to URL 并使用表达式 =Fields!ReportURL.Value 它似乎可以解决问题。
SELECT
c.Name,
REPLACE(c.[Path], c.Name, '') as Path,
REPLACE(('http://'+
LEFT(el.InstanceName, CHARINDEX('\', el.InstanceName, CHARINDEX('\', el.InstanceName)) - 1)+
'/reports/report'+
c.Path),' ','%20')
as ReportURL,
COUNT(*) as TimesRun
FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) el
INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) c ON el.ReportID = c.ItemID
WHERE c.Type = 2
GROUP BY c.Name,c.[Path], el.InstanceName
order by TimesRun desc