1.8.8. Scheduler

1.8.8.1. TcxSchedulerControlEvent

class TcxSchedulerControlEvent

TcxSchedulerControlEvent - объекты данного класса являются событиями которые отображаются во фрейме планировщика.

Selected: Boolean

Задает является ли данное событие текущим.

Return type:Boolean
IsDataValid: Boolean

Для внутреннего использования.

Return type:Boolean
State: Integer

Содержит состояние события. Может принимать следующие значения:

tlsBusy
занят
tlsFree
свобоный
tlsOutOfOffice
Вне офиса
tlsTentative
гипотетически
Return type:Integer
Start: TDateTime

Свойство задает время и дату старта текущего события. Если свойтво AllDayEvent = true, то свойство Start игнорируется. Для задания прододжительности события используются свойства Duration и Finish.

Return type:TDateTime
ResourceID: Integer

Идентификатор Ресурса, с которым связано событие.

Return type:Integer
ReminderMinutesBeforeStart: Integer

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

Return type:Integer
ReminderDate: TDateTime

Дата и время напоминания (но можно, как льтернативу, использовать ReminderMinutesBeforeStart).

Return type:TDateTime
Reminder: Boolean

Определяет включено или выключено напоминание о событие.

Return type:Boolean
RecurrenceInfo: TcxSchedulerEventRecurrenceInf

Класс настройки периодичности.

Return type:TcxSchedulerEventRecurrenceInf
Pattern: TcxSchedulerControlEvent

Ссылка на etPattern (родительское) событие, если текущее событие входит в последовательность перодических событий.

Return type:TcxSchedulerControlEvent
Message: String

Описание события.

Return type:String
LabelColor: Integer

Свойство задает цвет события.

Return type:Integer
ID: Variant

Метод возвращает уникальный идентификатор события.

Return type:Variant
Finish: TDateTime

Задает продожительность события, аналогично свойство Duration (Данные свойства взаимно друг на друга влияют). Свойство задает время конца события.

Return type:TDateTime
EventType: TcxEventType

Возвращает тип события. Может вернуть следующие значения:

etNone
Обычное пользовательское не периодическое событие
etPattern
Пользовательское событие, являющееся шаблоном(родительскием) для цепочки повторяющихся событий
etOccurrence
Событие в цепочке событий порожденных от etPattern события
etException
Событие удаленное из цепочки повторящихся событий становится типа etException.
etCustom
пользовательское событие из одной последовательности повторяющихся событий, но с измененными настройками периодичности.
Return type:TcxEventType
Duration: TDateTime

Продолжительность событие, равноценно свойству Finish (Данные свойства взаимно друг на друга влияют).

Return type:TDateTime
Caption: String

Название события.

Return type:String
AllDayEvent: Boolean

Событие длится весь день.

Return type:Boolean
ActualFinish: TDateTime

Дата конца последнего события, если собитие периодическое, или дата окончания обычного события.

Return type:TDateTime
ActualStart: TDateTime

Дата начала события события, если собитие периодическое, то первого события.

Return type:TDateTime
Post()

Данный метод следует вызывать если мы хотим сохранить сделанные изменения в событии.

BeginEditing()

Для внутреннего использования.

RemoveRecurrence()

Удаляет у данный объект событий настройки периодичности. И устанавливает EventType в etNone.

DeleteException()

Удаляет все события - исключения и Custom события, если данное событие шаблонное (pattern).

IsRecurring(): Boolean

Возвращает является ли событие периодическим.

Return type:Boolean
EndEditing()

Для внутреннего использования.

Delete()

Удаляет событие.

1.8.8.2. TcxEventType

class TcxEventType

Перечисление

etCustom

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

etException

Событие удаленное из цепочки повторящихся событий становится типа etException.

etOccurrence

Событие в цепочке событий порожденных от etPattern события.

etPattern

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

etNone

Обычное пользовательское не периодическое событие

1.8.8.3. TcxSchedulerOptionsView

class TcxSchedulerOptionsView

TcxSchedulerOptionsView

StartOfWeek: TcxStartOfWeek

День начала недели.

