logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Сохранение отчета в облачные сервисы из кода пользовательского приложения
  • Запуск приложения с FastReport .NET в Docker под Linux

    17 ноября 2021 г.

    Docker – это программная платформа для быстрой разработки, тестирования и развертывания приложений. Благодаря нему мы

    Подробнее
  • Копирование бэндов отчета в другой со всем содержимым.

    31 марта 2021 г.

    Иногда возникает необходимость использовать части одного отчета в другом. В простых случаях для этого можно

    Подробнее
  • Установка FastReport Business Graphics в FastReport .NET

    25 ноября 2021 г.

    FastReport Business Graphics – это библиотека, содержащая несколько продвинутых способов визуализации данных. На сегодняшний день

    Подробнее
  • Как использовать Online Designer в ASP .NET Core

    17 января 2018 г.

    Одной из новинок FastReport .NET 2018 стала адаптация OnlineDesigner под фреймворк .NET Core. В целом, онлайн

    Подробнее
  • Отчёт из PostgreSQL в приложении .NET 5 под управлением Astra Linux

    4 декабря 2020 г.

    Сегодня мы поговорим о российской операционной системе Astra Linux. Эта система получила в последнее время

    Подробнее

Сохранение отчета в облачные сервисы из кода пользовательского приложения

22 августа 2017 г.

В режиме предварительного просмотра вам доступны не только экспорты отчета, но и некоторые варианты сохранения отчета, например, Box, DropBox, GoogleDrive и другие. В меню «Сохранить» выделена специальная секция с вариантами сохранения отчета в различные облачные сервисы:

 

Нам доступны:

1)      Box;

2)      Dropbox;

3)      FastCloud;

4)      GoogleDrive;

5)      OneDrive;

6)      XMPP.

Последний вариант использует облачные сервис FastCloud для хранения и построения отчетов. По протоколу XMPP передается ссылка на отчет в jabber клиент. Использование этих вариантов сохранения не вызывает сложностей, если вручную задавать настройки в режиме предварительного просмотра. Но как же автоматизировать процесс сохранения, с помощью кода?

Об этом и пойдет речь в этой статье.

За исключением FastCloud все облачные сервисы используют авторизацию типа OAuth. Это протокол авторизации, который позволяет вам без использования реальных логина и пароля от сервиса дать доступ приложению к облачному сервису. При этом вы можете ограничить права доступа. Вам будет выдан идентификатор и секретный ключ, которые нужно использовать для авторизации.

Чтобы получить идентификатор (Client Id) и ключ (Client secret) вам нужно создать приложение и зарегистрировать его на OAuth сервере вашего облачного сервиса.

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

1)      Для сервиса Box:

Прежде всего необходимо добавить библиотеку FastReport:

using FastReport;

Создаем экземпляр класса ClientInfo, который будет содержать информацию для авторизации:

1
2
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = 
new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");

ClientInfo можетприниматьтрипараметра: ClientName, ClientId и ClientSecret. Внашемслучае, требуется ClientId и ClientSecret. Затем создаем клиент GoogleDrive для сохранения отчета:

1
2
FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = 
new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo);

Создаем объект отчета и загружаем в него отчет:

1
2
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

Если нужно сохранить отчет в формате отличном от нативного fpx (формат предварительного просмотра отчета), то нужно создать экземпляр экспорта:

1
 FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();

 Сохраняем отчет с помощью клиента:

1
client.SaveReport(report, pdf);

Если вы сохраняете отчет в формате fpx, вместо второго параметра можно передать null:

1
 client.SaveReport(report, null);

2)  Для DropBox немного отличается. В рамках OAuth можно также использовать access token. Это ключ доступа, который генерируется в результате удачной авторизации. Передав такой токен, мы как бы восстанавливаем предыдущую авторизацию. Создаем клиент для DropBox и передаем ему access token в текстовом формате:

1
2
FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = 
new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken");

Настройки прокси:

1
2
3
4
5
drop.ProxySettings.Server = "";
drop.ProxySettings.Port = 999; 
drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
drop.ProxySettings.Username = "Username";
drop.ProxySettings.Password = "Password";

Далее, как и в предыдущем примере:

1
2
 Report report = new Report();
 report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

Сохраняем отчет:

1
 drop.SaveReport(report, null);

 3)  Для GoogleDrive:

1
2
3
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = 
new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");
GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo);

Настройки прокси, если нужно:

1
2
3
4
5
 client.ProxySettings.Server = "";
 client.ProxySettings.Port = 999; 
 client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
 client.ProxySettings.Username = "Username";
 client.ProxySettings.Password = "Password";

Создаем отчет:

1
2
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

Создаем экспорт:

1
FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();

 Сохраняем отчет:                 

1
client.SaveReport(report, pdf);

 4)  Для OneDrive:

1
2
3
4
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = 
new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");
FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = 
new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo);

Настройки прокси, если нужно:         

1
2
3
4
5
one.ProxySettings.Server = "";
 one.ProxySettings.Port = 999; 
 one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
 one.ProxySettings.Username = "Username";
 one.ProxySettings.Password = "Password";

 Создаем отчет:

1
2
3
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
one.SaveReport(report, null);

 5)  Для FastCloud тоже есть отличия. Здесь не используется протокол OAuth. Авторизация проводится по почтовому адресу и паролю. Создаем клиент FastCloud:

1
2
FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = 
new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient();

Присваиваем токен. Для формирования токена используем метод GetAccessToken:

1
fast.AccessToken = fast.GetAccessToken("email@mail.com", "password");

Создаем экземпляр экспорта:

1
2
3
4
5
FastReport.Export.RichText.RTFExport rich = 
new FastReport.Export.RichText.RTFExport();
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
fast.SaveReport(report, rich);

 6)  Отправка отчета в Jabber(XMPP). Предварительно нам нужно создать xmpp клиент:

1
2
FastReport.Messaging.Xmpp.XmppMessenger messenger = 
new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp");

 Если нужно настроить Proxy:

1
2
3
4
5
messenger.ProxySettings.Server = "server";
messenger.ProxySettings.Port = 999;
messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
messenger.ProxySettings.Username = "username";
messenger.ProxySettings.Password = "password";

 Затем, или до этого, создаем объект отчета:

1
2
Report report = new Report();
report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

 И передаем его xmpp клиенту:

1
messenger.SendReport(report, null);

Выполнив этот код, мы отправляем отчет в облачный сервис FastCloud и сообщение со ссылкой на отчет пользователю jabber. Ссылка в xmpp клиенте выглядит так:

https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2

О продукте Скачать Купить
avatar
Dmitriy Fedyashov
Технический писатель
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport

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

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

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