alex_v Posted September 30, 2020 Posted September 30, 2020 Всем привет! Помогите понять появившуюся траблу с TUniCalendarPanel. Данные для календаря хранятся в БД. Есть 14 сохраненных ежедневных событий, начиная 19 октября 2020 и заканчивая 1 ноября 2020. Это две полные недели. Читаю данные и в цикле создаю 14 событий в календаре. В качестве EventID использую первичный ключ из таблицы. IsAllDay = True; События сформированы, далее они отображаются в календаре. Всё отлично, но... только до даты 25 октября 2020. В ячейке за 25 число имеем две отметки: именно за 25 число и тут же подтягивается и ивент за 26 число. И далее, начиная с ячейки за 26 число происходит сдвиг отображения ивентов. Т.е. в ячейке 26 имеем данные от ячейки 27 и т.д. Последняя ячейка - воскресенье 1 ноября - пустая, т.к. она сдвинулась в 31 октября. Что это? И как его исправить? p.s. Не могу понять, как сюда добавить атачмент. Вроде как его нужно заранее закачать. Но куда именно - не нахожу. Quote
Sherzod Posted September 30, 2020 Posted September 30, 2020 10 minutes ago, alex_v said: p.s. Не могу понять, как сюда добавить атачмент. Вроде как его нужно заранее закачать. Но куда именно - не нахожу. Здравствуйте, Вы используете триальную версию? Quote
Sherzod Posted September 30, 2020 Posted September 30, 2020 http://forums.unigui.com/index.php?/topic/6291-new-users-please-adjust-your-forum-email-address/ Quote
alex_v Posted September 30, 2020 Author Posted September 30, 2020 2 minutes ago, Sherzod said: Вы используете триальную версию? Не триальная. FMSoft_uniGUI_Professional_1.90.0.1535 Quote
alex_v Posted September 30, 2020 Author Posted September 30, 2020 8 minutes ago, Sherzod said: http://forums.unigui.com/index.php?/topic/6291-new-users-please-adjust-your-forum-email-address/ Свой имейл только что добавил. Quote
Sherzod Posted September 30, 2020 Posted September 30, 2020 Спасибо что настроили... Теперь Вы можете прикрепить тестовый случай. Quote
alex_v Posted September 30, 2020 Author Posted September 30, 2020 И когда перехожу к отображению календаря за ноябрь, то события очищаются и перечитываются из БД и вторая видимая неделя выглядит уже корректно. Quote
alex_v Posted September 30, 2020 Author Posted September 30, 2020 Когда, к примеру, кликаю на втором нижнем ивенте за 25 число, то в Инфо можно видеть данные этого ивента. И это данные ивента за 26 число. Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Создал простое тестовое приложение. Проблема воспроизводится. Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Исходники тестового приложения прилагаю: UniGui Test.zip Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 и, как уже говорил вчера, если перейти на Ноябрь, то отображение становится корректное Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 В режиме "Week" глюк также присутствует: событий становится даже 15. Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Не понятно - в чем особенность 25 (или 26) октября. Неужели это связано с "В последнее воскресенье октября, нoчью в 4 часа, в Украине проводится переход на зимнее время - 2020. B эту ночь 25 октября 2020 г в 4 часа стрелки часов переводят нa час назад" Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Но все равно не понятен "сдвиг на одни сутки" в календаре за Октябрь 2020 начиная с 26 Октября. Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Вывожу две недели: 19-25 октября и 2-8 ноября. Т.е. нормально отобразить половину календаря после дня перевода часов - не реально ? Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 В режиме not IsAllDay - тут без проблем Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 IsAllDay := True; E.StartDate := EncodeDate(2020, 10, i); E.EndDate := EncodeDate(2020, 10, i+1); Если задавать событие как AllDay без использования TTime, то также глючит. Quote
alex_v Posted October 1, 2020 Author Posted October 1, 2020 Перевод времени всего на один час, но "это" как-то застявляет событие 2 ноября отобразиться в ячеке 1 ноября. Quote
Sherzod Posted October 22, 2020 Posted October 22, 2020 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; 1 Quote
alex_v Posted October 26, 2020 Author Posted October 26, 2020 Да, такой метод устраняет проблему. И вопрос: - нужно будет '-180' (3ч) менять на значение, которое будет соответствовать часовому поясу места запуска сервера ? 1 Quote
Sherzod Posted October 26, 2020 Posted October 26, 2020 Пока Вы можете использовать это значение как константу. 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.