Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE PROCEDURE [dbo].[crud_deps_getItems]
- @filters CRUDFilterParameter READONLY, -- здесь приходят фильтры, а также парапметры из URL (также здесь передаются спец параметры, например язык langID).
- @sort sql_variant, -- по какому полю сортировка
- @direction nvarchar(8), -- направление сортировки (up down)
- @page int, -- текущая страница данных в таблицы
- @pageSize int, -- размер пагинации
- @username nvarchar(32) -- текущий пользователь (на его основе можно дополнительно проверять права)
- AS
- BEGIN
- -- основная процедура настройки таблицы
- -- спецполя для нее: icon_age, prev_age, prevcolor_age, color_age, backcolor_age, desc_name, color, barPercent_age, barClass_age, badge_age
- declare @result TABLE(
- id nvarchar(max),
- name nvarchar(max),
- code nvarchar(max),
- managerID nvarchar(max)
- )
- -- извлекаем фильтр
- declare @filterName nvarchar(128)
- select @filterName = Value from @filters where [Key] = 'name'
- -- извлекаем требуемые данные из таблицы отделов
- -- обязательно используйте isnull (NULL в поле в 1 строке означает что столбец совсем не будет выводиться - это дает больше гибкости при выводе таблицы)
- insert into @result
- select
- id,
- isnull(name, '') name,
- isnull(code, '') code,
- isnull((select fio from hr_humans where id = managerID), '') managerID
- from hr_departments
- where (isnull(@filterName, '')='' or code like '%'+@filterName+'%' or name like '%'+@filterName+'%')
- -- 1 SELECT - сами данные для таблицы
- -- здесь организуем работу сортировки по параметрам а также работу пагинации.
- select *,
- '<div class="as-table" data-code="humans" data-itemID="'+cast(id as nvarchar)+'">' sub_name
- from @result
- order by
- case when @sort = 'name' and @direction = 'down' then name end desc,
- case when @sort = 'name' and @direction = 'up' then name end asc,
- case when @sort = 'code' and @direction = 'down' then code end desc,
- case when @sort = 'code' and @direction = 'up' then code end asc
- OFFSET @PageSize * (@Page - 1) ROWS
- FETCH NEXT @PageSize ROWS ONLY;
- -- 2 SELECT - кол-во в таблице
- select count(*) from @result
- -- 3 SELECT Дополнительные настройки таблицы (их необязательно указывать)
- Select 'Отделы' Title, -- заголовок можно задать здесь либо через статичные настройки компонента
- '' ToolbarAdditional,
- '' GroupOperationsToolbar,
- 'Нет отделов' EmptyText,
- 'Добавить отдел' FastCreateLinkText, 'Создание отдела' FastCreateDialogHeader, '' FastCreateDialogPlaceholder,
- 0 FastCreateSearch, 0 FastCreateTextarea,
- 1 HideTitleCount,
- 0 DisableCellTitle,
- '14px' FontSize,
- '' FilterMakeup,
- 1 InstantFilter
- --'gantt' ViewType,
- -- GanttScale, GanttNavigate, GanttItemForm, GanttItemFormTitle
- -- KanbanItemForm, KanbanItemFormTitle
- -- 4 SELECT Данные для подвала страницы или данные для Ганта/Канбана (если установлен ViewType в 3 SELECT)
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement