Встречайте новые возможности для ваших проектов! Была добавлена поддержка библиотеки SkiaSharp, проверка шаблона отчёта через валидатор, редактор FRX формата, конвертация отчетов из StimulSoft, улучшения экспортов с плагинами и многое другое.
Теперь FastReport.Core поддерживает отрисовку графики и текста с помощью библиотеки SkiaSharp, которая используется вместо System.Drawing.Common + libgdiplus на Linux системах (но также работает и на других операционных системах).
Для этого используются пакеты с суффиксом .Skia:
Эта версия ограниченно поддерживает .NET Framework и, в основном, рассчитана на .NET Core/.NET проекты. Для использования в вашем приложении достаточно сменить название пакета FastReport.Core -> FastReport.Core.Skia, а также добавить следующие пакеты для работы на Linux (на Windows и macOS необходимые пакеты добавляются автоматически):
Подробнее о поддержке Skia читайте в следующей статье.
В дизайнере отчета добавлена вкладка "Проверка" (справа, рядом с вкладками "Данные" и "Дерево отчета"). Здесь можно проверить шаблон отчета и получить список ошибок и предупреждений.
Все это выводится в виде таблицы, в которой указано имя объекта (если оно есть) и описание ошибки. Если выделить строку в таблице, то в дизайнере будет выделен соответствующий объект.
Ошибки и предупреждения могут быть следующих типов: объект без имени, объекты с одинаковым именем, пересекающиеся объекты, объекты с нулевой высотой или шириной, а также объекты, частично или полностью находящиеся за пределами родительского объекта.
Объекты без имени и объекты с одинаковыми именами, являются критическими ошибками. Они могут приводить к различным ошибкам и даже падению приложения при подготовке отчета. К тому же, без валидатора эти ошибки очень сложно найти.
Пересекающиеся объекты не являются серьезной ошибкой. В некоторых случаях могут быть полезными и использоваться целенаправленно (например, линии или прямоугольники). Пересекающиеся текстовые объекты, в большинстве случаев могут приводить к некорректным экспортам. Особенно в табличных экспортах, например Excel. В результате экспорта будет много лишних ячеек и так далее. С такими объектами надо быть осторожными.
Объекты, частично выходящие за границы родительского объекта (например бэнда или страницы), тоже могут быть полезными в редких ситуациях. Но в большинстве случаев, приводят к ошибкам при подготовке и экспорте отчета.
Объекты, полностью находящиеся за пределами родительского - ошибка серьезная. Найти такие объекты без валидатора, тоже очень трудно.
Пересекающиеся объекты и выходящие за пределы родительских могут выделяться цветом (который теперь можно выбирать), если включена соответствующая настройка в меню Файл -> Настройки.
Использовать проверку отчёта совсем не обязательно. Но это может быть полезным, когда ваш отчет работает или выглядит не так как хотелось бы.
Подробнее о валидаторе отчёта читайте по следующей ссылке.
Иногда возникает необходимость редактировать содержимое FRX-файла с помощью сторонних текстовых редакторов. Теперь вы можете это делать непосредственно в дизайнере отчета. Для этого был добавлен редактор FRX формата. По умолчанию он отключен. Чтобы включить редактор перейдите в меню «Файл -> Настройки».
В дизайнере отчета, слева от вкладки Code появится вкладка FRX.
Внесенные здесь изменения, будут сразу применяться к отчету и отображаться на его страницах.
Подробнее о редакторе FRX читайте в следующей статье.
Добавлена возможность конвертировать шаблоны отчетов из StimulSoft в шаблоны FastReport .NET.
В отчетах StimulSoft могут присутствовать объекты реализации, которые не поддерживаются дизайнером FastReport. Эти объекты не будут экспортироваться, либо будут заменены другими таким образом, чтобы построенный отчет был максимально похож на созданный в StimulSoft. Важно отметить, что импорт кросс-бэндов реализован выносом их содержимого в родительский бэнд.
Подробнее о конвертации отчётов читайте в статье по следующей ссылке.
Добавлена возможность копировать диалоговые страницы. Как с помощью контекстного меню диалоговой страницы, так и с помощью кнопки «Отчет -> Копировать страницу отчета».
При копировании создается копия диалоговой страницы с уникальным именем. У всех дочерних объектов тоже будут уникальные имена. Однако обработчики событий у объектов будут те же, что и у исходной страницы. При необходимости нужно создать новые обработчики.
Также теперь диалоговые страницы можно удалять не только с помощью кнопки «Отчет -> Удалить страницу», но и через контекстное меню в редакторе формы и дереве отчета.
При создании объекта в дизайнере его настройки будут применены к следующему созданному объекту того же типа.
Например, если создать текстовый объект, настроить у него размер шрифта, границы, цвет заливки, то следующий текстовый объект будет создан с такими же настройками.
Это удобно, когда нужно создавать несколько объектов с такими же или похожими настройками.
В ситуациях, когда такое поведение дизайнера не нужно его можно отключить в меню «Файл -> Настройки».
При этом объекты будут создаваться с настройками по умолчанию.
При просмотре интерактивных отчетов можно открывать детальные отчеты в новых вкладках.
Здесь видно три открытые вкладки. Раньше экспортировалась только активная вкладка. Теперь можно экспортировать все вкладки в один файл с помощью новой опции "Экспорт всех вкладок".
Теперь при наведении курсора мыши на dll в списке плагинов (Файл -> Настройки -> Плагины) и в списке ссылок на сборки (Отчет -> Свойства -> Скрипт), выводится подробная информация с описанием, версией, размером, датой создания и т.д.
Linux версия:
Все версии:
Добавлена новая опция UseFileStream для PDF-экспорта. Ее можно использовать только при экспорте из кода в файл. Эта опция полезна при экспорте отчетов с большим количеством страниц (несколько десятков тысяч) в нескольких потоках. Тем самым это позволит избежать ошибок с нехваткой памяти. В остальных случаях использование особого смысла не имеет. Пример:
Теперь в этих экспортах можно выбирать язык документа. По умолчанию используется язык, выбранный в дизайнере.
Также добавлена опция "Показать линии сетки" в 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.