logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Загрузка объектов в FastReport VCL с помощью протоколов http и https
  • Использование интерактивных карт в FastReport VCL 2021

    30 апреля 2021 г.

    Представляем вам заключительную статью по курсам образовательной программы «Академик». В предыдущих публикациях было рассмотрено

    Подробнее
  • Построение отчетов с диалоговыми формами

    26 апреля 2021 г.

    В предыдущих статьях по образовательной программе Академик мы научились устанавливать FastReport в Lazarus, освоили работу

    Подробнее
  • Работа и тонкая настройка штрих-кода ITF-14 в Delphi / Lazarus

    7 сентября 2021 г.

    С версией FastReport VCL 2021.2 был добавлен новый штрих-код ITF-14. Напомню, что ITF-14 (Interleaved Two

    Подробнее
  • Как добавить Swiss QR-код в счёт на Delphi и Lazarus

    2 июня 2020 г.

    Сейчас многие страны проводят «диджитализацию» платежных систем, то есть оцифровывание. Самый распространенный способ автоматизации платежей

    Подробнее
  • Использование ресурсов для хранения отчетов FastReport

    1 декабря 2021 г.

    Бывают ситуации, когда нужно ограничить пользователям программы возможности изменения и копирования отчётов. Главное это реализовать

    Подробнее

Загрузка объектов в FastReport VCL с помощью протоколов http и https

13 сентября 2021 г.

Одна из ключевых задач генератора отчетов - получение данных. Чаще всего, для хранения и получения данных используются базы данных. Но что делать, если для хранения определенных данных используются удаленные облачные хранилища? Как загрузить в отчет логотип компании по http, чтобы он при этом всегда был актуальным?

Для решения этих задач в FastReport VCL 2021.3 мы добавили поддержку протоколов и возможность загружать данные через протоколы в такие объекты, как: Карты, Картинка, Текст, объект PDF, объект HTML. У ряда объектов появилось новое свойство DataLink, которое включает дополнительные свойства для обработки ссылок. Такие ссылки всегда начинается с имени схемы, за которой следует разделитель. Пример <схема>:[//путь] . Схемой в большинстве случаев выступают протоколы такие, как http и https.

Загрузка данных по ссылкам в FastReport VCL

FastReport VCL основан на модульной архитектуре, функционал http и https не исключение, и вынесен в отдельный пакет вместе с интернет транспортами. Поэтому, для работы ссылок по протоколам http и https необходимо подключить модуль frxTransportHTTP в uses секцию приложения или добавить один из интернет транспортов на форму приложения.

Список интернет транспортов на палитре компонентов

Важно! Для работы протокола https необходимы следующие библиотеки Open SSL: ssleay32.dll и libeay32.dll их можно найти в директории с главным демо приложением.

Запустим дизайнер отчетов и создадим новый отчет. Добавим на страницу отчета бэнд «Заголовок отчета» и объект картинку на него. Отчет должен выглядеть следующим образом.

Пример созданного отчета

Выделим объект «Картинка» и перейдем в инспектор объектов. В инспекторе объектов нужно найти свойство DataLink. Для быстрого поиска можно воспользоваться фильтром, встроенным в инспектор объектов, введя имя искомого свойства.

Поиск свойства DataLink

Рассмотрим значение дочерних свойств DataLink:

Link – ссылка с схемой (протоколом), в формате <схема>:[//путь]. Данные будут загружены из указанной ссылки.

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

[] – Пусто. Данные загружаются в режиме редактирования шаблона, по клику пользователя на редактор загрузки. Используется если данные нужно получить только один раз, и хранить их в шаблоне.

Кнопка редактора загрузки в дизайнере отчетов

  • [dltOnGetData] – По умолчанию. Данные загружаются в объект в момент построения отчета. В данном случае в шаблоне данные объекта не сохраняются. При каждом построении объект получает новые данные по ссылке.
  • [dltOnPreview] – Данные загружаются в момент предпросмотра, экспорта или печати отчета. В данном случае, построенный отчет хранит ссылку на данные и загружает их каждый раз, когда пользователь загружает построенный отчет. Может использоваться для получения актуальных данных в построенном отчете, без его повторного построения.
  • [dltOnGetData, dltOnPreview] – Гибридный режим. При построении, объект получает данные по ссылке и сохраняет их в построенном отчете. Так же, сохраняется и ссылка на данные. При загрузке построенного отчета с таким объектом, объект попытается загрузить данные аналогично как при [dltOnPreview] но, если загрузка данных была неудачной, будут показаны данные, полученные при построении отчета.
  • ProcessingType – значение которое определяет, как будет обработана ссылка в момент построения отчета: dpString – как обычная строка, dpExpression – как выражение скрипта отчета.

Установим свойство DataLink.Link у объекта «Картина» ссылкой на картинку с сайта, к примеру. Запустим отчет на выполнение.

Пример построенного отчета

Аналогичным образом можно загружать и другие объекты, такие как: Текст, Картинка, Карты, HTMLView, PDFView.

По ссылкам можно обращаться к Web API для получения данных, к примеру, OSM карт.

Создадим новый отчет с бэндом «Заголовок отчета» и объектом Карты с пустым слоем (Как создать объект "Карты" можно посмотреть в нашей документации).

Созданный отчет с картой

Теперь выделим слой карты MapFileLayer1 и перейдем к свойству DataLink.Link в инспекторе объектов. Для загрузки OSM карт можно воспользоваться OpenStreetMap API. Попробуем отобразить выбранную область в FastReport VCL. API ссылка будет выглядеть следующим образом: https://www.openstreetmap.org/api/0.6/map?bbox=-6.7234%2C61.6283%2C-6.697%2C61.6379 , вставим ее в свойство DataLink.Link. Запустим отчет на построение.

Отчет с использование OpenStreetMap API в предпросмотре

Данные с сервера загрузились в объект карты автоматически.

Больше чем просто гиперссылки

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

Схема взаимодействия свойства DataLink с фабрикой протоколов

Как же добавить интернет транспорт и использовать ссылки на приватный Google Drive?

Сделать это можно всего в несколько шагов:

  1. Открыть палитру компонентов с интернет транспортами.
  2. Добавить TfrxGoogleDriveIOTransport на форму приложения.
  3. Назначить компоненту имя. Имя будет использоваться как схема-протокол у ссылки доступа. В примере мы назвали его “GDRIVE”.

FastReport VCL

  1. Установить подключение к Google Drive через меню “Edit connection” (подробней можно посмотреть в другой нашей статье).

FastReport VCL

  1. Запустить дизайнер отчета и создать отчет, проделав шаги как в начале статьи при создании отчета с картинкой.
  2. В свойстве DataLink.Link нужно указать ссылку на файл в Google Dive, но вместо схемы(протокола) указать имя транспорта. В нашем случае это “GDRIVE“. Ссылка будет выглядеть следующим образом GDRIVE://LogoF.PNG. Можно запустить отчет на исполнение.

FastReport VCL

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

Аналогичным образом можно подключаться к другим интернет транспортам. Это один из немногих мощных инструментов, которые появились с выходом FastReport VCL 2021.3 и которые, вы, можете использовать для улучшения своих проектов.

О продукте Скачать Купить
avatar
Den Zubov
VCL разработка
Fast Reports Team: Den Zubov - VCL Development at Fast Reports
VCL Lazarus FastReport Delphi HTTPS

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой