Reporting FMX

Кроссплатформенный набор FMX-компонентов для создания документов на базе Embarcadero FireMonkey

Практически любые: счет-фактура, финансовый отчет, каталог продуктов с поддержкой цветовых профилей, меню ресторана, детализация продаж, анкеты с электронными формами, счета за коммунальные, билет на самолет, услуги и многое другое. Если у вас есть данные, которые необходимо сделать визуально понятными, то FastReport подойдет вам идеально. Бесплатные шаблоны унифицированных форм вы можете скачать в формате шаблонов или PDF из нашего каталога МоиОтчеты Магазин.

Особенности и преимущества Reporting FMX

Множество компонентов
Для построения отчетов в дизайнере доступны разнообразные элементы: от текста и изображений до математических формул и 3D-диаграмм.
Быстрый доступ к отчету и структуре данных
Из дерева отчетов и дерева свойств вы сможете редактировать структуру отчета, параметры и фильтры, а также источники данных с глобальными стилями.
Безопасность
Защита ваших шаблонов и отчётов с помощью надежного шифрования данных. Адаптируйте все исходные коды под свои решения.
Исходный код
Этот набор компонентов включает в себя исходные коды FastReport. Максимальное удобство для компаний, желающих адаптировать код под свои нужды.
Гибкая и открытая архитектура
Если функционала FastReport для вас недостаточно, вы можете улучшить его, создав и подключив собственные объекты (фильтры экспорта, базы данных) к своим отчетам.
Графическое ядро
Для создания графических элементов, отрисовки текста и управления графических изображений могут быть использованы GDI+, D2D и конечно же Quarz.

Дизайнер шаблонов в вашем приложении

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

Reporting FMX - это бэнд-ориентированный генератор отчетов. Богатый набор бэндов позволяет строить отчеты любого типа: список, master-detail, отчет с группировкой, многоколоночный, master-detail-detail и другие. Если вам нужно создать много отчетов, которые содержат одинаковые элементы (заголовок, подвал, реквизиты предприятия, логотипы), то вы можете собрать общие элементы в базовый отчет и наследовать от него все остальные отчеты. Также мы поддерживаем функцию вложенных отчетов.

Дизайнер шаблонов в вашем приложении

Обработка данных

Reporting FMX поддерживает сортировку и фильтрацию данных, master-detail отношения. Всё может быть настроено с помощью нескольких щелчков мыши. Возможно подключение к FireDAC, ADO, DBX, IBX, обеспечивая таким образом доступ практически ко всем базам данных, включая Oracle и многие сторонние библиотеки.

Ваш отчет может содержать данные (таблицы, запросы, подключения к БД). Таким образом, вы можете не только использовать данные, доступные в вашем приложении, но и самостоятельно подключаться к любым БД непосредственно из отчета. Reporting FMX содержит скриптовой движок, поддерживающий PascalScript, C++ Script, BasicScript и JScript.

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

Обработка данных

Предпросмотр и печать

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

Дополнительные настройки печати. Для вас доступно: разрезание больших страниц отчета на малые, печать нескольких малых страниц на одной большой, печать на заданном формате с масштабированием. Вам нужно распечатать отчет, содержащий страницы формата А3, на обычном принтере с поддержкой А4? Теперь это не проблема!

Предпросмотр и печать

Экспорты в удобные форматы

Фильтры экспорта готового отчета во множество форматов: PDF, RTF, XLSX, XML, DOCX, TXT, CSV, Excel OLE, PowerPoint, HTML, MHT, XPS, JPEG, BMP, PNG, Open Document Format (ODT, ODS, ODP), XAML, Scalable Vector Graphics (SVG), ZPL и так далее.

Reporting FMX позволяет быстро преобразовывать отчеты с редактируемыми полями (такими как текстовые поля, символьные расчески, флажки, радиогруппы и графические поля) в документы PDF без подключения дополнительных библиотек. Сохраняйте свои отчеты в популярных форматах: PDF 1.4-1.7, PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-3a, PDF/A-3b, которые являются безопасными, доступными и надежными.

Экспорты в удобные форматы

Ultimate VCL

Этот набор компонентов входит в состав Ultimate решения, с помощью которого вы сможете создавать свои бизнес-проекты на всех привычных платформах VCL, Lazarus и FMX. Дополнительно в набор входит FastScript для быстрой обработки скриптов любой сложности, а также визуальный построитель SQL-запросов к базам данных FastQueryBuilder. Помимо этого вам будут доступны клиент-серверные инструменты отчетности на VCL и Lazarus.

Варианты поставок

Ultimate
от 129 890 ₽

Особенности

