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 2.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

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...