1 ноября 2024
Новые возможности редактора отчетов FastReport VCL
Наши продукты постоянно развиваются, непрерывно добавляется новый функционал и улучается качество программного кода. В этой статье рассмотрим новые возможности редактор отчетов и не рассмотренные в руководстве пользователя.
Инспектор объектов
Добавлена возможность помещать отдельные свойства в «Избранное». Для этого сфокусируйте курсор на инспекторе объектов и нажмите на клавишу CTRL. Рядом с именами свойств появятся чекбоксы, выберите необходимые вам свойства и добавьте их в список избранного. Удалять свойства можно таким же способом во вкладке «Избранное». События поместить в избранное нельзя.
Теперь рядом со вкладками инспектора объектов расположено окно ввода для быстрого поиска свойств. Окно поиска может быть не видно, если у инспектора объектов малая ширина. При вводе данных в это окно инспектор начинает показывать только те свойства, которые содержат введенную строку.
Инспектор выделяет значения свойств жирным стилем если те отличаются от значений по умолчанию. Это позволяет быстро находить свойства объекта, которые были изменены в процессе редактирования.
Примечание: не у всех свойств имеются значения по умолчанию, поэтому не все свойства могут быть подсвечены.
Дерево отчета
В дерево отчетов также добавлен поиск компонентов по имени. Чтобы появилась строка поиска, то внутри дерева необходимо нажать на значок >>, расположенный справа внизу. Помимо этого, в дереве отчета можно выделять несколько элементов с использованием клавиши CTRL.
Дополнительно можно вызвать меню редактирования с помощью правой кнопки мыши – оно аналогично меню, которое вызывается при щелчке по компоненту. При выделении нескольких компонентов можно отредактировать их все одновременно. Например, скрыть их все с помощью свойства Visible, или, например удалить.
Дерево данных
Интересной возможностью дерева данных является перетаскивание полей на рабочее поле дизайнера со вкладки «Поля БД». Если вы сделали активными кнопки «вставлять поле» или «вставлять заголовок» (кнопки F и C на изображении выше), то на рабочем поле дизайнера создастся frxMemoView либо с текстом заголовка из поля данных, либо привязанный к данным. В том случае, когда будут нажаты обе кнопки, то сгенерируются два TfrxMemoView - и с заголовком поля и привязанный к данным.
Если данные берутся из TfrxDataSet, то в редакторе этого компонента (в самой IDE Delphi) можно настроить тип компонента, который создаётся при перетаскивании. Группы полей также можно перетаскивать. При этом, если вместе с полями выбрать и датасет, то создастся бэнд с данными полями.
Если перетаскивается поле данных, то имя компонента составляется из имени датасета и имени поля данных. Помимо этого, можно перетащить поле данных и на существующий компонент. Тогда этот компонент привяжется к перетаскиваемому полю данных (предыдущее значение будет потеряно). Поле данных также можно перетащить в любое строковое свойство инспектора объектов.
В дереве данных ещё есть 2 вкладки: «Функции» и «Классы», на которых отображаются все доступные в отчете классы и функции. Их также можно перетаскивать в дизайнер отчета.
Рабочее поле дизайнера
Рабочее поле дизайнера обладает рядом интересных возможностей, облегчающих жизнь разработчика. На большинстве контролов, если у них есть обработчики событий, то в верхнем левом углу появляется маленький красный треугольник.
Если на привязанном к датасету бэнде находится TfrxMemoView, то при наведении на него мышкой у него справа появляется треугольник (как у комбобокса). При нажатии на него можно привязать к TfrxMemoView поле из датасета бэнда.
Если содержимое текстового компонента не полностью видно на экране (обрезано), то при наведении на такой компонент появляется подсказка с полным содержимым данного компонента. Эти подсказки можно убрать в настройках дизайнера, для этого перейдите в меню «Вид» -> «Настройки» и уберите галочку «Enable workspace hints».
Выносные линии
Выносные линии – это набор вертикальных и горизонтальных линий для позиционирования вдоль них компонентов отчета. Управление видимостью выносных линий организовано с помощью подэлеменов меню «Вид».
«Выносные линии» – этот пункт меню разрешает использование выносных линий. Для создания выносной линии необходимо щелкнуть мышью 2 раза по линейке сверху или сбоку дизайнера. Выносные линии отображаются голубым цветом.
«Автоматические выносные линии» – выносные линии появляются вдоль каждой границы компонента. Если выносная линия создана пользователем и не связана с границей компонента, то она исчезает, а если связана – то становится коричневого цвета. Создание пользовательских выносных линий в этом режиме невозможно.
«Использование горизонтальных и вертикальных выносных линий» – эти 2 пункта меню отвечают за видимость горизонтальных и вертикальных выносных линий.
Также регулировать видимость выносных линий можно с помощью кнопки, находящейся на пересечении вертикальной и горизонтальной линеек, в верхнем левом углу поля редактирования дизайнера отчетов (скриншот ниже). Эта кнопка по кругу переключает режимы выносных линий в следующем порядке:- без автоматических выносных линий;- все автоматические выносные линии;- горизонтальные автоматические выносные линии;- вертикальные автоматические выносные линии.
Для удаления пользовательской выносной линии достаточно переместить её за пределы области дизайнера или щёлкнуть правой кнопкой мыши по указателю выносной линии. В режиме автоматических выносных линий можно преобразовать эти линии в пользовательские, а затем вернуть обратно в автоматические. Для этого 2 раза нажмите по указателю выносной линии на линейке.
Выносные линии применяются для расположения элементов отчета в нужном порядке. Главное свойство выносных линий – границы компонентов «прилипают» к выносным линиям при любом изменении размеров компонентов.
Помимо этого, при перетаскивании выносной линии вместе с ней перемещаются все «прилипшие» границы компонентов. Если противоположная граница компонента «прилипла» к другой выносной линии, то компонент изменяет свои размеры. Если противоположная граница компонента свободна, то компонент перемещается вслед за выносной линией, его размеры не меняются (каждую из настроек можно отключить в опциях дизайнера, например «Прилипать к выносным линям» и «Использовать выносные линии как якорь»).
Также выносные линии имеют способность «слипаться» между собой – если одну выносную линию переместить на другую, то они сольются.
Таким образом с помощью выносных линий можно быстро выстроить компоненты отчета по пользовательской сетке. Данный функционал очень важен при экспорте отчета в некоторые форматы (например, в таблицу Excel), получение табличных отчетов без использования компонентов-сеток и так далее.
Дополнительные кнопки панели инструментов дизайнера
На панель инструментов «Стандартная» добавлены 2 новые кнопки «Подсвечивать пересечение объектов» и «Поиск».
Первая кнопка переназначена для показа пересекающихся объектов, которые на изображении выше автоматически выделяются красным цветом. Сам цвет можно изменить в настройках редактора.
Вторая кнопка открывает окно поиска текста или его замены. В этом окне можно задать области поиска: искать в именах компонентов, в значениях строковых свойств, в содержимом, в тексте скрипта. Под содержимым понимается, например, значение свойства Memo компонента TfrxMemoView.
Перейдем к настройкам поиска. Если активен чекбокс «Различать регистр», то будут различаться строчные и прописные буквы.
Если активен чекбокс «Искать все», то список найденного будет выведен на панели ниже, с пояснениями, какому элементу отчета принадлежит найденный текст. При щелчке мышью на любом элементе будет произведен переход к найденному элементу.
В ситуациях, когда чекбокс «Искать все» не активен, то по нажатию кнопки «Искать далее» (или клавиша F3 на клавиатуре) будет произведен переход к следующему найденному элементу. Переходы между элементами идут по вкладкам «Data», «Page», либо по «Code» в зависимости от активной вкладки.
При наличии чекбокса на настройке «Заменить на» становится активным окно, в которое необходимо вписать новый текст для замены текущего. При этом надпись на кнопке «Искать текст» меняется на «Замена». Теперь при нажатии на кнопку «Замена» появляется диалог следующего вида:
Этот диалог позволяет подтвердить или отменить замену текста. Данный функционал может понадобиться, например, при необходимости сменить один шрифт у всех компонентов на другой. Или, например, если вы переименовали датасет, который активно используется в скриптах.