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

    22 апреля 2021 г.

    Статья актуальна до версии 2022.1. В FastReport.NET есть прекрасный инструмент для вывода данных в виде сводной

    Подробнее
  • Как использовать хранимые процедуры с несколькими наборами данных в результате

    8 мая 2020 г.

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

    Подробнее
  • Как использовать хранимые процедуры в FastReport .NET

    14 августа 2018 г.

    В этой статье пойдет речь об использовании хранимых процедур для получения данных для отчета. На

    Подробнее
  • Как использовать SQL функции в FastReport .NET

    14 августа 2018 г.

    Для получения данных в MS SQL можно использовать sql запросы, хранимые процедуры и хранимые функции.

    Подробнее
  • Как подключиться к базе данных Sybase SQL Anywhere

    29 февраля 2020 г.

    СУБД Sybase SQL Anywhere обладает рядом очень полезных качеств, которые делают ее весьма конкурентной в

    Подробнее

Как использовать динамические запросы в FastReport .NET

14 августа 2018 г.

Большинство пользователей FastReport .NET строят отчеты получая данные из SQL СУБД, и хотели бы пользоваться преимуществами Sql в своих отчетах. Ничего не мешает вам использовать динамические запросы, хранимые процедуры и функции. В этой статье мы рассмотрим, как использовать динамические запросы при создании источника данных отчета.

Этот тип запросов применяют для обхода синтаксических ограничений языка SQL. Но такие запросы могут выполняться дольше из-за неоптимального плана запроса, да и безопасность нужно строить иначе. Но сейчас не об этом. Динамические запросы удобны, и поэтому мы хотим их использовать в FastReport.

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

Создадим отчет. Предварительно, нам нужно создать два параметра отчета. Добавим ParamName и ParamValue строкового типа. Теперь создадим подключение к базе данных. Подключаемся к SQL серверу:

 

На этапе выбора таблиц нажмите кнопку  . Она запускает мастер запроса:

 

Задаем имя будущей таблицы и нажимаем Next.

Вводим динамический запрос вручную. Этот запрос имеет два параметра: @Param1 – имя поля, @Param2 – значение поля. Тут можно добавить и третий параметр - знак операции ( =, in, <>, <, >).

Но ограничимся пока двумя. Так как запрос представлен в виде текстового значения, мы используем оператор Execute для выполнения. Нажимаем кнопку Next.

 

В окне определения параметров создаем два с такими же именами, как и в SQL запросе. Необходимо указать Expression. Для первого параметра это [ParamName], а для второго – [ParamValue]. Как вы догадались – это имена параметров отчета, которые мы создали ранее. Нажимаем кнопку Finish.

Мы получили источник данных:

Перетаскиваем поля из таблицы Product на бэнд данные.

А теперь, давайте добавим диалоговую форму. Перетягиваем на нее два параметра из окна Data.

Теперь мы можем задавать имя поля и его значение для фильтрации выборки. Запустим отчет.

 

Задаем значения параметров и нажимаем Ok.

И получаем нужные нам записи. В нашем случае она одна. Давайте попробует отфильтровать отчет по другому полю. Запустим отчет заново.

 

И результат:

Таким образом, вы можете использовать динамические запросы, которые помогут вам избежать лишнего кода или настроек отчета. А если вы работаете с большими объемами данных, то можете ускорить время формирования отчета, благодаря отсечению ненужных данных на этапе их получения.

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

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

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

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