Показать сообщение отдельно
Старый 05.06.2020, 05:07   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Workspace list formpart refresh
леди и джентльмены, не могу понять, то ли бага, то ли я лыжи снять не могу.

итак! воркспейс с формпартом в виде грида. сам формпарт основан на квери к вьюхе, которая, в свою очередь, список транзакций плюс через релейшн 1:1 иннерджойн к мастертаблице.

в таком виде, когда пользователь нажимает кнопку "обновить", новые записи прекрасно отображаются.

но если в коде формы добавить range по заданному диапазону дат, то - ни в какую! кнопка нажимается, executeQuery вызывается, но новые записи не отображаются.

Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 73
Размер:	146.7 Кб
ID:	12846

танцы с бубном, как предложено в https://docs.microsoft.com/en-us/dyn...orkspace-lists, я пробовал - результат одинаков: обновления не происходит!

другое интересное наблюдение, что если переключиться на любую другую закладку, где меняется значение для queryRange, то обновление прекрасно работает. в смысле и в той, которую щёлкнули, и если потом вернуться обратно на ту, где были. такое ощущение, что pageActivated() активирует обновление кеша.

при обновлении, кстати говоря, напрочь слетают пользовательские фильтры, те, которые на datasource().queryRun().query()

поймать в дебагере ничего вразумительного не могу. какие будут соображения?

на всякий случай код для queryRange

X++:
private str getExecutionDateRange(CDPSysProcessHistoryDateFilterOptions _historyDateFilter)
    {
        utcdatetime     utcDateTimeTo = DateTimeUtil::applyTimeZoneOffset(
                                                    DateTimeUtil::getSystemDateTime(),
                                                    CDPSysProcessParameters::find().DefaultLogTimezone);
        utcdatetime     utcDateTimeFrom;

        switch(_historyDateFilter)
        {
            case CDPSysProcessHistoryDateFilterOptions::Past3Days:
                utcDateTimeFrom = DateTimeUtil::addDays(utcDateTimeTo, -3);
                break;

            case CDPSysProcessHistoryDateFilterOptions::PastWeek:
                utcDateTimeFrom = DateTimeUtil::addDays(utcDateTimeTo, -7);
                break;

            case CDPSysProcessHistoryDateFilterOptions::PastMonth:
                utcDateTimeFrom = DateTimeUtil::addMonths(utcDateTimeTo, -1);
                break;
                
            case CDPSysProcessHistoryDateFilterOptions::PastDay:
            default:
                utcDateTimeFrom = DateTimeUtil::addHours(utcDateTimeTo, -24);
                break;
        }
        return SysQuery::range(utcDateTimeFrom, utcDateTimeTo);
    }
__________________
Felix nihil admirari

Последний раз редактировалось wojzeh; 05.06.2020 в 05:09.