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

    22 апреля 2021 г.

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

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

    8 мая 2020 г.

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

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

    14 августа 2018 г.

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

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

    14 августа 2018 г.

    Большинство пользователей FastReport .NET строят отчеты получая данные из SQL СУБД, и хотели бы пользоваться

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

    29 февраля 2020 г.

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

    Подробнее

Как использовать SQL функции в FastReport .NET

14 августа 2018 г.

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

Напомню, табличные функции возвращают таблицы, а скалярные функции возвращают одиночные значения.

Создадим табличную функцию в MS SQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
USE [testdb]
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Description: Returns customers who live in the specified city
-- =============================================
 
CREATE FUNCTION [dbo].[GetCustomersFromCity]
(
 @city VARCHAR(20)
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM dbo.CUSTOMER WHERE CITY = @city
)

Функция принимает один параметр – название города, а возвращает список клиентов в этом городе.

Давайте сразу добавим еще одну, теперь скалярную функцию:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
USE [testdb]
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Description: Returns last added customer
-- =============================================
CREATE FUNCTION [dbo].[GetLastCustomer]
()
RETURNS VARCHAR(30)
AS
BEGIN
 DECLARE @Name VARCHAR(30)
 SELECT TOP 1 @Name = CONCAT(ind.FIRST_NAME, ' ', ind.LAST_NAME) FROM dbo.Customer cus
 JOIN dbo.Individual ind ON ind.CUST_ID = cus.CUST_ID
 ORDER BY cus.CUST_ID
 RETURN @Name
END

Эта функция не принимает параметров, а возвращает ФИО последнего зарегистрированного клиента.

Теперь перейдем к отчету.

Прежде всего создадим параметр в отчете. Мы будем использовать его для передачи названия города в функцию, для получения данных.

 

Добавим подключение к базе данных MS SQL:

 

Далее, на следующем шаге нам предлагается выбрать таблицы, но мы воспользуемся кнопкой Add SQL query…

 

На следующем шаге задаем имя новой таблицы – TableFunction. Нажимаем Next.

 

Функции, в отличие от хранимых процедур используются как таблицы. То есть для получения данных нужно использовать Select.

 

На следующем шаге нам нужно добавить параметр запроса city. В его свойстве Expression выбираем параметр отчета Param. Переходим далее и нажимаем Finish.

И получаем новый источник данных:

 

Теперь добавим диалоговую форму и перетащим на нее параметр отчета – Param.

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

Запустим отчет. Вводим значение в диалоговой форме:

 

И получаем выборку из табличной функции:

Вы не забыли, в начале статьи мы создали две функции? Этот пример еще проще, потому что я не добавил входящий параметр в эту функцию. Создадим еще один источник данных. Также, как и в первый раз – подключение к MS SQL. И опять нажимаем кнопку Add SQL query…

Вызов скалярной функции немного отличается от вызова табличной функции:

Пропускаем все остальные шаги.

 

Добавим еще одну страницу отчета и перетаскиваем на бэнд данные единственное поле из нового источника данных – ScalarFunc.

Запустим отчет. Переходим на вторую страницу:

 

Как видите, использовать функции, для получения данных очень просто, и они помогут вам сэкономить время при разработке отчета и его выполнении.

О продукте Скачать Купить
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 ООО «Фаст Репортс»

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