SSRS Использование отчета каталога отчетов для гиперссылки на другие отчеты в диспетчере отчетов - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть запрос, который использует базу данных ReportServer для получения информации о доступных отчетах на сервере. Я создал «каталог отчетов» со стандартной таблицей (без группировки), в которой перечислены все отдельные отчеты, их папки и количество выполнений каждого отчета. Есть ли способ сделать гиперссылку на каждое имя отчета, чтобы привести пользователей к этим отчетам?

Вот запрос, если он помогает:

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

1 Ответ

0 голосов
/ 05 февраля 2020

Я создал столбец «ReportURL», объединив некоторый текст URL (например, «http: //») с существующими столбцами. URL также заменил все пробелы на «% 20», поэтому я сделал то же самое в запросе. В моей таблице SSRS в свойствах текстового поля я установил действие Go для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...