В этой статье мы рассмотрим интеграцию продуктов Stimulsoft в .NET MAUI проекты. Фреймворк .NET Multi-platform App UI (в дальнейшем будет использоваться сокращение .NET MAUI) предоставляет возможность разрабатывать кроссплатформенные приложения для таких операционных систем как Windows, macOS, iOS и Android. Специальных компонентов отчетности Stimulsoft для MAUI не существует, однако для встраивания системы отчетности можно воспользоваться продуктом Reports.BLAZOR, а при необходимости интегрирования систем аналитики - продуктом Dashboards.BLAZOR.
Важно!
Генератор отчетов для BLAZOR позволяет создавать отчеты любой сложности - от стандартных счетов-фактур до комплексных документов с параметрами, интерактивной сортировкой и детализацией. Однако, нативные визуальные компоненты, вьювер и дизайнер отчетов, для фреймворка .NET MAUI отсутствуют, а компоненты из продуктов Blazor работают не на всех указанных выше платформах. Это обусловлено некоторыми особенностями самого фреймворка .NET MAUI и технологией, используемой при разработке самих компонентов. В то же время, отчет может быть сгенерирован и отображен как результат его экспорта - например, как PDF файл или HTML текст. Также доступна возможность предоставить общий доступ к результатам экспорта отчета (sharing). Для дальнейшей работы с примером должен быть установлен фреймворк .NET Multi-platform App UI development. В установщике Visual Studio указанный фреймворк располагается в категории Desktop & Mobile.
NavMenu.razor
NavMenu.razor
Таким образом, при разработке приложений .NET Multi-platform App UI можно использовать системы отчетности и аналитики данных без использования вьювера и дизайнера отчетов. Более подробно об использовании Blazor Stimulsoft можно узнать в документации. Активация продукта Reports.BLAZOR доступна по подписке Reports.WEB, а Dashboards.BLAZOR - по подписке Dashboards.WEB. Также, в онлайн-магазине можно приобрести комплексное решение для систем отчетности и аналитики под различные платформы - подписку Stimulsoft Ultimate.
Генератор отчетов для BLAZOR позволяет создавать отчеты любой сложности - от стандартных счетов-фактур до комплексных документов с параметрами, интерактивной сортировкой и детализацией. Однако, нативные визуальные компоненты, вьювер и дизайнер отчетов, для фреймворка .NET MAUI отсутствуют, а компоненты из продуктов Blazor работают не на всех указанных выше платформах. Это обусловлено некоторыми особенностями самого фреймворка .NET MAUI и технологией, используемой при разработке самих компонентов. В то же время, отчет может быть сгенерирован и отображен как результат его экспорта - например, как PDF файл или HTML текст. Также доступна возможность предоставить общий доступ к результатам экспорта отчета (sharing). Для дальнейшей работы с примером должен быть установлен фреймворк .NET Multi-platform App UI development. В установщике Visual Studio указанный фреймворк располагается в категории Desktop & Mobile.
ШАГ 1
Для начала следует создать новый проект .NET MAUI Blazor Hybrid App. В качестве целевой платформы оптимально выбрать .NET 8, так как данный фреймворк помечен как LTS (Long-Term Support), то есть имеет увеличенный срок жизни и поддержки. Фреймворк .NET 9 также поддерживается нашими продуктами.ШАГ 2
После создания демонстрационного .NET MAUI проекта мы будем интегрировать функции для работы с отчетами Stimulsoft. Во-первых, в этот демо-проект нужно установить NuGet-пакет для системы отчетности - Stimulsoft.Reports.Blazor, или, если требуется также аналитика, Stimulsoft.Dashboards.Blazor.ШАГ 3
Команды экспорта отчета будут располагаться на отдельной странице в проекте. Её мы добавим в шаге 5, а пока модифицируем навигационное меню, добавив ссылку. Для этого в файле Components/Layout/NavMenu.razor вставим следующий блок кода::NavMenu.razor
...
<div class="nav-item px-3">
<NavLink class="nav-link" href="/export">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span>Export Report
</NavLink>
</div>
...
ШАГ 4
Необходимо добавить файлы отчетов в проекты. Это могут быть файлы шаблонов отчетов или дашбордов (*.mrt, *.mrz, *.mrx), а также файлы построенных отчетов (*.mdc, *.mdz, *.mdx). Например, добавим шаблон отчета SimpleList.mrt в папку Resources/raw.ШАГ 5
Теперь следует добавить страницу с экспортами отчетов. Для этого в папке Export.razor добавим новый файл Components/Pages. В этом примере будут добавлены три кнопки::- кнопка Export PDF. Вызывает экспорт отчета в PDF-файл и открытие этого файла зарегистрированным в ОС средством просмотра для PDF-файлов.
- кнопка Export HTML. Вызывает экспорт отчета в HTML-файл и отображает страницы отчета сразу в приложении.
- кнопка Share PDF. Вызывает экспорт отчета в PDF-файл и вызывает меню "Поделиться" для используемой ОС.
NavMenu.razor
@page "/export"
@using Stimulsoft.Report;
@using Stimulsoft.Report.Blazor;
@using Stimulsoft.Report.Web;
@using Stimulsoft.Report.Export;
@using System.Text;
<button @onclick="@ExportPdf">Export PDF</button>
<button @onclick="@ExportHtml">Export HTML</button>
<button @onclick="@SharePdf">Share PDF</button>
<br /><br />
<div>@((MarkupString)HtmlContent)</div>
@code {
private StiReport Report = new StiReport();
private string HtmlContent = string.Empty;
protected override async Task OnInitializedAsync()
{
var reportStream = await FileSystem.OpenAppPackageFileAsync("SimpleList.mrt");
Report.Load(reportStream);
}
private void ShowHtmlReport()
{
var service = new StiHtmlExportService();
service.RenderAsDocument = false;
var settings = new StiHtmlExportSettings();
using (var stream = new MemoryStream())
{
service.ExportHtml(Report, stream, settings);
var buffer = stream.ToArray();
HtmlContent = Encoding.UTF8.GetString(buffer);
}
}
private async Task ExportDocument(StiExportFormat format, string fileName, bool shareFile = false)
{
if (Report == null) return;
await Task.Run(() => Report.Render());
if (format == StiExportFormat.Html)
{
ShowHtmlReport();
}
else
{
var filePath = Path.Combine(FileSystem.Current.CacheDirectory, fileName);
using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
Report.ExportDocument(StiExportFormat.Pdf, fileStream);
}
if (shareFile)
{
var file = new ShareFile(filePath);
await Share.Default.RequestAsync(new ShareFileRequest(fileName, file));
}
else
{
var file = new ReadOnlyFile(filePath);
await Launcher.OpenAsync(new OpenFileRequest(filePath, file));
}
}
}
private Task ExportPdf() => ExportDocument(StiExportFormat.Pdf, "Simple List.pdf");
private Task ExportHtml() => ExportDocument(StiExportFormat.Html, "Simple List.html");
private Task SharePdf() => ExportDocument(StiExportFormat.Pdf, "Simple List.pdf", true);
}
![Integrating Stimulsoft tools into .NET MAUI](/images/articles/2025/integrating-stimulsoft-tools-into-net-maui/phone.png)
ШАГ 6
Фактически, интеграция Stimulsoft закончена. Теперь в .NET MAUI проект встроена система отчетности, и осталось только его запустить. В навигационном меню демо-проекта будет добавлена новая ссылка Export Report, при нажатии на которую откроется страница с разными действиями над отчетом - экспорт в PDF и отображение отчета как HTML-текста. Также можно экспортировать отчет в PDF-файл и поделиться им. При необходимости данный код можно легко модифицировать и выполнять экспорт в другие форматы – например, в изображения или Rich Text. Также в опциях экспорта можно настроить экспортирование только определенных страниц отчета и установить другие параметры.Таким образом, при разработке приложений .NET Multi-platform App UI можно использовать системы отчетности и аналитики данных без использования вьювера и дизайнера отчетов. Более подробно об использовании Blazor Stimulsoft можно узнать в документации. Активация продукта Reports.BLAZOR доступна по подписке Reports.WEB, а Dashboards.BLAZOR - по подписке Dashboards.WEB. Также, в онлайн-магазине можно приобрести комплексное решение для систем отчетности и аналитики под различные платформы - подписку Stimulsoft Ultimate.