Перейти к содержанию

Дашборды — паттерны настройки

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).

Настройка в интерфейсе

  1. Дополнительные настройки виджета - ввести имя SP
  2. Отобразятся колонки -- проставить галки "Отображать", задать "Имя" на русском
  3. Для Drill Down: указать SP и "Колонку для функции Drill Down"
  4. Для каждого столбца с Drill Down -- настроить колонки детализированной таблицы (шестерёнка в колонке "Детализация")

Ссылки