簡體   English   中英

SSRS自動從列表創建報告

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM