22.05.2018, 16:22 | #1 |
Участник
|
UTCDateTime в query range value
DAX2009
Есть диалоговое окно с парой значений TransDateTime плюс сохраняемый query по некоторым полям таблички RFIDTrans. После нажатия ОК, вызывается метод updateQuery, который добавляет ранг по дате-времени. Все отрабатывает нормально. НО если перед ОК хоть раз нажать кнопку "Выбрать", для смены значений фильтров, то выборка по времени идет на 3 часа раньше (Московская временная зона). X++: protected void updateQuery() { QueryBuildDataSource qbdsRFID; QueryBuildRange rangeTransDateTime; str dateTimeRange; ; qbdsRFID = queryRun.query().dataSourceTable(tablenum(RFIDTrans)); fromDateTime = DateTimeUtil::removeTimeZoneOffset(fromDateTime, tz); toDateTime = DateTimeUtil::removeTimeZoneOffset(toDateTime, tz); rangeTransDateTime = qbdsRFID.addRange(fieldnum(RFIDTrans, TransDateTime)); dateTimeRange = SysQuery::range(fromDateTime, toDateTime); rangeTransDateTime.value(dateTimeRange); Кто-нибудь сталкивался с подобным? ЗЫ: Поковырялся в свойствах типа данных TransDateTime, нашел свойство TimezonePreference. Если его выставить в No Conversion, тогда запрос формируется корректно и после нажимания кнопки "Выбрать", но при этом в форме RFIDTrans время начинает отображаться по Гринвичу, что в общем-то правильно, но неудобно.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! |
|