logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
    • en
    • ru
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Главная
  • /
  • Статьи
  • /
  • Как использовать динамические запросы в FastReport.Net
  • Как использовать Online Designer в ASP .Net Core

    17 января 2018 г.

    Одной из новинок FastReport .Net 2018 стала адаптация OnlineDesigner под фреймворк .Net Core. В целом, онлайн

    Подробнее
  • Как использовать объект WebReport в приложениях ASP .Net Core

    17 января 2018 г.

    Не так давно FastReport порадовал нас новой библиотекой - FastReport Core. Это специальная версия FastReport.Net

    Подробнее
  • FastCube - высокоскоростной движок OLAP-кубов и Pivot Grid

    29 февраля 2020 г.

    Сложно представить анализ данных без технологии OLAP (On-Line Analytical Processing). Хотя существуют разные мнения по

    Подробнее
  • Семейство генераторов отчетов FastReport - быстрый обзор

    23 марта 2020 г.

    Отчетность – без нее невозможно вести деятельность ни в одной сфере жизнедеятельности. Бюрократия является неодолимой

    Подробнее
  • Как обновить веб отчет FastReport.Core

    21 сентября 2020 г.

    Иногда вам требуется обновлять отчет, например, если вы подаете на вход новое значение переменной, или

    Подробнее

Как использовать динамические запросы в 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 ООО «Фаст Репортс»

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