Scheduler
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TcxSchedulerControlEvent
......................................................................
.. warning:: |not_supported|
.. pas:class:: TcxSchedulerControlEvent
TcxSchedulerControlEvent - объекты данного класса являются событиями
которые отображаются во фрейме планировщика.
.. pas:attribute:: Selected: Boolean
Задает является ли данное событие текущим.
:rtype: Boolean
.. pas:attribute:: IsDataValid: Boolean
Для внутреннего использования.
:rtype: Boolean
.. pas:attribute:: State: Integer
Содержит состояние события. Может принимать следующие значения:
tlsBusy
занят
tlsFree
свободный
tlsOutOfOffice
Вне офиса
tlsTentative
гипотетически
:rtype: Integer
.. pas:attribute:: Start: TDateTime
Свойство задает время и дату старта текущего события. Если свойтво
``AllDayEvent = true``, то свойство ``Start`` игнорируется. Для задания
продолжительности события используются свойства ``Duration`` и ``Finish``.
:rtype: TDateTime
.. pas:attribute:: ResourceID: Integer
Идентификатор Ресурса, с которым связано событие.
:rtype: Integer
.. pas:attribute:: ReminderMinutesBeforeStart: Integer
Количество минут до старта события, за которое необходимо начать
показывать напоминание о событии.
:rtype: Integer
.. pas:attribute:: ReminderDate: TDateTime
Дата и время напоминания (но можно, как альтернативу, использовать
``ReminderMinutesBeforeStart``).
:rtype: TDateTime
.. pas:attribute:: Reminder: Boolean
Определяет включено или выключено напоминание о событие.
:rtype: Boolean
.. pas:attribute:: RecurrenceInfo: TcxSchedulerEventRecurrenceInf
Класс настройки периодичности.
:rtype: TcxSchedulerEventRecurrenceInf
.. pas:attribute:: Pattern: TcxSchedulerControlEvent
Ссылка на *etPattern* (родительское) событие, если текущее событие входит
в последовательность периодических событий.
:rtype: TcxSchedulerControlEvent
.. pas:attribute:: Message: String
Описание события.
:rtype: String
.. pas:attribute:: LabelColor: Integer
Свойство задает цвет события.
:rtype: Integer
.. pas:attribute:: ID: Variant
Метод возвращает уникальный идентификатор события.
:rtype: Variant
.. pas:attribute:: Finish: TDateTime
Задает продолжительность события, аналогично свойство ``Duration`` (Данные
свойства взаимно друг на друга влияют). Свойство задает время конца
события.
:rtype: TDateTime
.. pas:attribute:: EventType: TcxEventType
Возвращает тип события. Может вернуть следующие значения:
etNone
Обычное пользовательское не периодическое событие
etPattern
Пользовательское событие, являющееся шаблоном(родительским) для
цепочки повторяющихся событий
etOccurrence
Событие в цепочке событий порожденных от etPattern события
etException
Событие удаленное из цепочки повторящихся событий становится типа etException.
etCustom
пользовательское событие из одной последовательности
повторяющихся событий, но с измененными настройками периодичности.
:rtype: TcxEventType
.. pas:attribute:: Duration: TDateTime
Продолжительность события, равноценно свойству ``Finish`` (Данные свойства
взаимно друг на друга влияют).
:rtype: TDateTime
.. pas:attribute:: Caption: String
Название события.
:rtype: String
.. pas:attribute:: AllDayEvent: Boolean
Событие длится весь день.
:rtype: Boolean
.. pas:attribute:: ActualFinish: TDateTime
Дата конца последнего события, если событие периодическое, или дата
окончания обычного события.
:rtype: TDateTime
.. pas:attribute:: ActualStart: TDateTime
Дата начала события события, если событие периодическое, то первого
события.
:rtype: TDateTime
.. pas:method:: Post()
Данный метод следует вызывать если мы хотим сохранить сделанные
изменения в событии.
.. pas:method:: BeginEditing()
Для внутреннего использования.
.. pas:method:: RemoveRecurrence()
Удаляет у данного объект событий настройки периодичности. И устанавливает
``EventType`` в *etNone*.
.. pas:method:: DeleteException()
Удаляет все события - исключения и Custom события, если данное событие
шаблонное (pattern).
.. pas:method:: IsRecurring(): Boolean
Возвращает является ли событие периодическим.
:rtype: Boolean
.. pas:method:: EndEditing()
Для внутреннего использования.
.. pas:method:: Delete()
Удаляет событие.
TcxEventType
...............
.. pas:class:: TcxEventType
Перечисление
.. pas:attribute:: etCustom
Пользовательское событие из одной последовательности повторяющихся
событий, но с измененными настройками периодичности.
.. pas:attribute:: etException
Событие удаленное из цепочки повторящихся событий становится типа
etException.
.. pas:attribute:: etOccurrence
Событие в цепочке событий порожденных от etPattern события.
.. pas:attribute:: etPattern
Пользовательское событие, являющееся шаблоном(родительским) для цепочки
повторяющихся событий.
.. pas:attribute:: etNone
Обычное пользовательское не периодическое событие
TcxSchedulerOptionsView
......................................................................
.. warning:: |not_supported|
.. pas:class:: TcxSchedulerOptionsView
TcxSchedulerOptionsView
.. pas:attribute:: StartOfWeek: TcxStartOfWeek
День начала недели.
:rtype: TcxStartOfWeek
.. pas:attribute:: WorkDays: TDays
Рабочие дни.
:rtype: TDays
.. pas:attribute:: WorkFinish: TTime
Время окончания рабочего дня.
:rtype: TTime
.. pas:attribute:: WorkStart: TTime
Время начала рабочего дня.
:rtype: TTime
.. code-block:: delphi
:caption: Пример
S := Scheduler;
S.OptionsView.WorkStart := '10:00';
S.OptionsView.WorkDays := [dMonday,dTuesday,dWednesday,dThursday,dFriday,dSaturday];
S.OptionsView.StartOfWeek := swSunday;
TcxStartOfWeek
................
.. pas:class:: TcxStartOfWeek
Перечисление. День, с которого начинается неделя.
.. pas:attribute:: swSaturday
.. pas:attribute:: swFriday
.. pas:attribute:: swThursday
.. pas:attribute:: swMonday
.. pas:attribute:: swWednesday
.. pas:attribute:: swTuesday
.. pas:attribute:: swSunday
.. pas:attribute:: swSystem
TbtkScheduler
......................................................................
.. warning:: |not_supported|
.. pas:class:: TbtkScheduler
TbtkScheduler
- при добавлении нового события вызывается операция ``OnEventAdd``
- при начале редактирования существующего события вызывается операция ``OnEditEvent``
- при удалении вызывается операция ``OnDeleteEvent``.
По умолчанию, диалоговые окна, которые должны показываться при
срабатывании этих событий перекрываются и не отображаются, если
вызвана операция-тригер. Если же диалоговое окно необходимо показать,
то свойству ``IsShowEventEditorForm`` надо присвоить значение **True**. Новое
событие можно полностью отредактировать в паскаль операции, без
использования диалоговых окон. Для доступа к в вновь создаваемому
событию следует использовать поле *CurrentEvent*. Закрепление изменений
выполняется методом ``Post`` объекта события, если не выполнен ``Post``,
событие не будет добавлено. Но данный метод не завершает текущую
транзакцию. В случае, если ``IsShowEventEditorForm = True``, то метод ``Post``
ни в кое случае нельзя вызывать! Перед вызовом ``Post``, если задавались
настройки периодичности, необходимо проверять ``GetValidStatus``, и
выполнять ``Post`` только в том случае, если ``GetValidStatus`` вернет
**rvsValid**.
Особенностью использования операции ``OnDeleteEvent``, является то, что
если она вызывается, то удалять объект надо явно - ``TcxSchedulerControlEvent.Delete``
.. code-block:: delphi
:caption: Пример операции OnEventAdd
// создаем периодическое событие которое
// будет выполняться в течении 4х рабочих дней, начиная с '04.04.2008
// 18:00:00' продолжительностью 2 часов каждый рабочий день.
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;
.. code-block:: delphi
:caption: Пример операции **onDeleteEvent**
// в случае, если данная операция присутствует в выборке, удалять событие надо явно:
ShowMessage(Scheduler.CurrentEvent.caption);
Scheduler.CurrentEvent.Delete;
.. code-block:: delphi
:caption: Пример операции **OnEditEvent**
// доступ к редактируемому событию через scheduler.SelectedEvents[0]
if scheduler.SelectedEventCount > 0 then
begin
scheduler.SelectedEvents[0].Caption :=
scheduler.SelectedEvents[0].Caption + ' ScriptEditing';
//scheduler.SelectedEvents[0].Post;
scheduler.IsShowEventEditorForm := true;
end;
.. pas:attribute:: CurrentEvent: TcxSchedulerControlEvent
Свойство следует использовать в операциях-тригерах срабатывающих на
события ``OnEventAdd``, ``OnEditEvent``, ``OnDeleteEvent``. Причем в операции
``OnEventAdd`` это единственный способ получить доступ к вновь создаваемому
событию. В других операциях доступ к событию можно получить через
свойство ``SelectedEvents[0]``.
:rtype: TcxSchedulerControlEvent
.. pas:attribute:: IsShowEventEditorForm: Boolean
Свойство следует использовать в операциях-тригерах срабатывающих на
события ``OnEventAdd``, ``OnEditEvent``. Установка в свойства в **True**, говорит о
том, что после выполнения операции, следует показать диалоговое окно
редактирования событий.
:rtype: Boolean
.. pas:attribute:: OptionsView: TcxSchedulerOptionsView
Параметры внешнего вида.
:rtype: TcxSchedulerOptionsView
.. pas:attribute:: SelectionStart: TDateTime
Дата начала выделения на рабочей области планировщика.
:rtype: TDateTime
.. pas:attribute:: SelectedResource: Variant
Идентификатор выделенного ресурса.
:rtype: Variant
.. pas:attribute:: SelectedEventCount: Integer
Количество выделенных событий.
:rtype: Integer
.. pas:attribute:: SelectedEvents: TcxSchedulerControlEvent
Список выделенных элементов с доступом по индексу.
:rtype: TcxSchedulerControlEvent
.. pas:attribute:: SelectionFinish: TDateTime
Дата окончания выделения на рабочей области планировщика.
:rtype: TDateTime
.. pas:attribute:: DateNavigator: TcxSchedulerDateNavigator
Параметры календаря.
:rtype: TcxSchedulerDateNavigator
.. pas:method:: GoToDate(Date: TDateTime): Boolean
Переходит на заданную дату в навигаторе дат и планировщике.
:param TDateTime Date: Дата, на которую надо перейти.
:rtype: Boolean
:returns:
True
При успешном переходе
False
В случае ошибки при переходе
.. pas:method:: SelectDays(Days: array of TDateTime)
Выбирает набор дат в навигаторе дат и планировщике.
:param Days: Массив дат.
:type Days: array of TDateTime
.. pas:method:: SelectDays(StartDay, FinishDay: TDateTime)
Выбирает диапазон дат в навигаторе дат и планировщике.
:param TDateTime StartDay: Начальная дата.
:param TDateTime FinishDay: Конечная дата.
.. note::
Если в диапазоне меньше 15 дней, в окне планировщика они отображаются в представлении дней.
В противном случае они отображатся в представлении недель.
TcxSchedulerEventRecurrenceInfo
......................................................................
.. warning:: |not_supported|
.. pas:class:: TcxSchedulerEventRecurrenceInfo
Класс определяет настройки периодичности события для повторяющихся
событий. Доступ к объекту данного класса можно получить через своство
``RecurrenceInfo`` объета класса :pas:class:`TcxSchedulerControlEvent`. Если данные
настройки заданы у события, то функция ``IsRecurring`` вернет **True**.
.. pas:attribute:: YearPeriodicity: Integer
Задает частоту с которой будет выполнятся события в последовательности
событий со свойством ``Recurrence = cxreYearly``.
:rtype: Integer
.. pas:attribute:: Start: TDateTime
Задает дату и время начала последовательности повторяющихся событий.
:rtype: TDateTime
.. pas:attribute:: Recurrence: TcxRecurrence
cxreDaily
шаблон периодичности задается на посуточной основе
cxreWeekly
шаблон периодичности задается на недельной основе
cxreMonthly
шаблон периодичности задается на ежемесячной основе
cxreYearly
шаблон периодичности задается на годичной основе Свойство
связанно со свойством ``Periodicity``. ``Если Periodicity = 3``, ``Recurrence =
cxreDaily``, то событие будет выполнятся каждый третий день.
:rtype: TcxRecurrence
.. pas:attribute:: Periodicity: Integer
Задает частоту с которой будет повторятся данное событие с учетом
свойства ``Periodicity``.
:rtype: Integer
.. pas:attribute:: OccurDays: TDays
Задает множество дней недели, в которые будут входить последовательность
событий. То есть в данные дни недели будут выполняться данные события.
:rtype: TDays
.. pas:attribute:: Finish: TDateTime
Задает дату конца последовательности повторящихся событий.
:rtype: TDateTime
.. pas:attribute:: Event: TcxSchedulerControlEvent
Свойство является ссылкой на событие которому принадлжит данный шаблон
периодичности.
:rtype: TcxSchedulerControlEvent
.. pas:attribute:: DismissDate: TDateTime
Задает дату, когда напоминает было выключено в последний раз.
:rtype: TDateTime
.. pas:attribute:: DayType: TcxDayType
cxdtDay
задает каждый n-ый день в месяце
cxdtEveryDay
задает каждый n-ый день в неделе
cxdtWeekDay
задает все рабочие дни недели
cxdtWeekEndDay
задает все выходные дни недели
cxdtSunday
задает повтор в воскресенье
cxdtMonday
задает повтор в понедельник
cxdtTuesday
задает повтор во вторник
cxdtWednesday
задает повтор в среду
cxdtThursday
задает повтор в четверг
cxdtFriday
задает повтор в пятницу
cxdtSaturday
задает повтор в субботу.
:rtype: TcxDayType
.. pas:attribute:: DayNumber: Integer
Свойство задает номер дня в месяце/рабочей недели. Текущее значение
``DayNumber`` зависит от состояния *DayType*.
:rtype: Integer
.. pas:attribute:: Count: Integer
Возвращает количество событий в цепочке периодических событий. Если
``Count = 0``, то конец цепочки событий определяется свойством ``Finish``. Если
``Count < 0``, то дата окончания цепочки событий не определена, и будет
выполняться бесконечно.
:rtype: Integer
.. pas:method:: Validate()
Проверяет корректность настройек повторения события. В случае некорректных насстроек возбуждает исключение.
.. pas:method:: GetValidStatus(): Integer
Возвращает состояние деталей повторения.
:rtype: Integer
.. pas:method:: GetEndDate(): TDateTime
Задает дату конца последовательности повторящихся событий.
:rtype: TDateTime
TcxRecurrence
..............
.. warning:: |not_supported|
.. pas:class:: TcxRecurrence
Перечисление
.. pas:attribute:: cxreYearly
.. pas:attribute:: cxreMonthly
.. pas:attribute:: cxreWeekly
.. pas:attribute:: cxreDaily
TcxDayType
.............
.. warning:: |not_supported|
.. pas:class:: TcxDayType
Перечисление
.. pas:attribute:: cxdtSaturday
.. pas:attribute:: cxdtFriday
.. pas:attribute:: cxdtThursday
.. pas:attribute:: cxdtWednesday
.. pas:attribute:: cxdtTuesday
.. pas:attribute:: cxdtMonday
.. pas:attribute:: cxdtSunday
.. pas:attribute:: cxdtWeekEndDay
.. pas:attribute:: cxdtWeekDay
.. pas:attribute:: cxdtEveryDay
.. pas:attribute:: cxdtDay
TDays
......
.. warning:: |not_supported|
.. pas:class:: TDays
Перечисление
.. pas:attribute:: dSunday
.. pas:attribute:: dMonday
.. pas:attribute:: dTuesday
.. pas:attribute:: dWednesday
.. pas:attribute:: dThursday
.. pas:attribute:: dFriday
.. pas:attribute:: dSaturday
TcxSchedulerDateNavigator
......................................................................
.. warning:: |not_supported|
.. pas:class:: TcxSchedulerDateNavigator
TcxSchedulerDateNavigator
.. pas:attribute:: SelectedCount: Integer
Количество дней, выделенных в календаре.
:rtype: Integer
.. pas:attribute:: SelectedList: Array
Массив выделенных дат.
:rtype: Array
.. pas:attribute:: Date: TDateTime
Дата выделенная на календаре. Если выделены несколько дат (период),
свойство должно иметь значение наименьшей даты в периоде.
:rtype: TDateTime
.. code-block:: delphi
:caption: Пример
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;
TcxRecurrenceValidStatus
....................................................................
.. warning:: |not_supported|
.. pas:class:: TcxRecurrenceValidStatus
Перечисление
.. pas:attribute:: rvsValid
Все детали повторения корректны.
.. pas:attribute:: rvsReplaceOccurrenceDate
Дата, указанная как день в месяце для повторения события или праздника, действительна, но некоторые месяцы не имеют столько дней. В этих случаях событие произойдет в последний день месяца.
.. pas:attribute:: rvsInvalidPattern
Шаблон повторения некорректен. Например, указан некорректный день, так как ни в одном из месяцев нет столько дней.
.. pas:attribute:: rvsInvalidDuration
Диапазон повторения некорректен. Например, частота повторения короче длительности пользовательского события.