Технические вопросы
Разработка

Функция, противоположная 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 комментария

Есть такая функция:
[javascript]
EnableDatasetFilters(dlData.Dataset, false);
[/javascript]
Кстати, в большинстве случаев вместо wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset можно писать просто dlData.Dataset. Или даже:
[javascript]
var Dataset = dlData.Dataset;
RefreshDataset(Dataset);
[/javascript]

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

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

[javascript]
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, true);
[/javascript]

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

[javascript]
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, false);
[/javascript]

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

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

[javascript]
EnableDatasetFilters(Dataset, false);
[/javascript]

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

EnableDatasetFilters может отключать не только все фильтры сразу. Можно и несколько.
Если вам нужно отключить 2 - 3 фильтра, не стоит каждому писать ApplyDatasetFilter.
Напишите
[javascript]
EnableDatasetFilters(Dataset, false, 'Filter1', 'Filter2');
[/javascript]

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