alex_v Posted September 30, 2020 Share 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 Link to comment Share on other sites More sharing options...
Sherzod Posted September 30, 2020 Share Posted September 30, 2020 10 minutes ago, alex_v said: p.s. Не могу понять, как сюда добавить атачмент. Вроде как его нужно заранее закачать. Но куда именно - не нахожу. Здравствуйте, Вы используете триальную версию? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted September 30, 2020 Share Posted September 30, 2020 http://forums.unigui.com/index.php?/topic/6291-new-users-please-adjust-your-forum-email-address/ Quote Link to comment Share on other sites More sharing options...
alex_v Posted September 30, 2020 Author Share Posted September 30, 2020 2 minutes ago, Sherzod said: Вы используете триальную версию? Не триальная. FMSoft_uniGUI_Professional_1.90.0.1535 Quote Link to comment Share on other sites More sharing options...
alex_v Posted September 30, 2020 Author Share 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 Link to comment Share on other sites More sharing options...
Sherzod Posted September 30, 2020 Share Posted September 30, 2020 Спасибо что настроили... Теперь Вы можете прикрепить тестовый случай. Quote Link to comment Share on other sites More sharing options...
alex_v Posted September 30, 2020 Author Share Posted September 30, 2020 А вот и иллюстрация Quote Link to comment Share on other sites More sharing options...
alex_v Posted September 30, 2020 Author Share Posted September 30, 2020 И когда перехожу к отображению календаря за ноябрь, то события очищаются и перечитываются из БД и вторая видимая неделя выглядит уже корректно. Quote Link to comment Share on other sites More sharing options...
alex_v Posted September 30, 2020 Author Share Posted September 30, 2020 Когда, к примеру, кликаю на втором нижнем ивенте за 25 число, то в Инфо можно видеть данные этого ивента. И это данные ивента за 26 число. Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Создал простое тестовое приложение. Проблема воспроизводится. Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Исходники тестового приложения прилагаю: UniGui Test.zip Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 и, как уже говорил вчера, если перейти на Ноябрь, то отображение становится корректное Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 В режиме "Week" глюк также присутствует: событий становится даже 15. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 1, 2020 Share Posted October 1, 2020 Здравствуйте, Какой у Вас часовой пояс? Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 UTC/GMT +3:00 часа Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Не понятно - в чем особенность 25 (или 26) октября. Неужели это связано с "В последнее воскресенье октября, нoчью в 4 часа, в Украине проводится переход на зимнее время - 2020. B эту ночь 25 октября 2020 г в 4 часа стрелки часов переводят нa час назад" Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 1, 2020 Share Posted October 1, 2020 Возможно, переход на зимнее время... Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Но все равно не понятен "сдвиг на одни сутки" в календаре за Октябрь 2020 начиная с 26 Октября. Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Вывожу две недели: 19-25 октября и 2-8 ноября. Т.е. нормально отобразить половину календаря после дня перевода часов - не реально ? Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 В режиме not IsAllDay - тут без проблем Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 IsAllDay := True; E.StartDate := EncodeDate(2020, 10, i); E.EndDate := EncodeDate(2020, 10, i+1); Если задавать событие как AllDay без использования TTime, то также глючит. Quote Link to comment Share on other sites More sharing options...
alex_v Posted October 1, 2020 Author Share Posted October 1, 2020 Перевод времени всего на один час, но "это" как-то застявляет событие 2 ноября отобразиться в ячеке 1 ноября. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 22, 2020 Share 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 Link to comment Share on other sites More sharing options...
alex_v Posted October 26, 2020 Author Share Posted October 26, 2020 Да, такой метод устраняет проблему. И вопрос: - нужно будет '-180' (3ч) менять на значение, которое будет соответствовать часовому поясу места запуска сервера ? 1 Quote Link to comment Share on other sites More sharing options...
Sherzod Posted October 26, 2020 Share Posted October 26, 2020 Пока Вы можете использовать это значение как константу. 1 Quote Link to comment Share on other sites More sharing options...
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.