Формулировка проблемы: необходима возможность задания всех типов зависимостей не на диаграмме Ганта, а непосредственно в компоненте ввода зависимости.
Используется: функциональность зависимостей в модуле «Проекты».
Связанные задачи: 0156, часть 2, 0156, часть 3, 0156, часть 4, 0156, часть 5.
Общее решение по «Шаблонам проектов» поделено на 5 задач. В данной задаче рассмотрено расширение функциональности компонента для ввода зависимости.
Решение: компонент для ввода зависимости, структура которого сейчас представляет собой «номер зависимости», необходимо расширить до структуры «тип зависимости + номер зависимости + задержка». Данная структура содержит все возможные свойства зависимости (см. диалоговое окно «Зависимости задачи» на диаграмме Ганта в текущих проектах Системы).
Тип зависимости - один из 4-х вариантов FS
,
FF
, SS
,
SF
.
Номер зависимости - структурный номер мероприятия, элементы
которого отделяются друг от друга точкой, например,
1
, 5.3
,
8.1.3
.
Задержка - число (положительное, ноль, отрицательное), дробная часть которого разделена через «точку».
Формат записи: FS(1;0), FF(2.3;-2), ...
, где
буквенное сокращение до скобок - тип зависимости, первый аргумент в
скобках - номер зависимости, второй аргумент - задержка. Нотация
данного формата:
Если указан неверный (несуществующий) тип зависимости, то после
нажатия Enter
те связи, которые написаны
согласно формата, должны успешно примениться, а также необходимо
выдавать общее сообщение на синем фоне:
Связи мероприятия изменены со следующими конфликтами:
Введен неверный формат зависимости: %введенная зависимость с ошибками%, ...
Примечание: связи, написанные в нижнем
регистре или комбинации верхнего и нижнего регистров необходимо
корректно обрабатывать (после нажатия Enter
заменить на верхний регистр).
Если от одного мероприятия к другому указано несколько
зависимостей, то после нажатия Enter
сохранять необходимо только самую первую введенную связь, а
также необходимо выдавать сообщение на синем фоне:
Связи мероприятия изменены со следующими конфликтами:
Невозможно создать несколько связей к одному мероприятию: %введенная зависимость%, ...
Если указан неверный (несуществующий) номер зависимости, то
после нажатия Enter
те связи, которые
написаны согласно формата, должны успешно примениться, а также
необходимо выдавать сообщение на синем фоне:
Связи мероприятия изменены со следующими конфликтами:
Не найдены мероприятия с номерами: %введенный номер%, ...
Если указан номер зависимости, который приводит к возникновению
циклической ссылки, то после нажатия Enter
те
связи, которые написаны согласно формата, должны успешно
примениться, а также необходимо выдавать сообщение на синем
фоне:
Связи мероприятия изменены со следующими конфликтами:
Создание связей со следующими мероприятиями приведет к возникновению циклической ссылки: '%название мероприятие, на которое происходит ссылка%', ...
В скобках может быть введена только одна цифра (включая случай
«цифра» + «точка с запятой»), тогда после нажатия
Enter
необходимо автоматически дописать через
«точку с запятой» значение задержки как «ноль».
По знакам пунктуации (независимо от текущей локали пользователя):
между типом зависимости и открывающейся скобкой не должно быть пробела;
в номере зависимости может быть введено множество «точек»
(например 1.1.1.1.1
);
в задержке могут быть введены как «минус» (отрицательное число), так и только одна «точка» - разделитель дробной части;
номер зависимости и задержка в скобках должны быть разделены между собой только «точкой с запятой» без пробелов;
несколько связей в одном мероприятии должны быть разделены только «запятой» и, опционально, «пробелом».
После нажатия Enter
те связи, которые
написаны согласно формата, должны успешно примениться, а также
необходимо выдавать общее сообщение на синем фоне:
Связи мероприятия изменены со следующими конфликтами:
Введен неверный формат зависимости: %введенная зависимость с ошибками%, ...
Все остальные остальные случаи ввода зависимости не по описанному формату должны завершаться неуспешно с общей ошибкой на синем фоне:
Связи мероприятия изменены со следующими конфликтами:
Введен неверный формат зависимости: %введенная зависимость с ошибками%, ...
Примечание: вторая часть сообщения на синем фоне (после двоеточего) должна являться сборной из всех возможных предложений, перечисленных в пунктах выше. Т.е. возможен вариант такого сообщения:
Связи мероприятия изменены со следующими конфликтами:
Введен неверный формат зависимости: %введенная зависимость с ошибками%, ...
Не найдены мероприятия с номерами: %введенный номер%, ...
Создание связей со следующими мероприятиями приведет к возникновению циклической ссылки: '%название мероприятие, на которое происходит ссылка%', ...
Невозможно создать несколько связей к одному мероприятию: %введенная зависимость%, ...
либо любых их комбинаций из двух / трех значений.
Примеры
Пусть в поле «Зависит» мероприятия со структурным номером
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)