FastReport .NET предоставляет достаточно возможностей кастомизации своего дизайнера отчетов.
В этой статье мы рассмотрим, как подменить встроенный редактор SQL запросов на Active Query Builder.
Также, потребуется библиотеки:
А теперь добавим в проект файл – плагин для работы с 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 запросов.