Задача [0305]: Шаблоны проектов - поддержка указания формы завершения

Формулировка проблемы: необходимо:

Используется: Конфигуратор -> Проекты -> Шаблоны проектов

Решение: данная постановка состоит из двух логических частей:

Новый компонент "Встраиваемый листбокс"

Необходимо реализовать новый компонент - выпадающий список для ячейки таблицы.

Общие параметры
  • Высота и ширина кнопки разворачивания выпадающего списка - 25px.

  • Горизонтальные отступы слева и справа от границ текста в ячейке - 12px.

  • Ширина выпадающего списка равна ширине самого компонента (ячейке таблицы).

  • Невмещающийся текст:

    • в ячейке - обрезается по правой стороне с отступом в 12px без добавления градиента;

    • в контекстном меню - обрезается по правой стороне без добавления отступа.

  • По наведению курсором на пункт будет отображаться тултип с его полным наименованием.

  • Если выпадающий список содержит более 6 пунктов, в нем отображается вертикальный скролл.

  • Если выпадающий список был вызван так, что не помещается в рабочую область полностью, то он будет разворачиваться вверх.

Рисунок 182. Отступы

Отступы

Поведение компонента

Компонент может находиться в следующих состояниях:

  • ячейка не выделена;

  • ячейка выделена;

  • отображение выпадающего списка.

Ячейка не выделена

В данном случае значение компонента отображается в виде лейбла.

Ячейка выделена

Переход к данному состоянию осуществим как по нажатию на ячейку курсором мыши, так и при управлении с клавиатуры (клавиша Tab, либо курсорные клавиши ↑ ↓ ← →).

В выделенной ячейке по правому краю отображается кнопка раскрытия выпадающего списка. Содержимое самой ячейки заполняется голубым цветом.

Рисунок 183. Встраиваемый листбокс выделен

Встраиваемый листбокс выделен

Отображение выпадающего списка

Раскрытие выпадающего списка возможно только при выделенной ячейке и осуществимо одним из следующих способов:

  • нажатием на кнопку отображения выпадающего списка;

  • нажатием на клавишу Enter.

При раскрытии выпадающего списка выделение с ячейки снимается. Повторное нажатие на кнопку сворачивает выпадающий список с выделением ячейки.

Рисунок 184. Выпадающий список листбокса

Выпадающий список листбокса

Рисунок 185. Выпадающий список листбокса (длинное название пункта)

Выпадающий список листбокса (длинное название пункта)

Возможность выбора формы завершения для шаблонов проекта
Конфигуратор

Необходимо доработать таблицу структуры шаблона (Конфигуратор -> Проекты -> Шаблоны проектов -> Структура шаблона) - добавить в конец таблицы столбец "Форма завершения". Ячейки данного столбца будут содержать новый компонент "Встраиваемый листбокс" со следующими особенностями:

  • Данный компонент содержится только в ячейках негрупповых мероприятий. По нажатию на ячейку группового мероприятия она выделяется, других видимых изменений не происходит.

  • Выпадающий список компонента отображает элементы в следующем порядке:

    • (По умолчанию);

    • Нет;

    • сплит;

    • список названий данных справочника work_completion (в том же порядке, что и в самом справочнике).

  • При добавлении нового мероприятия листбокс имеет значение (По умолчанию).

  • При открытии структуры уже созданного шаблона будет проводиться проверка выбранных значений листбокса. В случае, если справочник work_completion более не имеет запись с выбранной формой завершения, листбокс автоматически примет значение (По умолчанию). При этом отобразится окно Внимание! с кнопкой "Продолжить" и текстом сообщения:

    Форма завершения некоторых мероприятий была изменена на значение (По умолчанию)

    Это произошло потому, что выбранная ранее запись справочника формы завершения была удалена

    По нажатию на кнопку "Продолжить" произойдет закрытие окна и сохранение шаблона проекта. Переход в подраздел шаблона проекта не осуществляется, отображается структура шаблона.

Рисунок 186. Новая настройка "Форма завершения"

Новая настройка "Форма завершения"

Рисунок 187. Выделение ячейки группового мероприятия

Выделение ячейки группового мероприятия

Рисунок 188. Выделение ячейки негруппового мероприятия

Выделение ячейки негруппового мероприятия

Рисунок 189. Выпадающий список компонента

Выпадающий список компонента

Рисунок 190. Окно "Внимание!"

Окно "Внимание!"

Основное приложение

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

Если в Конфигураторе таким пунктом является (По умолчанию), то в основном приложении будет выбрана глобальная форма завершения по умолчанию (Конфигуратор -> Документооборот -> Доп. настройки потоков работ -> Форма завершения по-умолчанию).

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

Действия при обновлении системы

При обновлении системы в таблицах структуры всех текущих шаблонов проектов в Конфигураторе появится стоблец "Форма завершения" с выбранным пунктом (По умолчанию) для всех негрупповых мероприятий. Других видимых изменений быть не должно.

Пример использования

Условия: значение настройки "Форма завершения по умолчанию" - "Нет" (Конфигуратор -> Документооборот -> Настройки потоков работ - Доп. настройки потоков работ)

Наличие сотрудников:

  • Руководитель 1 (владелец Портфеля_1)

    • Сотрудник_2

    • Сотрудник_3

  1. Авторизоваться с логином и паролем методолога.

  2. Перейти в подраздел "Проекты -> Шаблоны проектов".

  3. Создать шаблон проекта "Шаблон_1" и сохранить изменения.

  4. Открыть структуру шаблона.

  5. Создать мероприятие "Мероприятие_1" и выбрать форму завершения "Файл".

  6. Создать мероприятие "Мероприятие_2" и выбрать форму завершения "Комментарий".

  7. Сохранить изменения.

  8. Авторизоваться с логином и паролем Руководителя_1 в основном приложении.

  9. Перейти в модуль "Проекты".

  10. В "Портфеле_1" создать "Проект_1" по шаблону проекта "Шаблон_1".

  11. В открывшейся структуре выбрать следующих ответственных:

    Мероприятие_1 - Сотрудник_2

    Мероприятие_2 - Сотрудник_3

  12. Дать права на "Проект_1" данным сотрудникам и утвердить проект.

  13. Перейти в модуль "Сотрудники".

  14. Открыть работы Сотрудника_2 - отображается работа "Мероприятие_1".

  15. Открыть данную работу на редактирование - в качестве формы завершения указан "Файл".

  16. Открыть работы Сотрудника_3 - отображается работа "Мероприятие_2".

  17. Открыть данную работу на редактирование - в качестве формы завершения указан "Комментарий".