6 сентября 2022

Выпуск новой версии FastReport .NET 2022.3

Встречайте новые возможности для ваших проектов! Была добавлена поддержка библиотеки SkiaSharp, проверка шаблона отчёта через валидатор, редактор FRX формата, конвертация отчетов из StimulSoft, улучшения экспортов с плагинами и многое другое.

 

Поддержка Skia:

Теперь FastReport.Core поддерживает отрисовку графики и текста с помощью библиотеки SkiaSharp, которая используется вместо System.Drawing.Common + libgdiplus на Linux системах (но также работает и на других операционных системах).

Для этого используются пакеты с суффиксом .Skia:

  • FastReport.Core.Skia
  • FastReport.Web.Skia

Эта версия ограниченно поддерживает .NET Framework и, в основном, рассчитана на .NET Core/.NET проекты. Для использования в вашем приложении достаточно сменить название пакета FastReport.Core -> FastReport.Core.Skia, а также добавить следующие пакеты для работы на Linux (на Windows и macOS необходимые пакеты добавляются автоматически):

  • SkiaSharp.NativeAssets.Linux
  • HarfBuzzSharp.NativeAssets.Linux

Подробнее о поддержке Skia читайте в следующей статье.

 

Валидатор отчета:

В дизайнере отчета добавлена вкладка "Проверка" (справа, рядом с вкладками "Данные" и "Дерево отчета"). Здесь можно проверить шаблон отчета и получить список ошибок и предупреждений.

Все это выводится в виде таблицы, в которой указано имя объекта (если оно есть) и описание ошибки. Если выделить строку в таблице, то в дизайнере будет выделен соответствующий объект.

Валидатор отчета

Ошибки и предупреждения могут быть следующих типов: объект без имени, объекты с одинаковым именем, пересекающиеся объекты, объекты с нулевой высотой или шириной, а также объекты, частично или полностью находящиеся за пределами родительского объекта.

Объекты без имени и объекты с одинаковыми именами, являются критическими ошибками. Они могут приводить к различным ошибкам и даже падению приложения при подготовке отчета. К тому же, без валидатора эти ошибки очень сложно найти.

Пересекающиеся объекты не являются серьезной ошибкой. В некоторых случаях могут быть полезными и использоваться целенаправленно (например, линии или прямоугольники). Пересекающиеся текстовые объекты, в большинстве случаев могут приводить к некорректным экспортам. Особенно в табличных экспортах, например Excel. В результате экспорта будет много лишних ячеек и так далее. С такими объектами надо быть осторожными.

Объекты, частично выходящие за границы родительского объекта (например бэнда или страницы), тоже могут быть полезными в редких ситуациях. Но в большинстве случаев, приводят к ошибкам при подготовке и экспорте отчета.

Объекты, полностью находящиеся за пределами родительского - ошибка серьезная. Найти такие объекты без валидатора, тоже очень трудно.

Пересекающиеся объекты и выходящие за пределы родительских могут выделяться цветом (который теперь можно выбирать), если включена соответствующая настройка в меню Файл -> Настройки.

Report validator

Использовать проверку отчёта совсем не обязательно. Но это может быть полезным, когда ваш отчет работает или выглядит не так как хотелось бы.

Подробнее о валидаторе отчёта читайте по следующей ссылке. 

 

Редактор FRX

Иногда возникает необходимость редактировать содержимое FRX-файла с помощью сторонних текстовых редакторов. Теперь вы можете это делать непосредственно в дизайнере отчета. Для этого был добавлен редактор FRX формата. По умолчанию он отключен. Чтобы включить редактор перейдите в меню «Файл -> Настройки».

Редактор FRX

В дизайнере отчета, слева от вкладки Code появится вкладка FRX.

Редактор FRX

Внесенные здесь изменения, будут сразу применяться к отчету и отображаться на его страницах.

Подробнее о редакторе FRX читайте в следующей статье. 

 

Конвертор отчетов из StimulSoft

Добавлена возможность конвертировать шаблоны отчетов из StimulSoft в шаблоны FastReport .NET.

В отчетах StimulSoft могут присутствовать объекты реализации, которые не поддерживаются дизайнером FastReport. Эти объекты не будут экспортироваться, либо будут заменены другими таким образом, чтобы построенный отчет был максимально похож на созданный в StimulSoft. Важно отметить, что импорт кросс-бэндов реализован выносом их содержимого в родительский бэнд.

