Jump to content

Recommended Posts

Posted

Всем привет!

Помогите понять появившуюся траблу с TUniCalendarPanel.

Данные для календаря хранятся в БД. 

Есть 14 сохраненных ежедневных событий, начиная 19 октября 2020 и заканчивая 1 ноября 2020. Это две полные недели.

Читаю данные и в цикле создаю 14 событий в календаре. В качестве EventID использую первичный ключ из таблицы. IsAllDay = True;
События сформированы, далее они отображаются в календаре. Всё отлично, но... только до даты 25 октября 2020. 

В ячейке за 25 число имеем две отметки: именно за 25 число и тут же подтягивается и ивент за 26 число. И далее, начиная с ячейки за 26 число происходит сдвиг отображения ивентов. Т.е. в ячейке 26 имеем данные от ячейки 27 и т.д. Последняя ячейка - воскресенье 1 ноября - пустая, т.к. она сдвинулась в 31 октября. 

Что это? И как его исправить? 

 

p.s. Не могу понять, как сюда добавить атачмент. Вроде как его нужно заранее закачать. Но куда именно - не нахожу.

 

 

Posted
10 minutes ago, alex_v said:

p.s. Не могу понять, как сюда добавить атачмент. Вроде как его нужно заранее закачать. Но куда именно - не нахожу.

Здравствуйте,

Вы используете триальную версию? 

Posted
2 minutes ago, Sherzod said:

Вы используете триальную версию? 

Не триальная.
FMSoft_uniGUI_Professional_1.90.0.1535 
 

Posted

И когда перехожу к отображению календаря за ноябрь, то события очищаются и перечитываются из БД и вторая видимая неделя выглядит уже корректно.

CalendarPanel 2.jpg

Posted

Когда, к примеру, кликаю на втором нижнем ивенте за 25 число, то в Инфо можно видеть данные этого ивента. 

И это данные ивента за 26 число.

CalendarPanel 3.jpg

Posted

Создал простое тестовое приложение.

Проблема воспроизводится.

New Application.jpg

Posted

и, как уже говорил вчера, если перейти на Ноябрь, то отображение становится корректное

New Application 2.jpg

Posted

В режиме "Week" глюк также присутствует: событий становится даже 15.

New Application 3.jpg

Posted

Не понятно - в чем особенность 25 (или 26) октября.

Неужели это связано с  "В последнее воскресенье октября, нoчью в 4 часа, в Украине проводится переход на зимнее время - 2020. B эту ночь 25 октября 2020 г в 4 часа стрелки часов переводят нa час назад"

 

Posted

Но все равно не понятен "сдвиг на одни сутки" в календаре за Октябрь 2020 начиная с 26 Октября.

Posted

Вывожу две недели: 19-25 октября и 2-8 ноября.

Т.е. нормально отобразить половину календаря после дня перевода часов - не реально ? 

New Application 4.jpg

New Application 5.jpg

Posted
IsAllDay := True;
E.StartDate := EncodeDate(2020, 10, i);
E.EndDate := EncodeDate(2020, 10, i+1);

Если задавать событие как AllDay без использования TTime, то также глючит.

Posted

Перевод времени всего на один час, но "это" как-то застявляет событие 2 ноября отобразиться в ячеке 1 ноября.

  • 3 weeks later...
Posted
On 10/1/2020 at 6:53 PM, alex_v said:

Но все равно не понятен "сдвиг на одни сутки" в календаре за Октябрь 2020 начиная с 26 Октября.

Добрый день,

Попробуйте это решение:

procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  with UniCalendarPanel1 do
  begin
    ShowDayView := True;
    ShowWeekView := True;
    ShowMonthView := True;
    ShowNavBar := True;

    JSInterface.JSConfig('defaultView', ['week']);
    JSInterface.JSAddListener('beforerender', 'function(){'+
      '    this.setTimezoneOffset(-180);'+
      '    this.updateTimezoneOffset();'+
      '    this.setView("month");'+
      '}'
    );
  end;

end;

 

  • Like 1
Posted

Да, такой метод устраняет проблему.

И вопрос:

- нужно будет '-180' (3ч) менять на значение, которое будет соответствовать часовому поясу места запуска сервера ? 

  • Like 1

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...