Дашборды — паттерны настройки¶
1. Создание дашбордов¶
Дашборд (портал) -- пространство с виджетами, аналог рабочего стола. Стартовая страница системы -- главный портал, открывается по клику на логотип.
Создание: Администрирование - Порталы - Создать портал - ввести название - Ок.
Три режима верстки¶
| Режим | Когда использовать |
|---|---|
| Dashboard | Основной режим. Сетка с виджетами, drag-and-drop, ресайз. Наибольшее число типов виджетов |
| Flex | Адаптивная верстка контейнерами. Нужно особое поведение перестройки блоков |
| Board | Секции, группы, вкладки, несколько страниц. Ссылки в верхней части портала |
Переключение: кнопка "Дизайнер" - выбрать режим - Сохранить.
Виджеты, добавленные в одном режиме, после смены на другой не отображаются.
Дизайнер Dashboard¶
Сетка + панель настроек справа. Добавление виджета через "+", перемещение drag-and-drop, ресайз за нижний край.
Дизайнер Flex¶
Контейнерная верстка. Основной элемент -- родительский контейнер с дочерними. Управление через контекстное меню (ПКМ): добавить контейнер, настройка, удалить. Добавление виджетов из списка блоков ("+").
Дизайнер Board¶
Древовидная структура: Портал - Группы - Секции. Группа объединяет секции во вкладки. Секция -- отдельный дашборд. Поддерживает ссылки на другие страницы/порталы в верхней части.
2. Права доступа на портал¶
Кнопка "Доступ" в меню портала - указать группы пользователей. Администраторы видят портал в конструкторе даже без доступа.
Добавление в "Избранное": кнопка "Добавить в избранное" - указать группы, для которых ссылка добавится в блок "Избранное".
3. Типы виджетов (дизайнер Dashboard)¶
| Тип | Назначение |
|---|---|
| Блок поиска задач | Задачи из категории/произвольного источника. Список или карточки. Новости, объявления, встречи |
| Список задач | Задачи текущего пользователя: на сегодня, активные, просроченные, на подписи и др. |
| Таблица | Сводная информация из SP. Поддержка Drill Down |
| График (диаграмма) | Столбчатая, круговая, линейный и др. |
| Меню | Набор кнопок с настраиваемыми действиями (открытие отчёта, задачи) |
| Контакты | Список контактов с чатом, звонками, календарной занятостью |
| Кнопка-тикер | Блок со счётчиком, ссылкой, иконкой и кнопкой создания задачи |
| Баннер-кнопка | Баннер со ссылкой на объект, визуальные эффекты |
| Счётчики | До 6 счётчиков, прямые/обратные метрики, %, штуки. Источник -- smart |
| Диаграмма Ганта | Временная шкала задач с цветом по статусу |
| Smart HTML | Произвольный HTML + Mustache + SMART/T-SQL |
| Календарь | Информация с привязкой к дате/периоду, шаблон как Smart HTML |
| Степпер | Пошаговый алгоритм с интерактивным выбором шага |
4. Настройка виджетов -- общие паттерны¶
Права доступа виджета¶
Поле "Доступен для групп" -- обязательно включать Administrators (облегчает диагностику).
Источники данных¶
- Блок поиска задач: категория или smart-фильтр в "Дополнительных настройках"
- Список задач: встроенные источники (задачи на сегодня, активные, просроченные и т.д.)
- Контакты: smart-выражение для выборки пользователей
- Таблица, Кнопка-тикер, Счётчики: smart/T-SQL
Smart-фильтр для виджета "Блок поиска задач"¶
Дополнительные настройки - Фильтр задач - переключить на smart-фильтр - "+".
Усечение времени до даты при сравнении сроков -- иначе сравнение будет с точностью до секунды.
Виджет "Меню" -- кнопки¶
Добавление через "Дополнительные настройки" или кнопку "Добавить" в редакторе дашборда. Для каждой кнопки:
- "Текст ссылки" -- отображаемый текст
- "Ссылка" -- относительная (без домена, от первого /)
Использовать относительные ссылки, чтобы настройки работали на любой площадке. Пример: /spa/report/72, /spa/tasks/<номер>.
Динамическая ссылка -- smart-выражение, формирующее URL вида /spa/tasks/<номер задачи>.
Виджет "Контакты" -- пример smart для выборки по группе¶
SELECT u.userid
FROM Users u WITH (NOLOCK)
JOIN usergroups g WITH (NOLOCK)
ON g.userid = u.userid
AND g.groupid = 935 -- ID группы
Виджет "Счётчики" -- конфигурация¶
- До 6 счётчиков в одном виджете
- Значения через smart-выражения
- Поддержка: прямые и обратные метрики, процентные и штучные значения
- Заголовок может содержать ссылку на объект
5. Виджет "Таблица" с Drill Down¶
Источник данных -- хранимая процедура¶
Виджет "Таблица" получает данные из хранимых процедур SQL.
Обязательные входные параметры SP:
| Параметр | Тип | Назначение |
|---|---|---|
@XmlParam |
XML | Параметры фильтрации (из виджета) |
@DrilldownField |
varchar | Колонка, по которой запрошена детализация |
@DrillDownParams |
varchar | Параметры детализации |
@UserID |
int | Текущий пользователь |
Фильтры виджета¶
Настройки фильтрации - Создать фильтр - Добавить параметр (тип "Период", "Выпадающий список" и др.). Параметр задаётся на латинице -- по нему обращение в SP.
Парсинг параметров в SP:
-- Получить параметры из XML
EXEC crm_repGetParams @XmlParam, @Params OUTPUT
-- Извлечь период
SELECT @startDate = [From], @endDate = [To]
FROM @Params
WHERE Name = 'periodFilter'
Логика Drill Down в одной SP¶
IF @DrillDownField = '' OR @DrillDownField IS NULL
BEGIN
-- Основная таблица
SELECT ...
END
ELSE
BEGIN
-- Детализация: парсим @DrillDownParams
-- Определяем колонку по @DrillDownField
SELECT ...
END
Параметры Drill Down извлекаются из @DrillDownParams в табличную переменную @DrillParams, доступ по ключу (колонка Name).
Настройка в интерфейсе¶
- Дополнительные настройки виджета - ввести имя SP
- Отобразятся колонки -- проставить галки "Отображать", задать "Имя" на русском
- Для Drill Down: указать SP и "Колонку для функции Drill Down"
- Для каждого столбца с Drill Down -- настроить колонки детализированной таблицы (шестерёнка в колонке "Детализация")