С релизом новой версии для Delphi направления 2023.3 произошли изменения во внутренней инфраструктуре продуктов. В этой статье мы рассмотрим установку компонентов FastReport в Lazarus.
Содержание статьи:
1. Что нового?
2. Сравнение редакций и продуктов;
3. Установка продуктов в Lazarus;
3.1 Установка Lazarus для Windows;
3.2 Установка Lazarus для Linux;
3.3 Установка пакетов в Windows;
3.4 Установка пакетов в Linux.
Продукт для генерации отчетов FastReport состоит из нескольких компонентов, в частности из движка скрипта, ядра построения отчета, пакетов локализации. Эти компоненты распространяются и в Rad Studio, и в Lazarus.
В Lazarus появились новые пакеты. Ранее смена языка требовала большой перекомпиляции, теперь же у нас появился пакет frLocalizationLibrary.lpk который управляет сменой языка. Каждый язык представлен в виде отдельного пакета, например frLanguageGermanPkg.lpk, frLanguageJapanesePkg.lpk, …
Английский язык, как и ранее, выбран по умолчанию поэтому отдельного языкового пакета под английский язык нет.
Смена языка не требует даже перезапуска приложения, его можно менять прямо в процессе работы.
Для смены языка нужно:
1. Положить на форму компонент TfrLocalizationController (из пакета frLocalizationLibrary.lpk);
2. В его свойстве Language выберете нужный язык (например, Italian), список языков зависит от установленных в IDE пакетов;
3. Добавьте в инспекторе проекта языковой пакет (например, frLanguageItalianPkg);
4. В коде основного юнита в разделе uses добавьте имя пакета без окончания Pkg (например, frLanguageItalian).
А также были выделены пакеты frCoreLibrary.lpk и frGraphicsLibrary.lpk, которые не добавляют новых компонентов, но хранят в себе общий код для различных продуктов.
Для удобства все пакеты, имеющие расширение .lpk, перенесены в одну директорию. Теперь пользователям не придется искать вручную в папках конкретные пакеты.
Остальные файлы, как и ранее распределены по директориям, ибо это необходимо самому Lazarus.
Дополнительно был адаптирован продукт FastCube для платформы Lazarus. Попробуйте встроить FastCube в свой проект с помощью триальных компонентов.
Нагляднее всего будет рассмотреть продукты изучая какие пакеты в них входят.
Название пакета |
Описание пакета |
FastScript |
FastReport |
FastCube |
fs_lazarus.lpk |
библиотека для выполнения скриптов |
+ |
+ |
+ |
frCoreLibrary.lpk |
вспомогательный пакет с реализацией общего базового функционала |
+ |
+ |
+ |
frLocalizationLibrary.lpk |
пакет для управления языками |
+ |
+ |
+ |
frLanguage*Pkg.lpk |
40 языковых пакетов |
+ |
+ |
+ |
frGraphicsLibrary.lpk |
вспомогательный пакет с реализацией общего графического функционала |
- |
+ |
- |
fr_lazarus.lpk |
пакет со всеми основными компонентами продукта |
- |
+ |
- |
frxchartlazarus.lpk |
пакет для chart-ов(диаграмм) |
- |
+ |
- |
frxe_lazarus.lpk |
пакет с экспортами |
- |
+ |
- |
frxlazdbf.lpk |
пакет для работы с БД формата BDF |
- |
+ |
- |
frxlazsqlite.lpk |
пакет для работы с СУБД SqLite |
- |
+ |
- |
frxPDFlazarus.lpk |
пакет для отображения PDF документов(только для Windows) |
- |
+ |
- |
frxrichlazarus.lpk |
пакет для отображения Rich документов(рекомендуется только для Windows ввиду ограничений базового пакета) |
- |
+ |
- |
frCS_lazarus.lpk |
пакет с клиент-серверными компонентами, с ними вы можете познакомиться тут |
- |
+* |
- |
fcxLazarus.lpk |
пакет со всеми основными компонентами продукта |
- |
- |
+ |
fcxprint.lpk |
пакет для интеграции с FastReport |
- |
- |
+ |
fcxprintTee.lpk |
пакет для интеграции с FastReport Chart(диаграммы) |
- |
- |
+ |
fcxScript.lpk |
пакет для интеграции с FastScript |
- |
- |
+ |
fcxexport.lpk |
пакет с экспортами FastCube |
- |
- |
+ |
fcxCharting.lpk |
пакет для chart-ов(диаграмм) В FastCube |
- |
- |
+ |
*Клиент-серверные компоненты входят в FastReport только в лицензии Enterprise.
Дополнительно рассмотрим Trial и Academ лицензии соответствующих продуктов. Trial нужна для тестирования продукта перед покупкой, Academ используется в образовательных целях и не применяется в коммерческих проектах.Обе лицензии включают в себя предварительно скомпилированные версии урезанных пакетов.
FastScript - Trial имеет одно ограничение - недоступен запуск скриптов.
Ограничения FastReport - Trial:
Ограничения FastReport - Academ:
FastCube Trial имеет одно ограничение - в случайных ячейках вместо данных выводится текст “TrialString”.
Установка FastReport в Lazarus
Начнём с установки, собственно, Lazarus. В самом начале нам нужно поставить ПО под свою операционную систему.
Первым делом скачиваем установочный пакет Lazarus с официального сайта и выбираем разрядность своей системы.
Для Windows установщик Lazarus-а укладывается всего в один .exe файл и с ним не должно возникнуть проблем.
Далее мы скачиваем с официального сайта нужную версию архива.
Из скаченного архива копируем содержимое в C:\Windows\System32 и C:\Lazarus, после чего перезагружаем Windows. Затем запускаем Lazarus и настраиваем его. Просто нажимаем «ок» и соглашаемся с настройками по умолчанию.
Есть 2 способа установить Lazarus в Linux. Первый способ - через менеджер пакетов. Для этого введите в терминал одну из следующих команд:
// DEB Users - sudo apt-get install lazarus // RPM Users - sudo yum install lazarus // or sudo dnf install lazarus
Это очень быстро и просто, но данная команда установит “стабильную” версию Lazarus (имеется в виду последнюю оттестированную версию на вашем дистрибутиве, причём для разных дистрибутивов они будут отличаться). Стабильная версия может отставать от актуальной (самой последней) версии.
В отличие от Delphi и Rad Studio наши компоненты не поддерживают старые версии Lazarus. Тем самым возможны ситуации в которых наши продукты не заработают под стабильной версией. И в отношении Lazarus наши компоненты разрабатываются только на актуальной версии Lazarus.
Особенно актуально это для крупных (релизных) обновлений Lazarus. Если же стабильная версия отличается от актуальной незначительно, то есть большой шанс на корректную работу наших компонентов. Наша компания не несёт ответственности за корректную работу с этой версией. Вы как пользователь делайте это “на свой страх и риск”. В худшем случае вы потеряете немного времени на обновление Lazarus до актуального.
Но еще важнее это в отношении предварительно скомпилированных компонентов (Trial и Academ редакции). Самая главная особенность предварительно скомпилированных пакетов в Lazarus состоит в том, что они будут работать только на той версии Lazarus, на которой они компилировались (то есть на актуальной).
Поэтому мы рекомендуем вам воспользоваться вторым способом, а именно ручной установкой пакетов.
Как и в Windows в первую очередь скачиваем установочный пакет Lazarus с официального сайта (https://www.lazarus-ide.org/).
Каждый пункт в данном списке состоит из 4 файлов (3 пакета-установщика и текстовый файл).
- Установочный пакет Lazarus(project);
- Установочный пакет fpc-src;
- Установочный пакет fpc(laz);
- Файл README.txt.
Важно установить их в правильном порядке. Сначала fpc(laz), затем fpc-src и в последнюю очередь Lazarus(project).
Немного подробнее рассмотрим сам процесс установки. Дело в том, что последний пакет Lazarus(project) в большинстве дистрибутивов будет иметь около 100 отсутствующих зависимостей.
Поэтому проще всего устанавливать пакеты через какое-нибудь графическое вспомогательное приложение (например, QApt или GDebi), которое самостоятельно скачает необходимые вспомогательные пакеты.
Но если вы будете пользоваться более простыми утилитами, которые не умеют автоматически скачивать зависимости (например dpkg), то после установки вам придется установить их самим. Это зачастую делается очень просто. В нашем примере после установки пакета с ошибкой о нерешенных зависимостях вам будет достаточно ввести следующую команду:
sudo apt-get -f install
На этом установка Lazarus в Linux будет завершена.
Заранее устраним проблему со шрифтами. Во всех операционных системах есть шрифты, которые установлены по умолчанию. Так, например, шрифт Arial по умолчанию есть и в Windows и скажем в Ubuntu. Но по факту Arial установленный по умолчанию в Ubuntu это не тот же самый Arial установленный в Windows, потому текстовые отчеты, созданные в Windows Lazarus будут плохо выглядеть в Linux Lazarus (и наоборот).
Чтобы этого избежать сразу установим в Linux шрифты как в Windows. Для Ubuntu это можно сделать командой:
sudo apt-get install msttcorefonts
Но для других Linux дистрибутивов команда может отличаться. Далее для корректной работы SqLite требуется установить следующие пакеты: sqlite3, libsqlite3-dev. Подробнее можно почитать тут. (https://wiki.freepascal.org/SQLite).
Для Ubuntu это можно сделать командой:
sudo apt-get install sqlite3 libsqlite3-dev
Запускаем Lazarus и настраиваем его. Нажимаем «Ок» и соглашаемся с настройками по умолчанию.
Наш новый установщик в Windows сам установит все пакеты за вас. Просто запустите его и следуете инструкции.
Отдельно стоит отметить то, что вам не придется искать директории Lazarus-а по всему компьютеру, достаточно использовать файлы настроек, генерируемые при установке Lazarus. Поэтому наш установщик не сможет найти ваш 2 или 3 Lazarus, который вы скопировали руками.
Если вы хотите, чтобы на вашем устройстве было несколько Lazarus и в каждом стоял Fastreport или другой наш продукт, то для установки второй копии Lazarus запускайте установщик Lazarus и ставьте галочку “мультиустановка”.
Для Linux нужно скачать с официального сайта соответствующий .deb или .rpm пакет и установить его. В данный момент они просто распаковываются в соответствующую папку в директории “/usr/share/…”. Директория указана в описании самого пакета.
В Linux пока не планируется автоматическая установка пакетов аналогичная Windows.
Если вы новичок в Linux, то рекомендуем скопировать разархивированный продукт в вашу домашнюю директорию(“/home/username/”) чтобы не заморачиваться с правами доступа.
Как и говорилось выше все .lpk файлы собраны в папке Lpks. Для установки пакетов нажимаем Пакет (Package) -> Открыть файл пакета *.lpk (Open Package File .lpk), выберете пакет в файловом менеджере и у вас появится следующее окно:
В нем для Professional и выше нажмите компилировать (Compile), дождитесь окончания компиляции и нажмите использовать (Use).
Для Academic и Trial сразу нажмите использовать (Use). После установки каждого пакета Lazarus будет перезагружаться.
Ранее мы указывали строгий порядок установки пакетов. Но из-за множества причин (возросшего количества пакетов, усложнения связей между пакетами, а также учитывая, что они все лежат в одной папке) данный подход стал не актуален. Вы без проблем сможете найти пакет, который отображается в зависимостях у того, который вы хотите установить.
Впрочем, вы можете установить все пакеты разом, а Lazarus сам будет разбираться с порядком компиляции, для этого:
1. В Lazarus выберите “Пакет” -> “Открыть файл пакета (.lpk)”;
2. Выделите все требуемые пакеты и нажмите “открыть”;
3. Выберете “Пакет” -> “Установить/Удалить пакеты”;
4. В колонке “Доступные для установки” (справа) выберите нужные пакеты;
5. Нажмите “Сохранить и перезапустить IDE”.
До версии 2.0.0 очень часто встречалась ошибка компиляции и (или) установки, в момент написания этого документа последней версией является 2.2.6 и эту ошибку в Lazarus до сих пор полностью не убрали, но значительно сократили её вероятность.
Если у вас 1 из пакетов не будет компилироваться или устанавливаться, то вам придется опуститься вниз и перекомпилировать или переустановить зависимости пакета.
Для этого нажмите по необходимому пакету двойным кликом мыши и перекомпилируйте, а после переустановите.
После удачной установки всех пакетов нажмите Проект (Project) -> Открыть проект (Open Project) и откройте проект fast-report\LDemo\FRDemo.lpi и попробуйте его запустить, после чего нажмите кнопку Design.
Если у вас выдаст вот такую ошибку отрицательной высоты в Linux:
В некоторых редких GTK интерфейсах можно встретить этот баг. Просто запускайте приложение без отладки или же поставьте галочку напротив «Игнорировать этот тип исключений».
*Или смените графическую оболочку. Например, эта ошибка не проявляется в GTK оболочке KDE Plasma.
Последний нюанс, который вам важно знать, при создании своих проектов, что наш дизайнер использует многопоточность, которая в Linux Lazarus по умолчанию отключена. Для того чтобы её включить, откройте в инспекторе проекта (Проект -> Инспектор проекта) файл с расширением «.lpr» и допишите в первым пунктом в uses юнит cthreads.