[英]SSRS automatically creates reports from list
我們有獨特的派對鑰匙清單(約20000個),並且每周我們僅為具有更新的特定派對鑰匙創建報告。 那些聚會密鑰存儲在定期查看列表中。
定期審核列表=具有更新的聚會密鑰
因此,例如,定期審查列表中的第一周180個聚會密鑰第二周300個聚會密鑰第三周30個聚會密鑰。
因此,現在我有了SSRS報告,該報告具有名為Party key的參數,通過手動輸入Party Key,它將生成報告。
但我想自動化該過程,並希望自動為特定的聚會密鑰生成報告,該聚會密鑰具有更新並以PDF格式存儲在共享文件夾中。
如果本周他們在審核列表中有40個派對鑰匙,我想為這些鑰匙創建40個SSRS報告。
Microsoft Visual Studio Enterprise 2015版本14.0.25420.01更新3 Microsoft .NET Framework版本4.7.02053
SQL Server數據工具14.0.61021.0 Microsoft SQL Server數據工具
SQL Server報告服務13.0.1701.8 Microsoft SQL Server報告服務設計器版本13.0.1701.8
如果您有權訪問報告數據庫,則可以輕松地將訂閱參數更新為列表中的新鍵,並運行發送該訂閱的作業。 基本上,您可以執行一些任務,以獲取最后處理的密鑰,查找所有新密鑰,更新訂閱,為每個新密鑰觸發訂閱作業。
這是一些查詢,您可以在其中找到訂閱和職位名稱之間的鏈接:
SELECT
s.subscriptionid,
ISNULL(c_p.Name, c.Name) AS Report,
msdb.dbo.sysjobs.name AS SQLAgentName,
CASE WHEN c.Type = 4 THEN c.Name + ' [' + s.Description + ']' ELSE s.Description end AS Description,
MAX(s.LastRunTime) AS LastRun, s.LastStatus,
s.DeliveryExtension, c.Description AS HowOften, msdb.dbo.sysjobs.job_id, msdb.dbo.sysjobs.enabled
FROM dbo.Catalog AS c
LEFT JOIN dbo.Catalog AS c_p
ON c_p.ItemID = c.LinkSourceID AND c.Type = 4
INNER JOIN dbo.Subscriptions AS s
ON s.Report_OID = c.ItemID
INNER JOIN dbo.ReportSchedule
ON c.ItemID = dbo.ReportSchedule.ReportID
AND s.SubscriptionID = dbo.ReportSchedule.SubscriptionID
INNER JOIN msdb.dbo.sysjobs
ON CAST(dbo.ReportSchedule.ScheduleID AS varchar(100))
= CAST(msdb.dbo.sysjobs.name AS varchar(100))
where msdb.dbo.sysjobs.enabled = 1
GROUP BY s.subscriptionid, c_p.Name, c.type, c.Name, msdb.dbo.sysjobs.name, s.Description, s.LastStatus, s.DeliveryExtension, c.Description, msdb.dbo.sysjobs.job_id, msdb.dbo.sysjobs.enabled
修改dbo.Subscription參數並調用exec msdb.dbo.sp_start_job @job_name = @JobName;
完成您的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.