Показать сообщение отдельно
Старый 27.03.2017, 12:09   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Метод range() больше не возвращает пользовательские фильтры.
Для пояснения того, что мне надо вот пример. _callerFormRun - это объект this в классе SysSetupFormRun. Пример выводит в инфолог две строки. В первой строке выводится запрос. Во второй строке выводятся заданные пользователем фильтры. Отредактировано: заданные пользователем фильтры попадают в первую строку моего примера, но их нельзя получить через объект localQuery.dataSourceNo(1).range(i). Теперь их можно получить только через метод queryFilter.
Если приведенный мною метод вызван из шапки заказов, то в инфолог выводятся пользовательские фильтры. Если метод вызван из строк заказа - то в инфолог не выводится заданные пользователями фильтры.
X++:
void new(FormRun _callerFormRun) //_callerFormRun - это объект this в классе SysSetupFormRun
{
    Query                   localQuery;  
    FormDatasource          formDatasource;
    int                     i;
    ;
    formDatasource = _callerFormRun.dataSource(1);
    localQuery  = formDatasource.queryRun().Query();
    info(localQuery.datasourceNo(1).toString()); //отредактировано: вот эта строка показывает заданные пользователем фильтры только если _callerFormRun ссылается на заголовки заказов
    for (i = 1; i <= localQuery.queryFilterCount(); i++)
    {
        info(localQuery.queryFilter(i).toString()); //вот эта строка показывает фильтры только если _callerFormRun ссылается на заголовки заказов
    }
}

Последний раз редактировалось Ace of Database; 27.03.2017 в 12:46.