В этой статье пойдет речь об использовании хранимых процедур для получения данных для отчета. На примере MS SQL я покажу вам как создавать м использовать функции в отчете.
Как вы знаете Transact SQL позволяет нам создавать нам хранимые процедуры и функции. Хранимые процедуры применяются для автоматизации каких-либо действий. Функции же предназначены для расширения возможностей запросов. Они могут выполняться в составе запроса и всегда возвращают значение. Хранимые процедуры вызываются инструкцией execute и могут не возвращать никаких значений.
Для получения данных в отчете можно использовать как хранимую процедуру, так и функцию.
Но тема данной статьи – применение хранимых процедур.
К примеру, вот простейшая хранимая процедура, которая вернет список сотрудников по названию подразделения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Description: Returns employees by department -- ============================================= ALTER PROCEDURE dbo.DepartmentEmployee @DepName varchar(20) AS BEGIN SELECT em.*, dep.NAME FROM dbo.DEPARTMENT dep JOIN dbo.EMPLOYEE em ON em.DEPT_ID = dep.DEPT_ID WHERE dep.NAME = @DepName END GO |
А теперь используем эту хранимую процедуру в отчете. Создаем подключение к БД MS SQL:
На этапе выбора таблиц нажимаем кнопку:
Запускается мастер создания запроса. На первом шаге нужно задать имя новой таблицы, переходим далее.
Вводим текст SQL запроса. Мы будем передавать параметр отчета в качестве значения параметра запроса.
На следующем шаге создаем параметр @Dep.
В свойстве Expression указываем параметр отчета.
Значение параметра отчета можно задать в свойстве Exptession:
Вы также можете задавать значение параметр в диалоговой форме перед отображением отчета.
Переносим поля из источника данных в окне данных на бэнд данных. Запустим отчет:
Как видите, выводятся все записи сотрудников для департамента “Operations”.