Недавно мы опубликовали статью об использовании библиотеки Quartz.NET с нашими отчетами в контексте автоматизации задач, связанных с отчетностью. Сегодня мы продолжим тему и расскажем о работе наших отчетов с планировщиком Node Schedule.

Что такое Node Schedule?

Node Schedule – это гибкий планировщик задач для Node.js, основанный на синтаксисе cron. Планировщик осуществляет выполнение задач с необязательными правилами повторения на основе времени, а не интервалов. Node Schedule используется, например, для отправки электронных писем с отчетами, регулярного обслуживания базы данных или выполнения задач периодического анализа данных. Подробнее о планировщике - здесь.

Создание проекта

Сначала мы создаём проект под управлением платформы JavaScript. Соответственно, использовать будем JS-генератор отчетов - широкий набор компонентов отчетности, разработанный на чистом JavaScript. Его легко интегрировать в пользовательское приложение, установив соответствующий npm-пакет.

Установка пакетов

Для работы с отчетами нам понадобится пакет = stimulsoft-reports-js, а для дашбордов - stimulsoft-dashboards-js.

Кроме этого, для добавления и возможности использования планировщика, необходимо установить пакет Node Schedule.

Определение задач и настройка расписания

Переходим непосредственно к основному вопросу нашей статьи. Итак, мы взяли за основу пример экспорта отчета в PDF. Далее устанавливаем выполнение экспорта на 10:00 ежедневно:
// Node Schedule module
var schedule = require("node-schedule");
console.log("Node Schedule loaded");

// Stimulsoft Reports module
var Stimulsoft = require("stimulsoft-reports-js");
console.log("Stimulsoft Reports loaded");

// Creating new report
var report = new Stimulsoft.Report.StiReport();
console.log("New report created");

// Loading report template
report.loadFile("SimpleList.mrt");
console.log("Report template loaded");

// Run the task every day at 10:00
var rule = new schedule.RecurrenceRule();
rule.hour = 10;
rule.minute = 0;
console.log("Rule for the task created");

// Scheduling the task
schedule.scheduleJob(rule, function () {
  // Renreding report
  report.renderAsync(() => {
    console.log("Report rendered. Pages count: ", report.renderedPages.count);

    // Export to PDF
    report.exportDocumentAsync((pdfData) => {
      // Converting Array into buffer
      var buffer = Buffer.from(pdfData);

      // File System module
      var fs = require("fs");

      // Saving string with rendered report in PDF into a file
      fs.writeFileSync("./SimpleList.pdf", buffer);
      console.log("Rendered report saved into PDF-file.");
    }, Stimulsoft.Report.StiExportFormat.Pdf);
  });
});
Таким образом, сегодня мы на примере показали автоматизацию процесса, и теперь каждый день в 10:00 отчет будет преобразовываться в PDF-файл и сохраняться на диск в этом формате.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.