powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress cxScheduler
10 сообщений из 10, страница 1 из 1
DevExpress cxScheduler
    #39727429
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
У меня на форме есть CheckBox - соответствующим рабочим дням при Checked эти дни отображаются.
Похожая тема подымалась но так и не раскрыли ее.
Пользуюсь Delphi XE7
У компонента DevExpress - cxScheduler
В Properties есть OptionView.WorkDays
И мне нужно им управлять. в описаниях DevExpress про это не сказано. На просторах Googl нет.
если кто сталкивался подскажите.... как это реализовать.

Пробовал как писали в похожей теме но увы.
Но не работает. Ошибок не выдает... но и не чего не делает.
Код: pascal
1.
2.
if checkboxSunday.checked then 
  cxScheduler1.OptionsView.WorkDays := cxScheduler1.OptionsView.WorkDays + [dSunday];
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727434
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorkDays -- это для раскраски календаря на рабочие и не рабочие дни. Можно указывать только дни недели, даты нельзя.

Соответственно, если в настройках шедулера эта раскраска по дням не включена -- то и разницы не будет видно.
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727435
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDi,
Я понимаю что в WorkDays - указывается dSunday, dMonday и т.д.
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727438
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kadekin,
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727442
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё корректно меняется:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TForm15.cxCheckBox1PropertiesEditValueChanged(Sender: TObject);
begin
  if cxCheckBox1.Checked then
  begin
    cxScheduler1.OptionsView.WorkDays := cxScheduler1.OptionsView.WorkDays + [cxDateUtils.TDay.dSunday]
  end
  else
  begin
    cxScheduler1.OptionsView.WorkDays := cxScheduler1.OptionsView.WorkDays - [cxDateUtils.TDay.dSunday]
  end;
end;



А вот если посмотреть в справку, то там можно увидеть, что такие же настройки выходных есть в ресурсах. И у них будет приоритет:

авторSpecifies the days that contain work hours.

Syntax
type
TDay = (dSunday, dMonday, dTuesday, dWednesday, dThursday, dFriday, dSaturday);
TDays = set of TDay;
property WorkDays: TDays;
Description

Use the WorkDays property to specify the days that are displayed as workdays in the scheduling area.

Note the following:

The resource's WorkDays property has a higher priority than the WorkDays property.

The View's CompressWeekEnd and HideWeekEnd properties don't depend upon the resource's WorkDays property, so this property doesn't affect the View layout. It only informs the scheduler in which days time blocks are to be painted as work hours (see the resource's WorkStart and WorkFinish properties).
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727443
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильная гифка:
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727448
Kadekin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDi,
прошу прощения, мне нужно что бы эти дни недели исчезли (закрылись)
Т.е. Понедельник 17 число и т.д.
Я выбираю например пятницу (это 21 число) cxSheduler отображает только все числа пятницы, остальные скрывает
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727454
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kadekin,

Как ты себе представляешь? А юзеру что делать? Он привык к календарю на стенке. Дырки вырезать?

Разноцветная подсветка - самое оно imho
_________
Ну... у JADI контраста нет и цвета дурацкие жёлтые непривычные, зато просто
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727458
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KadekinJaDi,
прошу прощения, мне нужно что бы эти дни недели исчезли (закрылись)
Т.е. Понедельник 17 число и т.д.
Я выбираю например пятницу (это 21 число) cxSheduler отображает только все числа пятницы, остальные скрывает
Это делается через ручное выделение дней в DateNavigator.

Пример, как выделить все субботы (только эти дни и останутся в списке):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
procedure TForm15.cxCheckBox1PropertiesEditValueChanged(Sender: TObject);
var
  I: Integer;
  needDays: TList<TDateTime>;
  currentDate: TDateTime;
  maxDate: TDateTime;
begin
  // оставляем все воскресенья для текущего месяца
  currentDate := StartOfTheMonth(Now);
  maxDate := DateOf(EndOfTheMonth(Now));

  // список дат для выделения
  needDays := TList<TDateTime>.Create;
  while currentDate <= maxDate do
  begin
    if DayOfWeek(currentDate) = DaySunday then
    begin
      needDays.Add(currentDate);
    end;

    currentDate := IncDay(currentDate, 1);
  end;

  // само выделение
  cxScheduler1.DateNavigator.BeginUpdate;
  try
    cxScheduler1.SelectDays(needDays.ToArray, True);
  finally
    cxScheduler1.DateNavigator.EndUpdate;
  end;

  FreeAndNil(needDays);
end;
...
Рейтинг: 0 / 0
DevExpress cxScheduler
    #39727460
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

там DayOfTheWeek должно быть... Думаю, идея понятна. Естественно, такое сработает не для всех представлений, а только для тех, где можно отдельные дни выделять.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress cxScheduler
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]