Подробнее о конвертации отчётов читайте в статье по следующей ссылке.

 

Копирование диалоговых страниц

Добавлена возможность копировать диалоговые страницы. Как с помощью контекстного меню диалоговой страницы, так и с помощью кнопки «Отчет -> Копировать страницу отчета».

Копирование диалоговых страниц

При копировании создается копия диалоговой страницы с уникальным именем. У всех дочерних объектов тоже будут уникальные имена. Однако обработчики событий у объектов будут те же, что и у исходной страницы. При необходимости нужно создать новые обработчики.

Также теперь диалоговые страницы можно удалять не только с помощью кнопки «Отчет -> Удалить страницу», но и через контекстное меню в редакторе формы и дереве отчета.

 

Отключение последних настроек форматирования

При создании объекта в дизайнере его настройки будут применены к следующему созданному объекту того же типа.

Например, если создать текстовый объект, настроить у него размер шрифта, границы, цвет заливки, то следующий текстовый объект будет создан с такими же настройками.

Это удобно, когда нужно создавать несколько объектов с такими же или похожими настройками.

В ситуациях, когда такое поведение дизайнера не нужно его можно отключить в меню «Файл -> Настройки».

Отключение последних настроек форматирования

При этом объекты будут создаваться с настройками по умолчанию.

 

Экспорт всех вкладок

При просмотре интерактивных отчетов можно открывать детальные отчеты в новых вкладках.

Экспорт всех вкладок

Здесь видно три открытые вкладки. Раньше экспортировалась только активная вкладка. Теперь можно экспортировать все вкладки в один файл с помощью новой опции "Экспорт всех вкладок".

Экспорт всех вкладок

 

Подробное описание связанных сборок и установленных плагинов

Теперь при наведении курсора мыши на dll в списке плагинов (Файл -> Настройки -> Плагины) и в списке ссылок на сборки (Отчет -> Свойства -> Скрипт), выводится подробная информация с описанием, версией, размером, датой создания и т.д.

 

Улучшения экспортов

Улучшения в экспорте в PDF:

Linux версия:

  • ­поддержка комплексных языков (арабский, иврит и пр.) в версии Skia.

