Публикация

Значение подзапроса (Value Subquery) и функция EnableDatasetFilters

В случае использования Value Subquery функция EnableDatasetFilters не выполняет включение/выключение фильтра запроса.
Для того чтобы функция отрабатывала в случае Value Subquery, необходимо внести следующие дополнения:
1. Открыть сервис scr_DB.
2. Найти функцию function EnableFilter(FiltersNode, FilterCode, Enabled. Добавить в нее блок кода (как отображено на скриншоте):

else
         if ((Assigned(FiltersNode.ValueExpression)) &&
                   (FiltersNode.ValueExpression.ExpressionType == fetSelect)) {
                   EnableSelectQueryFilters(
                            FiltersNode.ValueExpression.ExpressionSelectQuery, Enabled,
                            new Array(FilterCode));
         }

1

3. Сохранить внесенные изменения.

Нравится

Поделиться

4 комментария

Здравствуйте Наталья!
Мне понадобилась возможность включения фильтра в подзапросе. Сделал все, что было предписано, - ничего не поменялось. Проверял отладчиком - добавленный код не выполнялся. Проверял счетчик Filter.Nodes.Count=1, хотя фильтр встречается в запросе дважды. Экземпляр фильтра, находящийся в подзапросе, не обнаруживается функцией, не помогает даже замена его имени на уникальное.

Владимир, как выглядит фильтр? Вложите, пожалуйста, скриншот либо сервис.

Здравствуйте Наталья!
Высылаю скриншот. Выделенные фильтры включаются поочередно.

Владимир, какой код Вы прописываете для включения фильтра?
Вложите, пожалуйста, скриншоты непосредственно фильтра с Value Subquery.

Показать все комментарии