Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress cxScheduler / 10 сообщений из 10, страница 1 из 1
02.11.2018, 20:57
    #39727429
Kadekin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
Добрый день.
У меня на форме есть 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
02.11.2018, 21:14
    #39727434
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
WorkDays -- это для раскраски календаря на рабочие и не рабочие дни. Можно указывать только дни недели, даты нельзя.

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

Код: 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
02.11.2018, 21:52
    #39727443
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
правильная гифка:
...
Рейтинг: 0 / 0
02.11.2018, 22:14
    #39727448
Kadekin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
JaDi,
прошу прощения, мне нужно что бы эти дни недели исчезли (закрылись)
Т.е. Понедельник 17 число и т.д.
Я выбираю например пятницу (это 21 число) cxSheduler отображает только все числа пятницы, остальные скрывает
...
Рейтинг: 0 / 0
02.11.2018, 22:49
    #39727454
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
Kadekin,

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

Разноцветная подсветка - самое оно imho
_________
Ну... у JADI контраста нет и цвета дурацкие жёлтые непривычные, зато просто
...
Рейтинг: 0 / 0
02.11.2018, 22:57
    #39727458
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
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
02.11.2018, 23:06
    #39727460
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DevExpress cxScheduler
JaDi,

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


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