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

Серия моих постов о DevExpress осталась не законченной. И еще несколько постов про гриды я планирую сделать. Но недавно свалилась очередная интересная задача. Потребовалось “прикрутить” к приложению диаграмму Гантта.

Для решения данной задачи придется использовать сторонние компоненты. Очевидно, что вариантов два ExpressScheduler и TMS Planner. Есть и другие компоненты, но проект – не однодневка. И, вполне вероятно в будущем будет мигрировать на старшие версии Delphi. Своими руками рыть яму проекту не хочу, поэтому использоваться будет то, что гарантированно доживет до следующей версии Delphi. Более того, с учетом того, что DevExpress уже используется в приложении, практически со 100% й вероятностью будет выбран ExpressScheduler. Что, однако, не является поводом не посмотреть на TMS Planner, и не рассказать о нем в блоге.

Но начну, по понятным причинам, с ExpressScheduler.

Итак, прежде всего, посмотрим, из каких элементов состоит ExpressScheduler?

Scheduling area (поле расписания) Представлено классом TcxSchedulerCustomView. Собственно, здесь и отображается само расписание. Как и в случае с Grid, можно выбирать различные представления (View). Быстро переключить активное представление можно с помощью контекстного меню.

Date Navigator pane (панель навигации по датам) или попросту календарь. Представлена классом TcxSchedulerDateNavigator. Служит для изменения даты, для которой нужно отображать данные в поле расписания.

Control Box pane (панель управления). Представлена классом TcxSchedulerControlBox. Сюда можно поместить дополнительные элементы управления для работы с ExpressScheduler.

Очевидно, что для нас основной интерес представляет настройка scheduling area. Основное внимание я, исходя из собственных задач, уделю представлению Gantt View. Но, все же вкратце мы рассмотрим и остальные представления.

Шесть свойств ExpressScheduler‘а позволяют активировать и настроить соответствующее представление:

ViewDay: TcxSchedulerDayView
ViewGantt: TcxSchedulerGanttView
ViewTimeGrid: TcxSchedulerTimeGridView
ViewWeek: TcxSchedulerWeekView
ViewWeeks: TcxSchedulerWeeksView
ViewYear: TcxSchedulerYearView

Day View

В этом представлении по горизонтальной оси располагаются дни (даты), по вертикальной – часы. Активировать это представление можно так:

cxScheduler1.ViewDay.Active:= true;

Диапазон дат выбирается на Date Navigator pane. По умолчанию, выделяется неделя. Но можно выделить и большее количество дней (до 14-и). При выделении большего диапазона представление переключается автоматически и активным становится Week View. Повторный вызов

cxScheduler1.ViewDay.Active:= true;

все же позволит отобразить большее количество дней.

Рабочие дни и часы по умолчанию подсвечены. OptionsView.WorkDays определяет какие дни считаются рабочими. Свойства OptionsView.WorkStart и OptionsView.WorkFinish задуют начало и окончание рабочего дня.

Свойство TcxSchedulerDayView.TimeScale определяет шаг по времени.

cxScheduler1.ViewDay.TimeScale:=10;

Шаг шкалы времени будет 10 минут.

С помощью свойств TcxSchedulerOptionsView.ShowAdditionalTimeZone, OptionsView.CurrentTimeZone и OptionsView.AdditionalTimeZone можно показать дополнительную временную зону на шкале времени.

Week View

В этом представлении в поле расписания расположены дни недели. Менять недели можно используя полосу прокрутки scheduling area. При попытке выбрать дату или диапазон дат в календаре произойдет автоматическая смена представления.

Weeks View

Это представление позволяет отобразить две и более недели.

Year View

В этом представлении отображаются все дни одного года.

Timegrid View

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

Gantt View

До тех пор, пока данные не внесены, визуально это представление ничем не отличается от Timegrid View.

О том, каким образом заносить данные в ExpressScheduler я расскажу в следующей части…

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

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


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

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

  • Было бы здорово, если бы по ExpressScheduler описали бы синхронизацию с outlook. Да, есть пример, но он не связан с БД и нет нормального описания.

  • >>Свойства OptionsView.WorkStart и OptionsView.WorkFinish задуют начало

    задают

Оставить комментарий

Ваш 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
Яндекс.Метрика