Return type:TcxStartOfWeek
WorkDays: TDays

Рабочие дни.

Return type:TDays
WorkFinish: TTime

Время окончания рабочего дня.

Return type:TTime
WorkStart: TTime

Время начала рабочего дня.

Return type:TTime
Пример
<pascal>
  S := Scheduler;
  S.OptionsView.WorkStart := '10:00';
  S.OptionsView.WorkDays := [dMonday,dTuesday,dWednesday,dThursday,dFriday,dSaturday];
  S.OptionsView.StartOfWeek := swSunday;
</pascal>

1.8.8.4. TcxStartOfWeek

class TcxStartOfWeek

Перечисление. День, с котрого начинается неделя.

swSaturday
swFriday
swThursday
swMonday
swWednesday
swTuesday
swSunday
swSystem

1.8.8.5. TbtkScheduler

class TbtkScheduler

TbtkScheduler

  • при добавлении нового события вызывается операция OnEventAdd
  • при начале редактирования существующего события вызывается операция OnEditEvent
  • при удалении вызывается операция OnDeleteEvent.

По умолчанию, диалоговые окна, которые должны показываться при срабатывании этих событий перекрываются и не отображаются, если вызвана операция-тригер. Если же диалоговое окно необходимо показать, то свойству IsShowEventEditorForm надо присвоить значение True. Новое событие можно полностью отредактировать в паскаль операции, без использования диалоговых окон. Для доступа к в вновь создаваемому событию следует использовать поле CurrentEvent. Закрепление изменений выполняется методом Post объекта события, если не выполнен Post, событие не будет добавлено. Но данный метод не завершает текущую транзакцию. В случае, если IsShowEventEditorForm = True, то метод Post ни в кое случае нельзя вызывать! Перед вызовом Post, если задавались настройки периодичности, необходимо проверять GetValidStatus, и выполнять Post только в том случае, если GetValidStatus вернет rvsValid. Особенностью использования операции OnDeleteEvent, является то, что если она вызвается, то удалять объект надо явно - TcxSchedulerControlEvent.Delete

Пример операции OnEventAdd
// создаем периодическое событие которое
// будет выполняться в течении 4х рабочих дней, начиная с '04.04.2008
// 18:00:00' продолжительностью 2 часов каждый рабочий день.

<pascal>
  Scheduler.CurrentEvent.Caption := 'TEST onEventAdd Caption';
  Scheduler.CurrentEvent.Location := 'TEST onEventAdd Location';
  Scheduler.CurrentEvent.Message := 'TEST onEventAdd Message';
  Scheduler.CurrentEvent.Caption := 'TEST onEventAdd';
  Scheduler.CurrentEvent.State := tlsFree;
  Scheduler.CurrentEvent.Start := StrToDateTime('04.04.2008 18:00:00');
  Scheduler.CurrentEvent.Duration := StrToTime('2:00:00');
  Scheduler.CurrentEvent.LabelColor := clskyblue;
  Scheduler.CurrentEvent.Reminder := 0;
  Scheduler.CurrentEvent.EventType := etPattern;

  if Scheduler.CurrentEvent.RecurrenceInfo <> nil then
  begin
    Scheduler.CurrentEvent.RecurrenceInfo.Count := 4;
    Scheduler.CurrentEvent.RecurrenceInfo.Periodicity := 1;
    Scheduler.CurrentEvent.RecurrenceInfo.DayType := cxdtWeekDay;
    Scheduler.CurrentEvent.RecurrenceInfo.Recurrence := cxreDaily;
  end;
  if Scheduler.CurrentEvent.RecurrenceInfo.GetValidStatus = 0 then
    Scheduler.CurrentEvent.Post
  else
    ShowMessage('Don''t Valid: ' + IntToStr(Scheduler.CurrentEvent.RecurrenceInfo.GetValidStatus));
  //Показать диалог редактировнания события нельзя, так как выполнен Post
  //scheduler.IsShowEventEditorForm := true;
</pascal>
Пример операции onDeleteEvent
// в случае, если данная операция присутствует в выборке, удалять событие надо явно:

