Вопрос
Функция, противоположная ApplyDatasetFilter - или как выключить фильтры
30 мая 2013 10:35
Есть следующая функциональность :
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);
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 комментария
30 мая 2013 10:53
Есть такая функция:
EnableDatasetFilters(dlData.Dataset, false);
Кстати, в большинстве случаев вместо wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset можно писать просто dlData.Dataset. Или даже:
var Dataset = dlData.Dataset; RefreshDataset(Dataset);
30 мая 2013 10:54
Здравствуйте.
Функция имеет вид:
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, true);
последний булевый параметр и отвечает за то, включить или отключить фильтр.
Т.е. конструкция вида
ApplyDatasetFilter(wnd_MonthlyPaymentByPlaceGridArea.ComponentsByName('dlData').Dataset, 'TradeCentre', lcTradeCentre.Text, false);
отключит данный фильтр.
Если Вам нужно отключить не конкретный, а все фильтры, воспользуйтесь функцией:
EnableDatasetFilters(Dataset, false);
30 мая 2013 11:06
EnableDatasetFilters может отключать не только все фильтры сразу. Можно и несколько.
Если вам нужно отключить 2 - 3 фильтра, не стоит каждому писать ApplyDatasetFilter.
Напишите
EnableDatasetFilters(Dataset, false, 'Filter1', 'Filter2');
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать