Как использовать редактор запросов Active Query Builder в дизайнере отчетов FastReport .NET

28.05.2018

FastReport .NET предоставляет достаточно возможностей кастомизации своего дизайнера отчетов.

В этой статье мы рассмотрим, как подменить встроенный редактор SQL запросов на Active Query Builder.

  1. Для начала необходимо скачать последнюю версию Active Query Builder для .NET с сайта разработчика http://www.activequerybuilder.com/. На момент выхода статьи это версия 3.4.9.1086. Устанавливаем библиотеку с помощь скачанного инсталлятора.
  2. Для демонстрации создадим приложение WindowsForms. Добавляем в проект ссылки на библиотеки Active Query Builder. Потребуются следующие библиотеки, которые вы найдете в папке с установленной программой (C:\Program Files\ActiveDBSoft\Active Query Builder 3 .NET\assemblies):
  • ActiveQueryBuilder.AdvantageMetadataProvider;
  • ActiveQueryBuilder.Core;
  • ActiveQueryBuilder.DB2MetadataProvider;
  • ActiveQueryBuilder.FirebirdMetadataProvider;
  • ActiveQueryBuilder.MSSQLCEMetadataProvider;
  • ActiveQueryBuilder.InformixMetadataProvider;
  • ActiveQueryBuilder.MSSQLMetadataProvider;
  • ActiveQueryBuilder.MySQLMetadataProvider;
  • ActiveQueryBuilder.ODBCMetadataProvider;
  • ActiveQueryBuilder.OLEDBMetadataProvider;
  • ActiveQueryBuilder.OracleMetadataProvider;
  • ActiveQueryBuilder.OracleNativeMetadataProvider;
  • ActiveQueryBuilder.PostgreSQLMetadataProvider;
  • ActiveQueryBuilder.SQLiteMetadataProvider;
  • ActiveQueryBuilder.SybaseMetadataProvider;
  • ActiveQueryBuilder.UniversalMetadataProvider;
  • ActiveQueryBuilder.View;
  • ActiveQueryBuilder.View.WinForms;
  • ActiveQueryBuilder.View.WPF;
  • ActiveQueryBuilder.VistaDB5MetadataProvider.

Также, потребуется библиотеки:

  • FastReport;
  • FastReport.Bars;
  • FastReport.Editor.

А теперь добавим в проект файл – плагин для работы с ActiveQueryBuilder. Он расположен тут: J:\Program Files (x86)\FastReports\FastReport.Net\Extras\Misc\ActiveQueryBuilder\ActiveQBForm.cs.

Чтобы сделать это, делаем правый клик по названию проекта в Solution Explorer и выбираем Add -> Existing Item….

Так как приложение у нас демонстрационное, то форма будет содержать всего одну кнопку:

 

А теперь создаем обработчик события нажатия кнопки с помощью двойного клика по ней:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using FastReport.Forms;
using FastReport.Design;
using FastReport;

private void button1_Click(object sender, EventArgs e)
 {
 Report report = new Report();
 FastReport.Utils.Config.DesignerSettings.CustomQueryBuilder += new FastReport.Design.CustomQueryBuilderEventHandler(DesignerSettings_CustomQueryBuilder);
 report.Design();
 }
 
 private void DesignerSettings_CustomQueryBuilder(object sender, CustomQueryBuilderEventArgs e)
 {
 using (ActiveQBForm form = new ActiveQBForm())
 {
 form.Connection = e.Connection;
 form.SQL = e.SQL;
 if (form.ShowDialog() == DialogResult.OK)
 e.SQL = form.SQL;
 }
 }

 По нажатии кнопки создается объект отчета, затем переопределяется обработчик вызова построителя отчета. И вызываем дизайнер отчета.

Ниже мы создали пользовательский обработчик вызова построителя отчетов. Как видите, мы просто вызываем добавленный ранее в проект объект ActiveQBForm.

А теперь запустим приложение. Нажмем единственную кнопку, и увидим дизайнер отчетов. Если вы хотите редактировать существующий отчет, то после создания объекта Report нужно загрузить в него отчет: report.Load("С:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/Image.frx");

Теперь добавим в отчет источник данных с помощью иконки:

 

Нам необходимо создать подключение к субд поддерживающей язык SQL, чтобы в дальнейшем воспользоваться построителем SQL запросов. Например, подключаемся к базе данных Access.

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

 

Но в правом нижнем углу есть кнопка “Add SQL query…”, которая запускает мастер создания запроса. На первом шаге создания запроса нужно задать имя для нового представления, которое получится в результате применения создаваемого нами запроса.

 

А на втором шаге мы можем вручную ввести текст SQL запроса.

 

Однако, в правом нижнем углу мы видим кнопку “Query Builder…” которая запустит построитель отчетов. Нажимаем ее:

 

И видим созданный нами на основе ActiveQueryBuilder построитель отчетов. Чтобы добавить таблицу в рабочую область, нужно перетащить ее мышью из области данных справа. Либо сделать правый клик по рабочей области построителя и из контекстного меню выбрать «Добавить»:

 

И зажав Ctrl выбираем нужные таблицы из базы:

 

После, нажимаем кнопку “Add Selected Objects” и видим связанные таблицы в построителе:

 

Внизу окна мы можем увидеть автоматически созданный текст SQL запроса. А на вкладке Result – результат выполнения запроса. Допустим, нас устраивает созданный запрос. Чтобы принять его нажимаем на зеленый значок вверху окна. Для отмены – красный значок.

В мастер запроса передается текст SQL запроса, который мы создали в построителе:

 

Завершаем создание запроса нажимая кнопку Next, а в конце Finish. Таким же образом завершаем создание источника данных.

Теперь в дизайнере отчета появился источник данных:

 

Таким образом мы использовали плагин для замены стандартного построителя SQL запросов.

20 ноября 2024

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

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

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

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

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

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