Jump to content

Есть проблема с TUniCalendarPanel


alex_v

Recommended Posts

Всем привет!

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

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

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

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

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

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

 

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

 

 

Link to comment
Share on other sites

10 minutes ago, alex_v said:

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

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

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

Link to comment
Share on other sites

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

CalendarPanel 2.jpg

Link to comment
Share on other sites

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

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

 

Link to comment
Share on other sites

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

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

New Application 4.jpg

New Application 5.jpg

Link to comment
Share on other sites

  • 3 weeks later...
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
Link to comment
Share on other sites

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

И вопрос:

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

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...