我创建了一个报告,其中显示了报告服务器上的所有事件订阅,并且当前有一个按名称显示所有报告的表格,并且我还包含了 3 列,其中一列显示了启用订阅的代码,第一个显示了用于禁用订阅的代码,最后一个显示了用于立即运行订阅的代码。
我已经考虑过制作这些列按钮/可点击文本,以便用户只需点击按钮/文本即可启用/禁用/运行订阅,这样我就不会出现单点故障。我还没有找到任何可以让我做到这一点的东西。
有谁知道这是否可能,并且可以提供一些关于如何做到这一点的指导?
以下是报告的 SQL:
SELECT
cat.Name,
cat.Path,
sub.Description,
sch.ScheduleID AS AgentJobID,
sch.LastRunTime,
CASE sch.RecurrenceType
WHEN 1 THEN 'Once'
WHEN 2 THEN 'Hourly'
WHEN 4 THEN 'Daily/Weekly'
WHEN 5 THEN 'Monthly'
END AS ScheduleFrequency,
'EXEC msdb.dbo.sp_start_job N''' + CAST(sch.ScheduleID as nvarchar(36)) + ''';' AS StartJob,
'EXEC msdb.dbo.sp_update_job @job_name = N''' + CAST(sch.ScheduleID as nvarchar(36)) + ''', @enabled = 1 ;' AS EnableJob,
'EXEC msdb.dbo.sp_update_job @job_name = N''' + CAST(sch.ScheduleID as nvarchar(36)) + ''', @enabled = 0 ;' AS DisableJob
FROM
ReportServer.dbo.Schedule sch
INNER JOIN
ReportServer.dbo.ReportSchedule rsch
ON sch.ScheduleID = rsch.ScheduleID
INNER JOIN
ReportServer.dbo.Catalog cat
ON rsch.ReportID = cat.ItemID
INNER JOIN
ReportServer.dbo.Subscriptions sub
ON rsch.SubscriptionID = sub.SubscriptionID
最佳答案
我目前正在尝试自己做类似的事情,希望这可以在某种程度上帮助您。
目前,我设法实现的唯一解决方法是让图像或其他对象具有“onclick”事件,该事件会执行“转到报告”操作。然后,我在此子报表中拥有一个数据集,该数据集使用根据需要从父报表传递到其中的参数来执行存储过程。下面的一些图片可能有助于阐明我是如何做到的:
不幸的是,它可能有点笨拙,因为它会打开一个子报告,如果用户需要对多个结果进行操作,则必须导航回来。
关于reporting-services - 使用 SSRS 中的按钮执行存储过程代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72461118/