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
-
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¶
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
Параметры календаря.
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¶
1.8.8.8. TcxDayType¶
1.8.8.9. TDays¶
1.8.8.11. TcxRecurrenceValidStatus¶
-
class
TcxRecurrenceValidStatus¶ Перечисление
-
rvsValid¶ Все детали повторения корректны.
-
rvsReplaceOccurrenceDate¶ Дата, указанная как день в месяце для повторения события или праздника, действительна, но некоторые месяцы не имеют столько дней. В этих случаях событие произойдет в последний день месяца.
-
rvsInvalidPattern¶ Шаблон поторения некорректен. Например, указан некорректный день, так как ни в одном из месяцев нет столько дней.
-
rvsInvalidDuration¶ Диапазон повторения некорректен. Например, частота повторения короче длительности пользовательского события.
-