Как сохранять отчет в облачные сервисы с помощью FR VCL 6

18.01.2018

Мы привыкли загружать и сохранять отчеты на локальный диск работая с десктоп приложением. Альтернатива этому – клиент серверное приложение. При этом отчеты будут храниться на удаленном сервере. Но, что если нет возможности разворачивать удаленный сервер, а сохранять отчеты хочется на общем ресурсе?

Конечно, вы можете вручную переносить свои отчеты в веб хранилища. Однако FastReport VCL 6 предлагает нам гораздо более удобный способ – хранение отчетов в облачных сервисах.

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

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

Что же нам предлагает FastReport VCL 6? Возможность сохранять отчеты в четыре облачных сервиса: DropBox, GoogleDrive, OneDrive, Box.com. Причем можно сохранять не только построенный отчет в формате .fp3 или экспорт, но и сам шаблон отчета в формате .fr3.

Доступ к данным осуществляется посредством приложений. Я хочу рассмотреть два примера создания таких приложений:

На примере Google Drive.

1)      Вам необходимо предварительно создать проект. Сделать это можно в консоли разработчика:

https://console.developers.google.com/

Нажимаем на заголовок «Создать приложение». Затем вводим имя приложения и принимаем условия использования, которые предлагает нам Google.

2)      Теперь, в наш проект необходимо добавить библиотеку Google Drive API. Это можно сделать на вкладке «Библиотека». Итак, выбираем библиотеку и нажимаем кнопку «Включить».

3)      Чтобы использовать подключенную библиотеку нам предлагается создать учетные данные. Нажимаем кнопку «Создать учетные данные».

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

Выбираем способ обращения к данным - данные пользователя.

Задаем идентификатор клиента OAuth 2.0. Вводим произвольное название (например, TestUser) и нажимаем кнопку «Создать идентификатор клиента».

Далее нам предлагается скачать json файл с учетными данными. Нажимаем «Не сейчас».

4)      Теперь, на вкладке «Учетные данные» у нас появился TestUser. Нажимаем на это имя и переходим к учетным данным клиента. Client ID и Client Secret мы будем использовать в FastReport при сохранении или загрузке отчета.

Пример с DropBox. Для работы с его API нам потребуется создать приложение на платформе этого сервиса.

1)      Логинимся на веб странице https://www.dropbox.com.

2)      Создаем новое приложение здесь: https://www.dropbox.com/developers/apps/create.

Выбираем тип приложения – Dropbox API.

3)      На втором шаге выбираем тип доступа – доступ только к папке приложения или ко всему хранилищу. Выбираем первый вариант.

4)      На третьем шаге задаем имя приложения. Тут придется постараться, чтобы не повторить существующее.

5)      На странице настроек приложения мы видим App Key. На этой странице нам необходимо добавить Redirect URIs. После авторизации в DropBox необходимо вернуться к вашему веб приложению. Для этого и нужно задать Redirect URI. Но, так как у меня нет веб приложения я указал ссылку на локальный компьютер – http://localhost.

Теперь вы можете получить доступ к DropBox из FastReport.

Итак, мы рассмотрели два примера создания приложений с API облачного хранилища. Для сервисов OneDrive и BOX.com вам также потребуется использовать API посредством приложения.

Теперь посмотрим, как сохранять и загружать отчеты из облачных хранилищ.

Как вы помните, нам доступно два формата сохранения – fr3 и fp3. Первый – формат хранения шаблона отчета, второй – формат хранения подготовленного отчета, то есть шаблон заполненный данными.

Для сохранения шаблона отчета (fr3) в облачный сервис используем меню Файл->Сохранить как. Далее выбираем один из доступных облачных сервисов:

 

1)      Вы выбрали Dropbox. Появляется окно вида:

 

Здесь мы вводим ключ приложения, если нужно, выбираем директорию сохранения в вашем хранилище Dropbox. Далее есть возможность ввести логин и пароль от аккаунта Dropbox, но безопасность при этом пострадает. Так, что игнорируем эту опцию и нажимаем ОК.

Вкладка Proxy соответственно содержит настройки Proxy, если нужно:

После этого, нам предложат авторизоваться в сервисе DropBox и разрешить приложению доступ к данным.

В итоге получаем окно с содержимым папки нашего приложения в DropBox. Пока еще она пуста. Сохраним в нее отчет:

 

 2) Вы выбрали GoogleDrive. В этом случае мы получаем окно:

Здесь все понятно, вводим идентификатор клиента и секретный код, которые мы получили при создании учетной записи в проекте на GoogleDrive. Нажимаем Ок.

При этом, приложение запросит разрешение на доступ к данным. Нажимаем кнопку «Разрешить» и получаем содержимое хранилища:

Для наглядности, папка уже имеет один сохраненный отчет.

3) Если вы выбрали OneDrive. При сохранении вы увидите такое окно:

Оно напоминает нам окно подключения к DropBox. Здесь тоже требуется идентификатор приложения. После аутентификации мы получим окно сохранения файла:

4)  Если вы выбрали BOX.com. В этом случае мы увидим окно подключения, похожее на GoogleDrive:

Вводим идентификатор клиента и секретный ключ. После аутентификации мы увидим окно сохранения файла:

 

Чтобы открыть сохраненный в облачном сервисе отчет, также воспользуемся меню Файл->Открыть:

Здесь, формы подключения к сервисам абсолютно такие же, как и при сохранении. Отличается лишь последнее окно. Теперь это окно выбора файла:

Теперь о сохранении файла подготовленного отчета. Для этого необходимо запустить отчет в режиме предварительного просмотра. Для сохранения используем иконку с дискетой:

Открыть отчет в формате fp3 не получится. Возможно в следующих версиях появится эта возможность.

Чтобы сохранить экспорт в облачный сервис, нажимаем на иконку дискеты и выбираем нужный формат экспорта. На форме настроек экспорта выбираем куда его сохранить:

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.