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);
при этом переменная dateTimeRange идентична в обоих случаях. Такое ощущение, rangeTransDateTime.value в разных случаях отрабатывает по разному.
Кто-нибудь сталкивался с подобным?
ЗЫ: Поковырялся в свойствах типа данных TransDateTime, нашел свойство TimezonePreference. Если его выставить в No Conversion, тогда запрос формируется корректно и после нажимания кнопки "Выбрать", но при этом в форме RFIDTrans время начинает отображаться по Гринвичу, что в общем-то правильно, но неудобно.