Ядро FastReport
Компоненты VCL
Компоненты FMX
Компоненты Lazarus
Возможности OLAP
Агрегатные OLAP функции
Поддержка баз данных
Возможности отчётов
Объекты отчета
Штрих-коды
Диаграммы
Печать
Экспорт в различные форматы
Исходные коды
Конвертеры из других шаблонов
Транспорты (Transports)
Плагин FastConverter .FP3
Optimum VCL
от 89 890 ₽

Особенности

Ядро FastReport
Компоненты VCL
Компоненты FMX
Компоненты Lazarus
Возможности OLAP
Агрегатные OLAP функции
Поддержка баз данных
Возможности отчётов
Объекты отчета
Штрих-коды
Диаграммы
Печать
Экспорт в различные форматы
Исходные коды
Конвертеры из других шаблонов
Транспорты (Transports)
Плагин FastConverter .FP3
Reporting VCL
от 49 890 ₽

Особенности

Ядро FastReport
Компоненты VCL
Компоненты FMX
Компоненты Lazarus
Возможности OLAP
Агрегатные OLAP функции
Поддержка баз данных
Возможности отчётов
Объекты отчета
Штрих-коды
Диаграммы
Печать
Экспорт в различные форматы
Исходные коды
Конвертеры из других шаблонов
Транспорты (Transports)
Плагин FastConverter .FP3
Reporting FMX
от 49 890 ₽

Особенности

Ядро FastReport
Компоненты VCL
Компоненты FMX
Компоненты Lazarus
Возможности OLAP
Агрегатные OLAP функции
Поддержка баз данных
Возможности отчётов
Объекты отчета
Штрих-коды
Диаграммы
Печать
Экспорт в различные форматы
Исходные коды
Конвертеры из других шаблонов
Транспорты (Transports)
Плагин FastConverter .FP3

Связанные статьи

15 октября 2021

Отчет с двумя уровнями данных (master-detail) в Delphi/Lazarus на примере FastReport VCL / FMX

В этой статье я хочу вам рассказать о такой мощной возможности FastReport, как “многоуровневые отчёты” - можно сравнить их структуру с деревом “ствол, ветки потолще, из каждой растут потоньше, и так далее - вплоть до листиков” или со структурой предприятия “Отделы, подотделы, сотрудники”. Часто их называют “master-detail” или “главный-подчинённый” - и делаются такие отчёты из нескольких таблиц. В одной таблице список главных сущностей, в другой, связанной с первой, список подчинённых сущностей со ссылкой на первую - какой конкретно сущности из первой подчинена конкретная сущность из подчинённой. И так далее. FastReport поддерживает вложенность до 6 уровней (можно и больше, используя объект "Вложенный отчет", но об этом позже). В реальных приложениях редко приходится печатать отчеты с большой вложенностью данных; как правило, ограничиваются 1-3 уровнями. Пример разработки многоуровневого отчёта Рассмотрим создание на примере двухуровневого отчета. Он будет содержать данные из таблиц Customer и Orders. Первая таблица – это список клиентов, вторая – список заказов, сделанных клиентами. Таблицы содержат данные следующего вида: Customer: CustNo       Company1221          Kauai Dive Shoppe1231          Unisco1351          Sight Diver Orders: OrderNo       CustNo       SaleDate1003            1351          12.04.19881023            1221          01.07.19881052            1351          06.01.19891055            1351          04.02.19891060            1231          28.02.19891123            1221          24.08.1993 Как видно, вторая таблица содержит список всех заказов, сделанных всеми компаниями. Чтобы получить список заказов, сделанных конкретной компанией, из таблицы следует отобрать записи, у которых поле CustNo = номеру выбранной компании. Отчет, построенный на этих данных, будет выглядеть следующим образом: 1221       Kauai Dive Shoppe     1023       01.07.1988     1123       24.08.19931231       Unisco     1060       28.02.19891351       Sight Diver     1003       12.04.1988     1052       06.01.1989     1055       04.02.1989 Приступим к созданию отчета. Создадим новый проект в Delphi, на форму положим два компонента TTable, компонент TDataSource, два компонента TfrxDBDataSet и один TfrxReport.  Подключаем данные из базы к объектам отчёта Настроим компоненты следующим образом: Table1: DatabaseName = 'DBDEMOS' TableName = 'Customer.db' Table2: DatabaseName = 'DBDEMOS' TableName = 'Orders.db'   DataSource1: DataSet = Table1   frxDBDataSet1: DataSet = Table1 UserName = 'Customers'   frxDBDataSet2: DataSet = Table2 UserName = 'Orders'   В дизайнере отчета подключим наши источники данных в окне "Отчет|Данные…".  Добавим на страницу бэнды "Данные 1 уровня"(master) и "Данные 2 уровня"(detail). И из панели данных (справа) вытащим на соответствующие бэнды поля таблиц (главной и подчинённой). Получится примерно так: Обратите внимание – бэнд "Данные 1 уровня" должен располагаться выше! Если разместить его под бэндом "Данные 2 уровня", FastReport сообщит об ошибке при запуске отчета. Сейчас при запуске мы увидим, что список заказов одинаковый для каждого клиента и содержит все записи из таблицы Orders. Это произошло потому, что мы не включили фильтрацию записей в таблице Orders. Вернемся к нашим источникам данных. У компонента Table2 установим свойство MasterSource = DataSource1. Таким образом мы установили связь "главный-подчиненный". Теперь надо задать условие фильтрации записей в подчиненном источнике. Для этого вызовите редактор свойства MasterFields у компонента Table2: Нам надо связать два поля CustNo в обоих источниках. Для этого выберите индекс CustNo в списке сверху, выберите поля и нажмите кнопку "Add". Связка полей переместится в нижнее окно. После этого закройте редактор кнопкой ОК. При запуске отчета FastReport сделает следующее. Выбрав очередную запись из главной таблицы (Customer), он установит фильтр на подчиненную таблицу (Orders). В таблице останутся только те записи, которые удовлетворяют условию Orders.CustNo = Customer.CustNo. Т.е. для каждого клиента будут показаны только его заказы: Аналогичным образом можно строить отчеты, содержащие до 6 уровней данных.
Читать
15 октября 2021

