фильтрация датасета

два отчета используют один и тот же dataset, но с разными фильтрами.

если вначале открыть отчет А с
ApplyDatasetFilter(ContactDepartmentDataset, 'ContactID', OwnerID, true);
ApplyDatasetFilter(ContactDepartmentDataset, 'IsPrimary', 1, true);

а затем отчет В с
ApplyDatasetFilter(ContactDepartmentDataset, 'ContactID', UserID, true);

то у В отфильтрованных значений столько же, сколько и у А, хотя отчет В накладывает более широкие условия (то есть множество значений В содержит все значения А).

Подскажите пожалуйста, где сохраняются условия фильтрации или как их обновить/сбросить?

Нравится

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

После формирования отчета A выполните ContactDepartmentDataset.Close();

эта функция была. не помогает

ApplyDatasetFilter(ContactDepartmentDataset, 'ContactID', OwnerID, true);
ApplyDatasetFilter(ContactDepartmentDataset, 'IsPrimary', 1, true);

ContactDepartmentDataset.Open();
//...
ContactDepartmentDataset.Close();

Перед применением фильтра попробуйте отключить все фильтры:

EnableDatasetFilters(ContactDepartmentDataset, false);
ApplyDatasetFilter(ContactDepartmentDataset, 'ContactID', UserID, true);

Или отключить конкретные фильтры, которые Вы не собираетесь использовать:

EnableDatasetFilters(ContactDepartmentDataset, false, 'IsPrimary');
ApplyDatasetFilter(ContactDepartmentDataset, 'ContactID', UserID, true);
Показать все комментарии