IScheduledTaskPeriodMonthly.WeekOfMonth

Синтаксис

WeekOfMonth: CalendarWeekOfMonth;

Описание

Свойство WeekOfMonth определяет неделю месяца, в которой будет производиться расчет. Актуально, если свойству DayOfWeek установлено значение, отличное от CalendarDayOfWeek.LocaleDefault.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера запланированных задач с идентификатором "TASK_CONTAINTER" и модуля с идентификатором "Module_1". В модуле имеется процедура "Main".

Sub Main;

Var

MB: IMetabase;

CrInfo: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Exe: IExecuteSubScheduledTask;

Per: IScheduledTaskPeriodMonthly;

Prop: IScheduledTaskProperties;

i: Integer;

Begin

MB := MetabaseClass.Active;

CrInfo := MB.CreateCreateInfo;

CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TASK_EXECUTESUB;

CrInfo.Id := "MODULE_EXECUTOR";

CrInfo.Name := "Выполнение модуля";

CrInfo.Parent := MB.ItemById("TASK_CONTAINTER");

MObj := MB.CreateObject(CrInfo).Edit;

Exe := MObj As IExecuteSubScheduledTask;

Exe.Assembly := (MB.ItemById("Module_1").Bind As IModule).Assembly;

Exe.SubName := "Main";

Prop := Exe.Properties;

Per := Prop.CreatePeriod(ScheduledTaskPeriodType.Monthly) As IScheduledTaskPeriodMonthly;

Per.DayOfWeek := CalendarDayOfWeek.Monday;

Per.WeekOfMonth := CalendarWeekOfMonth.Third;

For i := 1 To 12 Do

Per.Months(i As CalendarMonth) := True;

End For;

Per.StartTime := DateTime.ComposeTimeOfDay(12, 0, 0, 0);

Prop.Period := Per;

MObj.Save;

End Sub Main;

После выполнения примера в контейнере запланированных задач будет создана новая задача выполнения модуля. Модуль будет запускаться каждый третий понедельник месяца в "12:00".

См. также:

IScheduledTaskPeriodMonthly