Задача [0156, часть 1]: Шаблоны проектов: расширенный вариант ввода зависимостей

Формулировка проблемы: необходима возможность задания всех типов зависимостей не на диаграмме Ганта, а непосредственно в компоненте ввода зависимости.

Используется: функциональность зависимостей в модуле «Проекты».

Связанные задачи: 0156, часть 2, 0156, часть 3, 0156, часть 4, 0156, часть 5.

Общее решение по «Шаблонам проектов» поделено на 5 задач. В данной задаче рассмотрено расширение функциональности компонента для ввода зависимости.

Решение: компонент для ввода зависимости, структура которого сейчас представляет собой «номер зависимости», необходимо расширить до структуры «тип зависимости + номер зависимости + задержка». Данная структура содержит все возможные свойства зависимости (см. диалоговое окно «Зависимости задачи» на диаграмме Ганта в текущих проектах Системы).

Формат записи: FS(1;0), FF(2.3;-2), ..., где буквенное сокращение до скобок - тип зависимости, первый аргумент в скобках - номер зависимости, второй аргумент - задержка. Нотация данного формата:

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

Связи мероприятия изменены со следующими конфликтами:

Введен неверный формат зависимости: %введенная зависимость с ошибками%, ...

Не найдены мероприятия с номерами: %введенный номер%, ...

Создание связей со следующими мероприятиями приведет к возникновению циклической ссылки: '%название мероприятие, на которое происходит ссылка%', ...

Невозможно создать несколько связей к одному мероприятию: %введенная зависимость%, ...

либо любых их комбинаций из двух / трех значений.

Примеры

Пусть в поле «Зависит» мероприятия со структурным номером 10 вводится следующее:

FS(5.1.1;0), FF(5.1.1;-5),FF(5.1.1;13.5), FS(4), ФС(2;2)

После нажатия Enter успешно сохранятся связи FS(5.1.1;0) и FS(4;0), кроме того выйдет сообщение на синем фоне:

Связи мероприятия изменены со следующими конфликтами:

Невозможно создать несколько связей к одному мероприятию: FF(5.1.1;-5), FF(5.1.1;13.5)

Введен неверный формат зависимости: ФС(2;2)

Пусть в поле «Зависит» последнего по счету мероприятия со структурным номером 15 вводится следующее:

Fs(12;), ss(14.5;2.1.2),, , ,, fS(11;13.5), FS(144;0)

После нажатия Enter все лишние запятые и пробелы в середине записи удалятся, успешно сохранятся связи FS(12;0) и FS(11;13.5), кроме того выйдет сообщение на синем фоне:

Связи мероприятия изменены со следующими конфликтами:

Введен неверный формат зависимости: SS(14.5;2.1.2)

Не найдены мероприятия с номерами: FS(144;0)

Пусть в поле «Зависит» мероприятия со структурным номером 25 вводится следующее:

SF)12;0(, FS(14.5.1.3.4.1;-2), FF(11;13.5, FS (144;0); FS(2),

При условии, что в проекте существует мероприятие со структурным номером 14.5.1.3.4.1, после нажатия Enter успешно сохранится связь FS(14.5.1.3.4.1;-2), крайняя запятая автоматически удалится, кроме того выйдет сообщение на синем фоне:

Связи мероприятия изменены со следующими конфликтами:

Введен неверный формат зависимости: SF)12;0(, FF(11;13.5, FS (144;0); FS(2)