Отчет с двумя уровнями данных (master-detail) в Delphi/Lazarus на примере FastReport VCL / FMX

В этой статье я хочу вам рассказать о такой мощной возможности FastReport, как “многоуровневые отчёты” - можно сравнить их структуру с деревом “ствол, ветки потолще, из каждой растут потоньше, и так далее - вплоть до листиков” или со структурой предприятия “Отделы, подотделы, сотрудники”. Часто их называют “master-detail” или “главный-подчинённый” - и делаются такие отчёты из нескольких таблиц. В одной таблице список главных сущностей, в другой, связанной с первой, список подчинённых сущностей со ссылкой на первую - какой конкретно сущности из первой подчинена конкретная сущность из подчинённой. И так далее. FastReport поддерживает вложенность до 6 уровней (можно и больше, используя объект "Вложенный отчет", но об этом позже). В реальных приложениях редко приходится печатать отчеты с большой вложенностью данных; как правило, ограничиваются 1-3 уровнями. Пример разработки многоуровневого отчёта Рассмотрим создание на примере двухуровневого отчета. Он будет содержать данные из таблиц Customer и Orders. Первая таблица – это список клиентов, вторая – список заказов, сделанных клиентами. Таблицы содержат данные следующего вида: Customer: CustNo       Company1221          Kauai Dive Shoppe1231          Unisco1351          Sight Diver Orders: OrderNo       CustNo       SaleDate1003            1351          12.04.19881023            1221          01.07.19881052            1351          06.01.19891055            1351          04.02.19891060            1231          28.02.19891123            1221          24.08.1993 Как видно, вторая таблица содержит список всех заказов, сделанных всеми компаниями. Чтобы получить список заказов, сделанных конкретной компанией, из таблицы следует отобрать записи, у которых поле CustNo = номеру выбранной компании. Отчет, построенный на этих данных, будет выглядеть следующим образом: 1221       Kauai Dive Shoppe     1023       01.07.1988     1123       24.08.19931231       Unisco     1060       28.02.19891351       Sight Diver     1003       12.04.1988     1052       06.01.1989     1055       04.02.1989 Приступим к созданию отчета. Создадим новый проект в Delphi, на форму положим два компонента TTable, компонент TDataSource, два компонента TfrxDBDataSet и один TfrxReport.  Подключаем данные из базы к объектам отчёта Настроим компоненты следующим образом: Table1: DatabaseName = 'DBDEMOS' TableName = 'Customer.db' Table2: DatabaseName = 'DBDEMOS' TableName = 'Orders.db'   DataSource1: DataSet = Table1   frxDBDataSet1: DataSet = Table1 UserName = 'Customers'   frxDBDataSet2: DataSet = Table2 UserName = 'Orders'   В дизайнере отчета подключим наши источники данных в окне "Отчет|Данные…".  Добавим на страницу бэнды "Данные 1 уровня"(master) и "Данные 2 уровня"(detail). И из панели данных (справа) вытащим на соответствующие бэнды поля таблиц (главной и подчинённой). Получится примерно так: Обратите внимание – бэнд "Данные 1 уровня" должен располагаться выше! Если разместить его под бэндом "Данные 2 уровня", FastReport сообщит об ошибке при запуске отчета. Сейчас при запуске мы увидим, что список заказов одинаковый для каждого клиента и содержит все записи из таблицы Orders. Это произошло потому, что мы не включили фильтрацию записей в таблице Orders. Вернемся к нашим источникам данных. У компонента Table2 установим свойство MasterSource = DataSource1. Таким образом мы установили связь "главный-подчиненный". Теперь надо задать условие фильтрации записей в подчиненном источнике. Для этого вызовите редактор свойства MasterFields у компонента Table2: Нам надо связать два поля CustNo в обоих источниках. Для этого выберите индекс CustNo в списке сверху, выберите поля и нажмите кнопку "Add". Связка полей переместится в нижнее окно. После этого закройте редактор кнопкой ОК. При запуске отчета FastReport сделает следующее. Выбрав очередную запись из главной таблицы (Customer), он установит фильтр на подчиненную таблицу (Orders). В таблице останутся только те записи, которые удовлетворяют условию Orders.CustNo = Customer.CustNo. Т.е. для каждого клиента будут показаны только его заказы: Аналогичным образом можно строить отчеты, содержащие до 6 уровней данных.
Читать
25 января 2021