<pascal>
  ShowMessage(Scheduler.CurrentEvent.caption);
  Scheduler.CurrentEvent.Delete;
</pascal>
Пример операции OnEditEvent
// доступ к редактируемому событию через scheduler.SelectedEvents[0]

<pascal>
  if scheduler.SelectedEventCount > 0 then
  begin
    scheduler.SelectedEvents[0].Caption :=
    scheduler.SelectedEvents[0].Caption + ' ScriptEditing';
    //scheduler.SelectedEvents[0].Post;
    scheduler.IsShowEventEditorForm := true;
  end;
</pascal>
CurrentEvent: TcxSchedulerControlEvent

Свойство следует использовать в операциях-тригерах срабатывающих на события OnEventAdd, OnEditEvent, OnDeleteEvent. Причем в опеарции OnEventAdd это едиснтвенный способ получить доступ к вновь создаваемому событию. В других операциях доступ к событию можно получить через свойство SelectedEvents[0].

Return type:TcxSchedulerControlEvent
IsShowEventEditorForm: Boolean

Свойство следует использовать в операциях-тригерах срабатывающих на события OnEventAdd, OnEditEvent. Установка в свойства в True, говорит о том, что после выполнения операции, следует показать диалоговое окно редактирования событий.

Return type:Boolean
OptionsView: TcxSchedulerOptionsView

Параметры внешнего вида.

Return type:TcxSchedulerOptionsView
SelectionStart: TDateTime

Дата начала выделения на рабочей области планировщика.

Return type:TDateTime
SelectedResource: Variant

Идентификатор выделенного ресурса.

Return type:Variant
SelectedEventCount: Integer

Количество выделенных событий.

Return type:Integer
SelectedEvents: TcxSchedulerControlEvent

Список выделенных элементов с доступом по индексу.

Return type:TcxSchedulerControlEvent
SelectionFinish: TDateTime

Дата окончания выделения на рабочей области планировщика.

Return type:TDateTime
DateNavigator: TcxSchedulerDateNavigator

Параметры календаря.

Return type:TcxSchedulerDateNavigator
GoToDate(Date: TDateTime): Boolean

Переходит на заданную дату в навигаторе дат и планировщике.

Parameters:Date (TDateTime) – Дата, на которую надо перейти.
Return type:Boolean
Returns:
True
При успешном переходе
False
В случае ошибки при переходе

New in version Global_5.12_ms_18.

SelectDays(Days: array of TDateTime)

Выбирает набор дат в навигаторе дат и планировщике.

Parameters:Days (array of TDateTime) – Массив дат.

New in version Global_5.12_ms_18.

SelectDays(StartDay, FinishDay: TDateTime)

Выбирает диапазон дат в навигаторе дат и планировщике.

Parameters:
  • StartDay (TDateTime) – Начальная дата.
  • FinishDay (TDateTime) – Конечная дата.

Note

Если в диапазоне меньше 15 дней, в окне планировщика они отображаются в представлении дней. В противном случае они отображатся в представлении недель.

New in version Global_5.12_ms_18.

1.8.8.6. TcxSchedulerEventRecurrenceInfo

class TcxSchedulerEventRecurrenceInfo

Класс определяет настройки переодичности события для повторяющихся событий. Доступ к объекту данного класса можно получить через своство RecurrenceInfo объета класса TcxSchedulerControlEvent. Если данные настройки заданы у события, то функция IsRecurring вернет True.

YearPeriodicity: Integer

Задает частоту с которой будет выполнятся события в последовательности событий со свойством Recurrence = cxreYearly.

Return type:Integer
Start: TDateTime

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

Return type:TDateTime
Recurrence: TcxRecurrence
cxreDaily
шаблон периодичности задается на посуточной основе
cxreWeekly
шаблон периодичности задается на недельной основе
cxreMonthly
шаблон периодичности задается на ежемесячной основе
cxreYearly
шаблон периодичности задается на годичной основе Свойство связанно со свойством Periodicity. Если Periodicity = 3, Recurrence = cxreDaily, то событие будет выполнятся каждый третий день.
Return type:TcxRecurrence
Periodicity: Integer

