翻譯|行業資訊|編輯:胡濤|2024-01-30 10:34:33.457|閱讀 96 次
概述:在本文中,我們將討論如何使用第三方調度程序自動執行與 Web 項目中的報告相關的任務。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
今天,我們將深入探討軟件開發的一種現代趨勢 - 流程自動化,這自然是 Stimulsoft 產品中報表處理的一部分。在本文中,我們將討論如何使用第三方調度程序自動執行與 Web 項目中的報告相關的任務。作為對報告執行操作的示例,我們考慮將其轉換為 PDF 文件并通過電子郵件發送結果,利用 Quartz.NET 作為自動化工具。讓我們從它開始吧。
Stimulsoft Ultimate (原Stimulsoft Reports.Ultimate)是用于創建報表和儀表板的通用工具集。該產品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他環境的完整工具集。無需比較產品功能,Stimulsoft Ultimate包含了所有內容!
Stimulsoft Reports.Ultimate不僅擁有強大的報表導出系統,而且還支持多種報表導出格式,擁有簡單且強大的報表引擎。Stimulsoft Reports.Ultimate基本原則是,用簡單常規的方法創建報表,將不同的技術應用于應用程序。
Quartz.NET是一個用于調度各種任務的開源框架。它可以集成到.NET 平臺上創建的任何應用程序中,范圍從最小的服務到大型企業系統。該框架基于兩個主要概念:在后臺按計劃運行的任務和負責根據觸發器執行任務的調度程序。
首先,讓我們創建一個在.NET 6 平臺上運行的項目。在本例中,我們將利用.NET Core 報告工具,它是一個功能齊全、通用且跨平臺的工具,用于創建、處理、構建、顯示和轉換報告和儀表板。通過安裝適當的 NuGet 包,可以輕松將其集成到自定義應用程序中。
因此,由于此示例不會使用可視化組件(查看器和報表設計器),因此要導出報表,安裝 NuGet 包 - Stimulsoft.Reports.Engine.NetCore就足夠了。
此外,要添加和使用調度程序,您必須安裝Quartz 包。
成功安裝軟件包后,項目設置就完成了,您可以繼續定義任務和計劃。
筆記!
要使用儀表板,您需要安裝Stimulsoft.Dashboards.Web.NetCore包。
讓我們創建一個新類StiReportJob.cs,它應包含 IJob 接口的實現以及Execute()方法的定義。我們還將添加兩種方法:一種用于創建(或加載)報告,另一種用于導出報告并通過電子郵件發送。因此,Execute()方法將調用報表創建方法,然后調用異步電子郵件發送方法。以下是StiReportJob.cs類的代碼。
StiReportsJob.cs
public class StiReportJob : IJob { public async Task Execute(IJobExecutionContext context) { var report = CreateReport(); await SendEmail(report); } private StiReport CreateReport() { var report = new StiReport(); // report.Load(); return report; } private async Task SendEmail(StiReport report) { using (MailMessage mail = new MailMessage("admin@gmail.com", "user@gmail.com")) { mail.Subject = "New Report"; mail.Body = "Body Info"; using var stream = new MemoryStream(); report.ExportDocument(StiExportFormat.Pdf, stream); stream.Position = 0; var attachment = new Attachment(stream, "report.pdf", "application/pdf"); mail.Attachments.Add(attachment); using var client = new SmtpClient { EnableSsl = true, Host = "host.com", Port = 25, }; await client.SendMailAsync(mail); } } }
盡管我們已經考慮了使用報表的基本情況,但這里可以實現更復雜和創造性的任務
讓我們創建另一個新類 - StiJobScheduler.cs,我們將在其中初始化調度程序并向其添加觸發器。在本例中,觸發器是啟動調度程序的條件。在下面的示例中,觸發器設置為每天上午 10:00 到中午之間的時間。然而,觸發器可能有很多種,從重復的計劃到每分鐘觸發調度程序的無限循環。以下是StiJobScheduler.cs類的代碼。
StiJobScheduler.cs public class StiJobScheduler { public static async void Start() { var scheduler = await StdSchedulerFactory.GetDefaultScheduler(); await scheduler.Start(); var job = JobBuilder.Create<StiReportJob>().Build(); var trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithCronSchedule($"0 0 10 ? * *")//At 10:00 AM .Build(); await scheduler.ScheduleJob(job, trigger); } }
之后,在主應用程序類中,在本例中為Program.cs,需要調用StiJobScheduler.cs類的靜態Start()方法。程序.cs
StiJobScheduler.Start();
因此,今天我們演示了一個自動化流程的示例,現在,每天 10:00,報告將被轉換為 PDF 文件,并將包含該文件的一封信發送給指定的人。
想要了解Stimulsoft Reports 報價信息的朋友,歡迎咨詢。
加入官方社群 740060302,歡迎相互交流
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn