Как использовать коннекторы к БД из репозитория Nuget

28.05.2018

FastReport .NET уже давно поставляет плагины – коннекторы к различным базам данных. Эти плагины позволяют добавлять коннекторы в дизайнер отчетов для подключения к нужной базе данных. Цель создания этих плагинов-коннекторов – упростить процесс подключения к источнику данных.

Однако есть одно неудобство в использовании таких плагинов – их необходимо предварительно скомпилировать. А для этого нужно сначала скачать сторонние библиотеки с сайта разработчика СУБД. Но, зато, единожды скомпилировав плагин вы можете им пользоваться сколь угодно долго.

FastReport теперь распространяет эти коннекторы в виде библиотек через менеджер пакетов Nuget. Это актуально как .NET Framework 4 приложений, так и для ASP .NET Core. Теперь мы избавлены от необходимости компилировать плагины со сторонними библиотеками, за что большое спасибо разработчикам FastReport.

Поговорим об особенностях использования этих библиотек. Чтобы создать отчет, вам нужно вызвать дизайнер. С плагинами вы бы использовали отдельную программу Report Designer, и это удобно.  Но с установленными библиотеками-коннекторами вам придется вызывать дизайнер из вашего приложения, чтобы воспользоваться этими коннекторами в своем отчете.

Если для WinForms приложений вызвать дизайнер отчета из кода пара пустяков, то в .NET Core приложениях это невозможно. Конечно, для веб разработки отчетов существует Online Designer, но это уже совсем другая история. Поэтому вам придется предварительно создать WinForms приложение, установить нужный коннектор в него и вызвать дизайнер отчетов. Либо воспользоваться уже скомпилированным приложением Designer.exe которое идет в комплекте поставки FastReport, но в таком случае список поддерживаемых СУБД будет ограничен (MS SQL поддерживается).

Давайте же теперь рассмотрим все это на примере. Создадим тестовое WinForms приложение и добавим в него библиотеки FastReport .NET. А также попробуем установить коннекторы из менеджера Nuget.

Из рисунка видно, что нам доступны коннекторы к базам данных: MsSql, MySql, Postgres, SQLite, Json, MongoDB, RavenDB.

Давайте попробуем подключиться к источнику данных Json. Устанавливаем соответствующий коннектор из Nuget.

На форму добавим кнопку и следующий код для нее:

1
2
3
4
5
6
7
8
9
10
using FastReport;
using FastReport.Data;
using FastReport.Utils;

 private void button1_Click(object sender, EventArgs e)
 {
 new JsonAssemblyInitializer();
 Report report = new Report();
 report.Design();
 }

В первой строке обработчика события нажатия кнопки мы инициализируем добавленный JSON коннектор. Затем создаем объект отчета и вызываем дизайнер.

В дизайнере мы создаем новое подключение к данным. И среди доступных коннекторов видим добавленный нами JSON. Выбираем его и задаем путь к файлу с данными с расширением .json.

 

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

1
report.Design();

 на:

1
2
report.Load(@"TestJsonConnection.frx");
report.Show();

Тут мы указываем путь к файлу с отчетом, который мы создали ранее и запускаем отчет на показ.

Таким образом, использование библиотеки-коннектора потребовало от нас всего два действия – установить библиотеку из Nuget, и инициализировать ее в коде.

Однако, не все так просто, если речь идет от ASP .NET Core приложении.

Во-первых, мы должны создать отчет. А для этого нам нужно запустить дизайнер из кода. В веб проектах это невозможно. Придется создать WinForms приложение, специально для запуска дизайнера. Либо установить плагин в отдельную программу ReportDesigner и создавать отчеты в нем.

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

1
2
3
4
 JsonDataConnection conn = new JsonDataConnection();
 conn.ConnectionString = "Json=\"K:\\Мои документы\\nwind.json\"";
 conn.CreateAllTables();
 report.Dictionary.Connections.Add(conn);

По трудозатратам это сопоставимо с использованием сторонних библиотек подключения к базам данных. Так что, в случае с .NET Core не все так однозначно. Зато в приложениях .NET Framework 4 преимущества перед сторонними библиотеками очевидны.

20 ноября 2024

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

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

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

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

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

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