logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Забыли пароль?
    • en
    • ru
    • pt
    • es
    • JP
    • ZH
  • Главная
  • /
  • Статьи
  • /
  • Как использовать динамические запросы в FastReport.Net
  • Как использовать хранимые процедуры с несколькими наборами данных в результате

    8 мая 2020 г.

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

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

    29 февраля 2020 г.

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

    Подробнее
  • Как использовать SQL запросы при создании внутреннего источника данных отчета в дизайнере отчетов FastReport.Net

    2 сентября 2019 г.

    При создании подключения к SQL СУБД вы можете задать запрос, чтобы выбрать отфильтрованные или комбинированные

    Подробнее
  • Как сделать простой Web-отчет FastReport.Net

    4 октября 2016 г.

    Сегодня Web-отчеты очень востребованы. Каждый день мы пользуемся интернетом и просматриваем десятки, а то и

    Подробнее
  • Как создать Master-Detail отчет из несвязанных таблиц

    27 марта 2017 г.

    Нередко появляется необходимость в создании отчета типа «Главный – Подчиненный» или «Master – Detail». Это

    Подробнее

Как использовать динамические запросы в 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
Руководитель отдела обеспечения качества
.NET FastReport SQL

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

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

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