Синтаксис:
function CreateRouteStep( Number: Integer; const Performer: IUser; JobKind: TJobKind; FinalDate: OleVariant; const Note: WideString; const StartCondition: WideString): IRouteStep; |
Параметры:
Number – порядковый номер этапа маршрута. Этапы маршрута нумеруются с 1;
Performer – исполнитель;
JobKind – тип задания;
FinalDate – срок выполнения этапа. В качестве значения параметра следует передавать значение типа TDateTime;
Note – примечание к этапу;
StartCondition – условие старта этапа.
Возвращаемое значение:
Этап маршрута.
Описание:
Метод создает этап маршрута задачи в соответствии с указанными параметрами.
Условие старта имеет смысл задавать при сложной маршрутизации задачи. Параметр StartCondition содержит этапы маршрута, после выполнения которых будет стартован данный этап. Этапы, для которых не определены условия старта, будут стартованы параллельно сразу же после старта задачи.
Условие задается в следующем формате: «[<Логический оператор>]:<Номер этапа маршрута1>[;<Номер этапа маршрута2>]…[;<Номер этапа маршрутаN>]». Если в условии используется только один этап маршрута, то логический оператор можно не указывать, если несколько этапов – то следует указать англоязычный логический оператор «AND» или «OR». Например, если задать условие старта этапа маршрута 'AND:2;3', то данный этап будет стартован после выполнения этапов 2 и 3.
Можно задать условие приема задачи в том же формате, что и при визуальном определении маршрута из карточки задачи: «ПОСЛЕ: <Номер этапа маршрута1>[ <Логический оператор> <Номер этапа маршрута2>]...[ <Логический оператор> <Номер этапа маршрутаN>]». В этом случае следует использовать русскоязычные логические операторы «И», «ИЛИ». Перед тем как передавать условие в таком формате его следует сконвертировать во внутренний формат с помощью метода ITaskFactory.ConditionFormat.
Пример использования:
// Задать сложную маршрутизацию задачи.
// Performer1 - исполнитель этапа 1.
// Performer2 - исполнитель этапа 2.
// Performer3 - исполнитель этапа 3.
Task = Tasks.CreateNew
Task.Requisites('RouteType').AsString = 'Сложная'
ConditionInInternalFormat = 'AND:2;3'
ConditionInDisplayFormat = 'ПОСЛЕ: 2'
Step1 = Tasks.CreateRouteStep(1; Performer1; jkJob; '01.01.2008';
'Данный этап будет стартован после выполнения этапов 2 и 3';
ConditionInInternalFormat)
Step2 = Tasks.CreateRouteStep(2; Performer2; jkJob; '01.01.2008';
'Данный этап будет стартован первым'; '')
Step3 = Tasks.CreateRouteStep(3; Performer3; jkJob; '01.01.2008';
'Данный этап будет стартован после выполнения этапа 2';
Tasks.ConditionFormat(ConditionInDisplayFormat; cfInternal))
Task.Route.Add(Step1)
Task.Route.Add(Step2)
Task.Route.Add(Step3)
Task.Form.Show