Задает частоту с которой будет повторятся данное событие с учетом свойства Periodicity.

Return type:Integer
OccurDays: TDays

Задает множество дней недели, в которые будут входить последовательность событий. То есть в данные дни недели будут выполняться данные события.

Return type:TDays
Finish: TDateTime

Задает дату конца последовательности повторящихся событий.

Return type:TDateTime
Event: TcxSchedulerControlEvent

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

Return type:TcxSchedulerControlEvent
DismissDate: TDateTime

Задает дату, когда напоминает было выключено в последний раз.

Return type:TDateTime
DayType: TcxDayType
cxdtDay
задает каждый n-ый день в месяце
cxdtEveryDay
задает каждый n-ый день в недели
cxdtWeekDay
задает все рабочие дни недели
cxdtWeekEndDay
задает все выходные дни недели
cxdtSunday
задает повтор в воскресенье
cxdtMonday
задает повтор в понедельник
cxdtTuesday
задает повтор во вторник
cxdtWednesday
задает повтор в среду
cxdtThursday
задает повтор в четверг
cxdtFriday
задает повтор в пятницу
cxdtSaturday
задает повтор в субботу.
Return type:TcxDayType
DayNumber: Integer

Свойство задает номер дня в месяце/рабочей недели. Текущее значение DayNumber зависит от состояния DayType.

Return type:Integer
Count: Integer

Возвращает количество событий в цепочке периодических событий. Если Count = 0, то конец цепочки событий определяется свойством Finish. Если Count < 0, то дата окончания цепочки событий не определена, и будет выполняться бесконечно.

Return type:Integer
Validate()

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

GetValidStatus(): Integer

Возвращает состояние деталей повторения.

Return type:Integer
GetEndDate(): TDateTime

Задает дату конца последовательности повторящихся событий.

Return type:TDateTime

1.8.8.7. TcxRecurrence

class TcxRecurrence

Перечисление

cxreYearly
cxreMonthly
cxreWeekly
cxreDaily

1.8.8.8. TcxDayType

class TcxDayType

Перечисление

cxdtSaturday
cxdtFriday
cxdtThursday
cxdtWednesday
cxdtTuesday
cxdtMonday
cxdtSunday
cxdtWeekEndDay
cxdtWeekDay
cxdtEveryDay
cxdtDay

1.8.8.9. TDays

class TDays

Перечисление

dSunday
dMonday
dTuesday
dWednesday
dThursday
dFriday
dSaturday

1.8.8.10. TcxSchedulerDateNavigator

class TcxSchedulerDateNavigator

TcxSchedulerDateNavigator

SelectedCount: Integer

Количество дней, выделенных в календаре.

Return type:Integer
SelectedList: Array

Массив выделенных дат.

Return type:Array
Date: TDateTime

Дата выделенная на календаре. Если выделены несколько дат (период), свойство должно иметь значение наименьшей даты в периоде.

Return type:TDateTime
Пример
<pascal>
  if Assigned(Scheduler) then
  begin
    ShowMessage('Выделенная Дата: ' +
    FloatToStr(Scheduler.dateNavigator.Date));
    ShowMessage('Количество выделенных дней: ' +
    FloatToStr(Scheduler.dateNavigator.SelectedCount));
    res := '';
    for i := 0 to Scheduler.dateNavigator.SelectedCount - 1 do
    Res := Res + ' --> ' +
    DateToStr(Scheduler.dateNavigator.SelectedList[i]) ;
    ShowMessage('Все выделенные записи: ' + Res);
  end;
</pascal>

1.8.8.11. TcxRecurrenceValidStatus

class TcxRecurrenceValidStatus

Перечисление

rvsValid

Все детали повторения корректны.

rvsReplaceOccurrenceDate

Дата, указанная как день в месяце для повторения события или праздника, действительна, но некоторые месяцы не имеют столько дней. В этих случаях событие произойдет в последний день месяца.

rvsInvalidPattern

Шаблон поторения некорректен. Например, указан некорректный день, так как ни в одном из месяцев нет столько дней.

rvsInvalidDuration

Диапазон повторения некорректен. Например, частота повторения короче длительности пользовательского события.