Функция, противоположная ApplyDatasetFilter - или как выключить фильтры

Есть следующая функциональность :

var YearFilter;
YearFilter = Year.Value;
if (YearFilter > 0)
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'Year', Year.Value, true);
if(!IsEmptyValue(lcTradeCentre.Value))
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, true);    
wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset.Open();    
RefreshDataset(dlData.Dataset);

Т.е. есть два параметра - торговый центр и год. Они не обязательные.
Ситуация следующая - я ввожу определенный торговый центр и год. Получаю данные. Потом убираю торговый центр, оставляю год - данные не меняются. Потом меняю год - данные меняются, но в пределах торгового центра, указанного в первый раз.
Как выключить/очистить эти фильтры?
Вариант
wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset.Close();

в самом начале - не помогает

Нравится

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

Есть такая функция:

EnableDatasetFilters(dlData.Dataset, false);

Кстати, в большинстве случаев вместо wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset можно писать просто dlData.Dataset. Или даже:

var Dataset = dlData.Dataset;
RefreshDataset(Dataset);

Здравствуйте.

Функция имеет вид:

ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, true);

последний булевый параметр и отвечает за то, включить или отключить фильтр.
Т.е. конструкция вида

ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, false);

отключит данный фильтр.

Если Вам нужно отключить не конкретный, а все фильтры, воспользуйтесь функцией:

EnableDatasetFilters(Dataset, false);

Спасибо! Все заработало!

EnableDatasetFilters может отключать не только все фильтры сразу. Можно и несколько.
Если вам нужно отключить 2 - 3 фильтра, не стоит каждому писать ApplyDatasetFilter.
Напишите

EnableDatasetFilters(Dataset, false, 'Filter1', 'Filter2');
Показать все комментарии