将 Quartz.NET 调度框架与 Stimulsoft Reports 结合使用

今天,我们将深入探讨软件开发的一种现代趋势 - 流程自动化,这自然是 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基本原则是,用简单常规的方法创建报表,将不同的技术应用于应用程序。

Stimulsoft Reports官方正版下载icon-default.png?t=N7T8https://www.evget.com/product/2398/download   

什么是 Quartz.NET?

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 文件,并将包含该文件的一封信发送给指定的人。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stimulsoft Reports.Web ——适用于Web的报表生成器。Stimulsoft Reports.Web是一个报表工具,其设计的目的在于通过Web浏览器创建和渲染报表。您可以创建报表,显示报表,打印报表,导出报表Stimulsoft Reports.Web将提供完整的报表创建周期,从报表模板开始到在浏览器中显示报表为止。这一过程可在web浏览器未被关闭时完成。 Stimulsoft Reports.Web是第一款可以让您直接在Web中编辑报表报表工具。在您的客户端的机器里不需要安装.Net框架、ActiveX控件或其他特殊 插件。所有你需要的只是一个带有Flash Player 9的Web浏览器。 这是首次一个报表生成器能让您在web浏览器的窗口中编辑您的报表。唯一的需求是一个web浏览器和Flash Player 9。Stimulsoft Reports.Web能具有最高程度、带状界面、可视化控件开发程序、剪贴板、点击查看大图表格编辑、缩放以及其他多种功能,可以方便快捷的进行报表编辑。 您可以在浏览器的窗口中查看报表。您可以打印一份报表。您可以导出一份报表,其导出格式超过了20种:PDF、XPS、Excel、Word、HTML、 RTF以及XML等格式。这一切能在基于Ajax的报表Web浏览器中完成,也能直接通过Web应用程序中的一段代码来完成。 Stimulsoft Reports.Web支持多种类型的.Net数据,DataSet、DataTable、DataView以及DataRelation等。所有数据输出都要考虑在 DataSet中的数据的分级结构。所有的数据都是典型数据。其次,另外还支持Ado.Net不同类型的商业对象。您也可以直接从MS SQL、Oracle、ODBC、OleDB、FirebirdSQL、PostgeSQL、SQLCE与SQLite等数据库中获取数据。获取XML文 件的数据也没有问题。除此之外,还可以进行分类、过滤、分组、合并以及汇总。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值