Все версии:

  • поддержка Font Fallback (механизм автоматического выбора шрифта для вывода символов, которые не поддерживаются текущим шрифтом;

поддержка Font Fallback

  • точное позиционирование специальных символов, таких как огласовки и знаки ударения.

Улучшения в экспорте в PDF

 

Свойство UseFileStream в PDF-экспорте

Добавлена новая опция UseFileStream для PDF-экспорта. Ее можно использовать только при экспорте из кода в файл. Эта опция полезна при экспорте отчетов с большим количеством страниц (несколько десятков тысяч) в нескольких потоках. Тем самым это позволит избежать ошибок с нехваткой памяти. В остальных случаях использование особого смысла не имеет. Пример:

Report report = new Report();
PDFExport export = new PDFExport();
export.UseFileStream = true;
report.Export(export, "report.pdf");

 

Выбор языка при экспорте в Word, PowerPoint, Rich Text, OpenOffice Write и OpenOffice Calc 

Теперь в этих экспортах можно выбирать язык документа. По умолчанию используется язык, выбранный в дизайнере.

Выбор языка при экспорте в Word, PowerPoint, Rich Text, OpenOffice Write и OpenOffice Calc

Также добавлена опция "Показать линии сетки" в Excel 2007 экспорте.

 

Полный список изменений

[Engine]

+ добавлен конвертор отчетов из StimulSoft;

+ добавлено изменение имени источника данных JSON в выражениях при его переименовании;

+ добавлена конвертация свойства PaperSize при конвертации отчетов из StimulSoft;

+ добавлена проверка существования связанных сборок при конвертации отчетов из StimulSoft;

+ добавлено свойство PrintOnParent у объектов Table и Matrix;

+ добавлена загрузка параметров отчета при конвертации отчетов из RDL;

+ добавлена загрузка вложенных отчетов при конвертации отчетов из RDL;

+ улучшено быстродействие в отчетах, содержащих большое количество объектов;

+ добавлена возможность сохранить данные JSON подключения с помощью свойства StoreData;

* изменен текст исключения при вычислении и форматировании выражения, если e.InnerException null;

* при загрузке отчетов RDL, ширина страницы будет равна ширине секции только в случае, если ширины страницы нет;

- исправлено вычисление длины кодировки DataMatrix C40 и текста;

- обработано исключение System.ComponentModel.Win32Exception, при печати с отключенным "Диспетчером печати";

- исправлено скрытие границы изображения при печати с автоматическим размером;

- исправлена ошибка переполнения стека при подготовке отчета с дочерним бэндом подвала страницы и включенной у него опцией начать новую страницу;

- исправлен баг, при котором не передавался текущему отчету путь к базовому отчету на Unix ОС;

- исправлена ошибка с созданием подотчета и страницы с одним именем при конвертации отчетов из StimulSoft;

- исправлена ошибка с некорректными именами при конвертации отчетов из StimulSoft;

- исправлена ошибка с TotalPages в Page.VisibleExpression, которая приводит к исключению при выключенном двойном проходе;

- исправлена ошибка, при которой бэнд может расти за пределы страницы;

- исправлена ошибка, при которой объекты могут расти за пределы бэнда или ContainerObject;

- исправлена ошибка обратного отступа при трансляции RTF в объекты отчёта;

- исправлен межстрочный интервал для текста транслированного из RichObject;

- исправлена ошибка свойства ConnectionString в классе JsonDataSourceConnectionStringBuilder, когда информация приходила без заголовков запроса;

 

[Designer]

+ добавлен валидатор отчета, который помогает находить некорректные объекты (повторяющиеся имена, отрицательные размеры и т.д.);

+ добавлен редактор для свойства RichObject.Text;

+ добавлен редактор FRX в дизайнере отчетов;

+ добавлено подробное описание связанных сборок и установленных плагинов;

+ добавлена возможность копировать диалоговые страницы;

+ добавлена возможность удалять диалоговые страницы через контекстное меню;

+ добавлена возможность отключить использование последних настроек форматирования при создании объектов;

+ добавлена интеграция с FastReport.Id;

+ добавлен вызов онлайн-документации в дизайнере отчетов;

+ добавлен мастер для визуализации контрольных идентификационных знаков;

+ добавлены всплывающие подсказки о правых и нижних отступах для направляющих и объектов в дизайнере;

+ добавлена возможность выбирать цвет подсветки пересекающихся объектов в дизайнере;

+ добавлена возможность подключения баз Access 2007;

* изменен внешний вид формы редактора подключения к ElasticSearch;

* изменены текстовые поля в CISWizardForm с единицами измерения на текстовые поля, поддерживающие только числа;

- исправлена ошибка, приводящая к System.NullRefereceException при создании вычисляемого столбца для вложенной таблицы JSON;

- исправлена ошибка, приводящая к System.FormatException при отрисовке подписей карт;

- исправлена ошибка, приводящая к System.NullReferenceException, при нажатии кнопки "Вставить" в контекстном меню диалоговых страниц;

- исправлена ошибка масштабирования элементов управления зумом дизайнера в режиме HiDPI при запуске из старого демонстрационного приложения;

- исправлено открытие формы сохранения изменений после сохранения всего отчета;

- исправлены не масштабируемые элементы в окне приветствия;

- исправлена подсветка пересекающихся графиков;

- исправлено исключение при переименовании таблицы JSON;

- исправлен UpdateStatusBar в DialogWorkspace;

- исправлена ошибка локализации кнопки "Учётная запись" в меню "Файл";

- исправлена потеря фокуса выбранного объекта при изменении его свойств;

- исправлена ошибка, при которой не происходило переключение на страницу "Код" после добавления обработчика событий;

 

[Preview]

+ реализован экспорт всех открытых вкладок;

- исправлена ошибка, приводившая к System.NullReferenceExteption при подготовке отчета с RichObject в системе без принтеров;

- исправлена ошибка в объекте MSChart в режиме HiDPI;

 

[Exports]

+ добавлен вывод языка при экспортах в Word, PowerPoint, Rich Text, OpenOffice Write и OpenOffice Calc;

+ добавлено шифрование пароля сертификата цифровой подписи в PDF-экспорте при его сохранении;

+ добавлена опция "Показать линии сетки" при экспорте в Excel 2007;

+ добавлен экспорт типов данных в DBF;

+ добавлено новое свойство в экспорт SVG PrefixStyle, которое позволяет задать префикс для всех стилей внутри svg экспорта;

+ добавлена опция "Использовать системное форматирование данных" в Excel 2007 экспорте;

+ добавлено свойство PDFExport.UseFileStream, которое позволяет  экспортировать огромные отчеты на системах с небольшим объемом  оперативной памяти без System.OutOfMemoryException;

* установлена UTF-8 в качестве кодировки по умолчанию для экспорта DBF;

- исправлено неправильное масштабирование изображений в послойном HTML-экспорте при включенном высоком качестве svg и увеличении более 1;

- исправлена ошибка, приводившая к System.IndexOutOfRangeException при экспорте шрифта без кернинга в PDF;

- исправлена ошибка масштабирования изображений при послойном HTML-экспорте;

- исправлена ошибка, приводящая к System.NullReferenceException при экспорте отчета с пустой страницей в Word 2007;

- исправлена утечка памяти в экспорте PDF с некоторыми CJK шрифтами;

- исправлен баг, при котором SVG картинка не поворачивалась на заданный угол в HTML/Blazor экспорте;

- исправлен повторный рендеринг ячейки таблицы при экспорте в SVG;

- исправлен некорректный стиль страницы при печати из браузера для табличного HTML экспорта;

- исправлено исключение, которое возникало при экспорте объекта с отрицательными размерами в HTML формат;

- исправлена ошибка экспорта в PDF при Compressed = false;

- исправлена некорректная запись свойства border-collapse в табличном HTML-экспорте;

- исправлена ошибка Excel-экспорта, при которой заливка в выходном файле не менялась с первого раза;

- исправлена ошибка экспорта водяного знака в PostScript;

- исправлена ошибка масштабирования шрифта при экспорте в PDF;

- исправлена ошибка, при которой текстовый объект с HtmlTags, экспортированный в RTF, не изменялся тегами <br>, <sup>, <sub>;

 

[WebReport]

* свойства OnlineDesginer перенесены в WebReport.Designer с сохранением обратной совместимости;

- исправлен баг, когда событие "CheckedChanged" RadioButton не выполнялось;

- исправлено некорректное масштабирование Dialog компонентов в Blazor;

- исправлен баг с некорректным размером шрифта при экспорте в Excel;

- исправлен баг в Blazor, при котором шрифт текстового объекта со свойством TextRenderType = HtmlParagraph всегда был стандартным;

 

[.NET Core]

- исправлен некорректный поиск public-методов в скрипте отчёта;

- исправлена проблема создания файла fontlist на Azure;

 

[CoreWin]

- для Visual Studio исправлено поведение компонентов WinForms в Toolbox (Design-Time);

- исправлен некорректный запуск браузера при клике по ссылке в CoreWin;

- для FastReport.CoreWin исправлены отчёты со скриптом, которые используют WinForms API;

 

[Demos]

+ добавлена возможность сменить локализацию нового демо-приложения без его перезапуска;

+ добавлено демо-приложение на React с FastReport.Core;

- исправлено положение одной из диаграмм в Chart.frx;

 

[Plugins]

+ реализовано подключение к ЛИНТЕР;

+ реализовано подключение к Cassandra;

- обновлён RPTImportPlugin;

 

[Extras]

- для пакетов FastReport.Net* добавлены библиотеки FastReport.Web (для .NET Framework) и FastReport.VSDesign;

- добавлена возможность импортировать отчёты с помощью потоков;

 

[Service]

- исправлена некорректная версия FastReport.Compat в пакетах FastReport.Net.

28 октября 2024

Обновление Delphi и Lazarus продуктов до версии 2025.1

С версий 2025.1 было добавлено новое приложение для демонстрации возможностей FastReport VCL, расширена компонентная база, улучшены дизайнер отчетов и фильтры экспорта.
15 октября 2024

Новая версия FastReport Business Graphics .NET 2025.1

Представляем вам релиз FastReport Business Graphics .NET 2025.1, который включает важные исправления и улучшения.
15 октября 2024

Обновление .NET продуктов до версии 2025.1

В этом релизе мы сконцентрировались на реализации долгожданных функций, которые значительно упрощают процесс разработки шаблонов для отчетов.