Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Перед тем, как продолжить рассказ о TcxScheduler, начатый в прошлом посте серии,  отвечу на многочисленные вопросы читателей блога, относительно русской документации по DevExpress. Ее нет, и как мне удалось узнать, ее создание не планируется. Но возможно создание шаблонов руководства пользователя на русском  языке.

Вне зависимости от того, какое представление активно, в режиме исполнения (Run Time Mode) мы можем вызвать контекстное меню и обнаружить два неактивных пункта: New Event (новое событие) и New All Day Event (новое ежедневное событие). Очевидно, предполагается, что ExpressScheduler позволяет добавлять события. Для того, что бы активировать данную возможность добавим компонент TcxSchedulerStorage и укажем его в качестве значения свойства Storage нашего компонента TcxScheduler.

Теперь, запустив приложение, мы можем убедиться, что пункты контекстного меню стали доступными. Вызвав пункт New Event, мы увидим диалоговое окно, позволяющее настроить параметры события. Соответственно, после создания события появляется и его отображение в ExpressScheduler’е.

Для каждого представления событие отображается по-разному и, соответственно, прямоугольник, обозначающий событие содержит различные элементы:

Day View:

  • Иконка – звонок, показывает, включено ли напоминание;
  • Иконка со стрелками, показывает, является ли событие повторяющимся.
  • Время начала и окончания пользовательского события.
  • Subject (предмет);
  • Локация (Location);
  • Описание события.

Week View:

  • Время начала и окончания пользовательского события.
  • Subject (предмет);
  • Локация (Location);

Weeks View:

  • Время начала и окончания пользовательского события.
  • Subject (предмет);

Timegrid View:

  • Иконка – звонок, показывает, включено ли напоминание;
  • Иконка со стрелками, показывает, является ли событие
  • Время начала и окончания пользовательского события.
  • Subject (предмет);
  • Локация (Location);
  • Описание события.

Year view:

  • Иконка – звонок, показывает, включено ли напоминание;
  • Subject (предмет);
  • Локация (Location);

Событие довольно не сложно создать и  программно.

with cxschdlrstrg1.CreateEvent do
begin
Caption := ‘Meeting'; // specify the subject
Start := Date + 10 * HourToTime; // the start time of the user event (the HourToTime constant
//is defined in the cxSchedulerUtils unit)
Duration := 30 * MinuteToTime; // the duration of the user event (the MinuteToTime constant
//is defined in the cxSchedulerUtils unit)
State := tlsBusy; // the availability status is “busy”
Post; // synchronize with storage
end;

Соответственно, мы можем использовать и собственный редактор событий, а так же переопределить контекстное меню для TcxScheduler.
Если мы создадим событие с помощью TcxSchedulerStorage, а затем перезапустим приложение, то событие не будет сохранено. Однако, данную проблему помогут решить методы SaveToSteram, SaveToFile, LoadFromStream и LoadFromFile.
Некоторые события могут быть повторяющимися.  Для создания такого типа событий в Run Time следует воспользоваться пунктом контекстного меню New Recurring Event. При этом вызывается соответствующий диалог.

with cxschdlrstrg1.CreateEvent do
begin
ResourceID := 1; // assign the newly created user event to the Lesli Gritts resource. For
//how to set up a resource in bound mode see the Bound Mode topic
Caption := ‘Appointment with a doctor'; // specify the subject
Start := Date + 10 * HourToTime; // the start time of the user event (the HourToTime
//constant is defined in the cxSchedulerUtils unit)
Duration := 30 * MinuteToTime; // the duration of the user event (the MinuteToTime constant
//is defined in the cxSchedulerUtils unit)
State := tlsOutOfOffice; // the availability status is “out of office”
EventType := etPattern; // start the series of the occurrences
RecurrenceInfo.Count := 3; // end after three occurrences
RecurrenceInfo.Recurrence := cxreDaily; // the daily basis
RecurrenceInfo.DayType := cxdtWeekDay;
RecurrenceInfo.Periodicity := 1; // repeat every weekday
Post; // synchronize with storage
end;

Как видно из кода, ключевым свойством для определения периодичности события является RecurrenceInfo: TcxRecurrenceInfo.

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

Другие статьи серии:

DevExpress. Заметки на полях #0
DevExpress. Заметки на полях #1
DevExpress. Заметки на полях #2
DevExpress. Заметки на полях #3
DevExpress. Заметки на полях #3.5
DevExpress. Заметки на полях #5
DevExpress. Заметки на полях #6
DevExpress. Заметки на полях #7
DevExpress. Заметки на полях #8
DevExpress. Заметки на полях #9
DevExpress. Заметки на полях #10
DevExpress. Заметки на полях #11
DevExpress. Заметки на полях #13


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

4 комментария: DevExpress. Заметки на полях #12

  • Хорошо бы поиметь рассказ на тему диаграммы Ганта с использованием DevExpress Scheduler

    • В процессе. Но я обо всем по порядку расскажу.
      На самом деле, строятся диаграммы Ганта как и все остальные диаграммы довольно просто.
      Скорее всего, в последней части серии постов про Шедуллеры я просто пошагово сделаю пример построения диаграммы Ганта.

  • Вам бы сделать какое-нибудь начальное описание. Типа с чего начать и т.д. А также обзор основных свойств.
    Например, есть TcxSchedulerDBStorage.FieldNames, вот какие там нужны поля, какие типов?

  • Кто работал с планировщиком для многопользовательской работы?
    Есть примеры, информация?

Ответить на admin Отмена ответа

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика