是否有自定义报表订阅的排序方式?我们有一个特定报告的订阅,它们都遵循描述的某个命名方案。但是,订阅不会一起显示,因为订阅似乎没有排序。
我试图执行以下操作:
如果我没有弄错的话,必须在它使用的客户端jQuery API上进行排序,但我还没有找到一种方法来强制它进行排序。
这是SQL Server 2016 Reporting Services(SSRS 2016)。
答案 0 :(得分:0)
我认为您不能/应该自定义SSRS的管理报告页面,但如果您想要一个订阅列表以及对其进行过滤和排序的能力,那么此查询可能会有所帮助。它是互联网上发现的其他几个查询的集合。
select
c.Path as [ReportPath],
us.UserName as [SubscriptionOwner],
uc.UserName as [ReportModifiedBy],
s.LastStatus as [LastStatus],
s.LastRunTime as [LastRun],
Convert(XML,[ExtensionSettings]).value('(//ParameterValue/Value[../Name="TO"])[1]','nvarchar(1024)') as [To],
Convert(XML,[ExtensionSettings]).value('(//ParameterValue/Value[../Name="CC"])[1]','nvarchar(1024)') as [CC],
Convert(XML,[ExtensionSettings]).value('(//ParameterValue/Value[../Name="RenderFormat"])[1]','nvarchar(1024)') as [Render Format],
Convert(XML,[ExtensionSettings]).value('(//ParameterValue/Value[../Name="Subject"])[1]','nvarchar(1024)') as [Subject],
TARDIS.dbo.getSubscriptionParameters (s.SubscriptionID) as [parameters]
from ReportServer.dbo.Subscriptions s
join ReportServer.dbo.Catalog c on c.ItemID = s.Report_OID
join ReportServer.dbo.ReportSchedule rs on rs.SubscriptionID = s.SubscriptionID
join ReportServer.dbo.Users uc on uc.UserID = c.ModifiedByID
join ReportServer.dbo.Users us on us.UserID = s.OwnerId
join msdb.dbo.sysjobs j on j.name = CONVERT(nvarchar(1024),rs.ScheduleId)
order by
1, 2
您还可以通过PowerShell获取订阅列表,如下所示:
$server = 'http://myserver.mycompany.com/reportserver'
$site = '/'
$rs2010 = New-WebServiceProxy -Uri "$server/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential
$subscriptions = $rs2010.ListSubscriptions($site)
$subscriptions | Sort-Object -property path,owner,SubscriptionID -Unique | select Path, Owner, SubscriptionID