8 апреля 2025
Обновление .NET продуктов до версии 2025.2
Встречайте новый релиз 2025.2 для вариантов поставок FastReport .NET: WinForms, WPF, Avalonia, Mono, WEB, Ultimate. В этом обновлении вас ждёт поддержка .NET 9, библиотека для выполнения скриптов на языке C#, плагин импорта документов из Word, коннектор к Apache Ignite, улучшения дизайнера и экспортов, а также новые функции в WebReport.
Не упустите возможность обновить FastReport .NET и расширить свой функционал!
Импорт документов из Word
В наборе компонентов FastReport .NET Ultimate появился плагин, который позволяет импортировать документы Microsoft Word (.docx). При открытии такого файла он преобразуется в шаблон отчета FastReport .NET (.frx).
Ввиду больших отличий в форматах полное соответствие двух документов не всегда возможно. Однако, данный плагин позволяет значительно сократить время создания шаблона на основе существующего docx-файла.
На данный момент наш плагин не поддерживает: подсветку фона части строки, шейпы (Shapes), а также вложенную векторную графику Vector Markup Language (VML) и OLE объекты. Об особенностях работы импорта и как подключить плагин, можно прочитать в статье.
Читать статью
Поддержка .NET 9
Эта платформа повышает производительность приложений и добавляет множество новых возможностей для ваших проектов. В этом обновлении появилась поддержка .NET 9 для:
FastReport .NET,
FastReport.Core,
FastReport.Core.Skia,
FastReport.WPF,
FastReport.Avalonia,
FastReport.Web,
FastReport.Web.Skia,
FastReport.Blazor.Wasm.
Мы отказались от бинарной сериализации. BinaryFormatter стал причиной целого ряда проблем с безопасностью и Microsoft в .NET 9 отказались от его использования. Наша команда также убрала класс BinaryFormatter из исходного кода. Подробнее об этом можно прочитать по этой ссылке.
Узнать больше
Улучшения дизайнера отчетов
Также в этой версии были внедрены несколько полезных функций, упрощающих работу с отчётами.
Теперь в инспекторе объектов можно быстро копировать данные из списка свойств объекта с помощью горячих клавиш Ctrl + C. Это поможет легко переносить свойства объектов между различными частями документа или даже между разными отчётами.
Кроме того, появилась возможность копировать итоги и параметры с сохранением иерархии вложенности. Это означает, что при копировании сложных структур данных их первоначальная организация будет сохранена, что позволяет избежать необходимости вручную восстанавливать структуру после копирования.
Подключение к Apache Ignite и РЕД Квант
С этим обновлением был добавлен новый плагин, который значительно упрощает процесс работы с базами данных Apache Ignite и РЕД Квант при создании отчётов. Этот плагин позволяет напрямую подключать отчёты к указанным базам данных, обеспечивая удобный доступ к необходимым данным для анализа и визуализации.
Коннектор Apache Ignite реализован на основе .NET Thin Client Ignite.NET. Он предоставляет возможность подключения к кластерам Apache Ignite, работы с кэшами (включая SQL-таблицы) и обработки различных типов данных.
Кроме того, коннектор поддерживает подключение к одному или нескольким узлам Apache Ignite. Адреса узлов указываются в формате хост:порт и разделяются запятыми. Подключение возможно как с аутентификацией (если authenticationEnabled используется в конфигурации), так и без неё.
В коннекторе поддерживается работа с кэшами, созданными как ключ-значение, так и с SQL-таблицами. Для кэшей с метаданными QueryEntity поддерживаются операции получения списка полей и их типов данных. Подробнее можно прочитать в статье.
Читать статью
Улучшения окна предварительного просмотра
В OutlineControl мы добавили удобные кнопки с иконками для сворачивания и разворачивания. Эти кнопки были и раньше, но без иконок.
Помимо этого, были добавлены свойства, которые позволяют изменять ширину и высоту полос прокрутки в окне предварительного просмотра.
Улучшения экспортов
Добавлен экспорт форматов чисел, валюты, даты, времени и процентов в OpenOffice Calc (.ods).
В этом обновлении также был внедрён новый режим экспортов в виде параграфов для файлов формата OpenOffice Writer (.odt). Это упрощает редактирование сгенерированных документов и делает их более визуально понятными для человека. Новый режим экспорта не заменяет, а дополняет уже существующий режим и расширяет его возможности.
Кроме того, была добавлена опция "Автоподбор ширины" для MS Excel-экспорта.
Будет работать только при определенных значениях свойств текстового объекта: свойства AutoWidth и AutoShrink включены; значение свойства HorzAling любое, кроме Justify.
Изменения в WebReport
Поиск по всему отчету
Добавлен поиск текста по всему отчету, аналогично десктопной версии Viewer, при нахождении слова на другой странице, просмотр будет автоматически на нее переключен. Поиск доступен в WebReport с FastReport.Core, в WebReport для Blazor Server и WebReport для Blazor Wasm. Управлять отображением кнопки поиска можно с помощью свойства:
WebReport.Toolbar.ShowSearchButton = false;
Цвет подсветки найденных слов можно изменить с помощью свойства:
WebReport.Toolbar.SearchHighlight = Color.Red;
Улучшения в настройке кэширования для WebReport
С выходом новой версии в WebReport появились дополнительные возможности для настройки кэширования.
Во-первых, теперь можно задавать индивидуальные параметры кэширования для каждого конкретного экземпляра WebReport. Ранее были доступны только общие настройки, применявшиеся ко всем отчётам, что могло быть неудобно, особенно если требовалось дольше сохранять в памяти определённые отчёты. С помощью свойства webReport.CacheOptions вы можете настроить время хранения в кэше для конкретного отчёта.
Во-вторых, появилась более гибкая настройка времени хранения отчёта в кэше благодаря параметрам AbsoluteExpirationDuration и AbsoluteExpiration. Ранее использовалась только опция CacheDuration, основанная на скользящем принципе: если отчёт использовался в течение заданного времени, таймер сбрасывался, и отчёт оставался в памяти. Это могло привести к тому, что отчёт никогда не удалялся из кэша.
Новые параметры позволяют задать точное время, когда отчёт должен быть окончательно удалён из кэша, независимо от его использования. При этом CacheDuration и новые параметры AbsoluteExpiration и AbsoluteExpirationDuration можно использовать совместно.
// Общие настройки для всех WebReport
services.AddFastReport(options =>
{
options.CacheOptions.CacheDuration = TimeSpan.FromMinutes(10);
options.CacheOptions.AbsoluteExpirationDuration = TimeSpan.FromMinutes(20);
});
// Индивидуальные настройки WebReport, имеющие больший приоритет
webReport.CacheOptions = new WebReportCacheOptions()
{
CacheDuration = // ...,
AbsoluteExpiration = DateTime.Now.AddMinutes(30),
// или
AbsoluteExpirationDuration = // ...
};
Обновленное демонстрационное веб-приложение на ASP .NET Core
Мы обновили наше демо-приложение на ASP .NET Core, чтобы продукт радовал вас не только своим функционалом, но и внешним видом. Обновленное приложение доступно по ссылке.
Онлайн демо
Обновленное демо Online Designer
Кроме того, мы обновили демо-приложение Online Designer, на котором вы сможете посмотреть больше примеров наших отчётов, экспортировать их, а также попробовать обновленный онлайн дизайнер на них. Обновленное приложение доступно по ссылке.
Попробовать демо
Поддержка FastScript .NET
Добавлена возможность выполнения скрипта отчета, используя FastScript .NET.
FastScript .NET — это библиотека для выполнения скриптов на языке C#, которая не зависит от CodeDOM/Roslyn и может быть использована в средах, где запрещена кодогенерация (Native AOT, iOS, WASM).
FastScript .NET входит в состав следующих вариантов поставок FastReport .NET: WinForms, WPF, Avalonia, Mono, WEB, Ultimate.
Для использования FastScript .NET совместно с FastReport .NET:
добавьте в свое приложение ссылку на nuget пакет FastReport.Plugins.FastScript;
выполните следующий код перед первым использованием объекта Report:
FastReport.Code.CodeProvider.DefaultProvider = typeof(FastReport.Code.FastScript.FastScriptCodeProvider);
Теперь все отчеты будут использовать FastScript .NET для вычисления выражений и выполнения кода отчета.
В FastScript .NET нет поддержки языка скрипта VB.NET, а также не поддерживается тип dynamic. Некоторые отчеты, использующие объект "Улучшенная матрица", не будут работать.
Подробная документация по работе с FastScript .NET доступна по этой ссылке.
Онлайн документация
Полный список изменений
[Engine]+ добавлен новый движок скрипта - FastScript .NET;+ добавлена поддержка вертикальной табуляции;+ добавлен импорт документов DOCX в шаблон отчёта;+ добавлена поддержка кодировки для китайского (упрощенного) языка при конвертации RTF;+ добавлена возможность отключить интеграцию с МоиОтчеты Облако;+ добавлен штрих-код GS1 Datamatrix;+ добавлено преобразование SkBitmap в Bitmap и Image в FastReport.SkiaDrawing;- исправлена ошибка с RichObject в кодировке zh-tw;- исправлена ошибка одновременной компиляции скрипта отчёта при подготовке отчётов в нескольких потоках;- исправлена ошибка при печати пустой матрицы;- исправлена ошибка передаче null значения в параметр запроса MS SQL;- исправлены ошибки при компиляции библиотек под .NET 9;- исправлена ошибка приводящая к бесконечному циклу, когда включено свойство "StartNewPage" дочернего бэнда "Заголовка страницы" или "Заголовка колонки";- исправлена ошибка приводящая к System.ArgumentException при подключении к MySQL;- исправлена ошибка вычисления выражения PrintableExpression страницы;- исправлена ошибка приводящая к System.NullReferenceException в методе Report.GetParameterValue;
[Designer]+ добавлена возможность копировать данные из списка свойств объекта с помощью горячих клавиш Ctrl + C;+ добавлена возможность копировать итоги и параметры с сохранением иерархии вложенности;* в окне открытия страницы отчета осталась возможность выбрать только *.frx файл;* в настройках дизайнера Mono скрыта вкладка с недоступными настройками (Страница "Код");* изменена логика обработки стилей .rtf файла при его открытии в дизайнере;- исправлена ошибка, когда пропадало изображение PictureObject, после отмены изменений в дизайнере, при редактировании подготовленной страницы;- исправлена ошибка поискового фильтра в дереве данных, при которой сбрасывалось текущее состояние поиска;- удален пункт "Новый диалог" контекстного меню в Community версии, выбор которого приводил к необрабатываемому исключению;- исправлена ошибка при запуске просмотра отчета из дизайнера;- исправлено исключение System.InvalidOperationException при удалении столбца источника данных, если такого столбца больше нет в базе данных;- исправлено считывание штрихкода GS1 DataMatrix как DataMatrix;- исправлена ошибка с выбором размещения колонок бэнда в окне "Редактор колонок";- исправлено удаление объектов и категорий с боковой панели в дизайнере;- исправлена ошибка с отображением иконок, которая появилась с версией AvaloniaUI 11.1;- исправлена ошибка, когда при добавлении функции IsNull через "Редактор текста" добавлялась лишняя запятая;
[Preview]+ добавлена кнопка для отправки отчета по электронной почте при использовании MAPI в превью в WPF;+ добавлены кнопки сворачивания и разворачивания с иконками в OutlineControl;+ добавлена возможность изменять ширину и высоту полосы прокрутки через код;- исправлена ошибка с неправильным размером бумаги для принтеров без опции "Авторазмер бумаги" при нажатии кнопок "Настройки", а затем "Дополнительно" в окне "Печать";- исправлено отключение кнопки сохранения подготовленного отчета в превью;- исправлено отключение вкладки "Хранилище" в меню сохранения отчета в предварительном просмотре;- исправлена ошибка с "Улучшенной матрицей" при отсутствие фильтров;- исправлена ошибка при которой не появлялась форма печати в превью по нажатию Ctrl + P;
[Exports]+ добавлен экспорт свойства "Author" при экспорте в PDF/A;+ добавлена поддержка HTML тега неразрывного пробела при экспорте в Excel;+ добавлен экспорт форматов чисел, валюты, даты, времени и процентов в OpenOffice Calc (.ods);+ добавлена опция "Автоподбор ширины" для экспорта в MS Excel;+ добавлен новый режим экспорта по параграфам в документы OpenOffice Writer (формат .odt);* теперь при экспорте страниц со свойством ExportAlias в Excel, суффикс "-n" не будет добавляться к имени листа, если это возможно;- исправлена ошибка, когда название шрифта экспортировалось без кавычек в HTML;- исправлена ошибка в FastReport.Core с некоторыми пользовательскими шрифтами;- исправлена ошибка в HTML-экспорте при которой, не отображалась граница штрих-кода;- исправлена ошибка открытия файлов при экспорте отчета с спецсимволами в форматы ODT и ODS;- исправлено некорректное отображение и экспорт некоторых Unicode символов в Skia/Avalonia;- исправлен экспорт заливки TableObject в PDF-экспорте;- исправлен экспорт заливки TableObject и страниц в HTML-экспорте;- добавлен экспорт высоты для объединенных ячеек при экспорте в Excel;
[WebReport]+ добавлен поиск по WebReport для ASP.NET;+ добавлен поиск по WebReport для Blazor WASM;+ добавлена поддержка .NET 9 для FastReport.Blazor.Wasm;+ добавлена возможность создания подключения к хранимым процедурам в WebReport;- исправлена проблема, которая не позволяла изменить DataConnection после его создания в OnlineDesigner;- исправлено преобразование TextObject в SVG при предварительном просмотре в Blazor;- исправлена поддержка Size CommandParameter;- исправлена отрисовка кнопок переключения страниц в Blazor при их выключении;- исправлена ошибка, когда значение параметра RouteBasePath не учитывалось при настройке WebReport;
[.NET Core]+ добавлен фильтр таблиц подключений;+ добавлен класс JsonConnectionType для использования в методе JsonDataConnection.GetConnectionType и методы GetConnectionType() и GetParameterType() в коннектор JsonDataConnection;- исправлена ошибка с кодировкой при подключении файла данных CSV для отчета в .NET Core;
[Common]* изменена ширина окна "О программе...";
[Extras]+ добавлена возможность подключения к Apache Ignite и РЕД Квант;
[Demos]+ добавлен файл UsedPackages.version для паков WPF;- исправлено название Avalonia и WPF при запуске демо приложения.