Установка и использование FastReport FMX 2.8 для FmxLinux

Совсем недавно был выпущен FastReport FMX 2.8 в котором включена поддержка фреймворка FMXLinux. В этой статье я хочу описать процесс установки и требования на примере установки триальной версии FastReport FMX 2.8, Embarcadero RAD Studio 10.4.1, FmxLinux 1.52 из поставки GetIT и Ubuntu 20.04.1. Мы не будем углубляться в установку и настройки компиляции для Linux. Об этом можно почитать на сайте Embarcadero: Linux Application Development и FireMonkey for Linux. Вот краткий список шагов которые нужно сделать перед установкой FastReport FMX  2.8(Если вы уже настроили компиляцию под Linux и FmxLinux приложение уже успешно компилируется, можно пропускать данные шаги):  Установить Linux или использовать уже готовый (Статья основывается на Ubuntu 20.04.1); Установить dev пакеты gcc и пакеты curl. Embarcadero рекомендует это делать через : 1 sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 В этом случае dev пакет 7zip установит все зависимости включая gcc (бинарные файлы триальной версии FastReport FMX 2.8 собраны с gcc 9 !); Установить dev пакеты zlib, для Ubuntu это: 1 sudo apt-get install zlib1g-dev Установить зависимые пакеты x11, gtk3 через: 1 sudo apt install libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 Я устанавливал на чистую виртуальную машину, поэтому свел все до одной команды:  1 sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 zlib1g-dev libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0    Установить PAServer(см. Linux Application Development);  Установить FmxLinux через GetIt (Tools > GetIt Package Manager);   Подключиться к Linux и скачать SDK.   Установка FastReport FMX 2.8 для FmxLinux ничем не отличается от обычной установки FastReport FMX 2. Нужно скачать установщик, для примера триальной версии отсюда и закрыть среду разработки. Все пути для компиляции установщик добавит сам. FastReport FMX 2.8 готов к использованию! Можно проверить как FastReport FMX работает под Linux. Запустим среду разработки (в моем случае Embarcadero RAD Studio 10.4.1) и откроем стандартный демонстрационный пример с отчетами. Который можно найти в папке установки FastReport FMX 2, по умолчанию C:\Program Files (x86)\FastReport FMX 2 Trial\Demos\Main.Откроем проект и выберем платформу. Теперь нужно убедиться, что все файлы будут переданы на сервер (Project>Deployment), в моем случае отсутствовал флажок напротив стандартной MIDAS библиотеки для доступа к данным. Проблема решается выбором библиотеки для соответствующей платформы. Можно компилировать проект и запускать. Теперь можно выбрать отчет и открыть дизайнер на редактирование. Построить отчет и показать его в окне предварительного просмотра. И, конечно, сделать экспорт в доступный формат. Как и для других платформ, возможно использовать утилиту recompile для смены языка и перекомпиляции бинарных файлов.В ней нужно выбрать путь к библиотекам FmxLinux (по умолчанию C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\FmxLinux-1.52\lib\Release для Embarcadero RAD Studio 10.4.1), версию компилятора, версию gcc, и версию FastReport. Тут важно отметить, что recompile использует пути SDK из реестра среды разработки, поэтому SDK для Linux по умолчанию уже должен быть настроен из среды Embarcadero RAD Studio перед началом использования. Попробуем сменить язык. Скомпилируем и запустим пример еще раз. Язык изменен. Как можно заметить, установить и использовать FastReport FMX 2.8 для FmxLinux довольно просто.
Читать