установка нескольких фильтров

Добрый день!
переношу номенклатуру из 1с, в частности заполняю цены
код такой:

ClearDSFilters(dsOfferingPrice);
ApplyDSFirstLevelFilter(dsOfferingPrice, "PriceCategoryID", PriceCategoryID, TRUE);
dsOfferingPrice.Open();

т.е. устанавливаю фильтр по типу цен, но еще нужен фильтр по товару ("OfferringID")

как установить фильтр по нескольким полям?

Нравится

5 комментариев
ClearDSFilters(dsOfferingPrice);
ApplyDSFirstLevelFilter(dsOfferingPrice, "PriceCategoryID", PriceCategoryID, TRUE);
 
var OfferingID = 'Your_Needed_GUID';
ApplyDatasetFilter(dsOfferingPrice, 'OfferingID', OfferingID, true);
 
dsOfferingPrice.Open();

Александр, а процедуры ApplyDSFirstLevelFilter() и ApplyDatasetFilter() одинаковые? или второй фильтр устанавливается по-другому?

вот фрагмент кода по этой процедуре: (он из обработки, которую здесь можно найти)

procedure ApplySQFirstLevelFilter(Query, FilterName, ParamValue, IsEnabled)
	SetEnabledSQFirstLevelFilter(Query, FilterName, IsEnabled);
	if (IsEnabled = TRUE) then
		SetSQParameterValue(Query, FilterName, ParamValue)
	endif;		
endprocedure
 
procedure ApplyDSFirstLevelFilter(Dataset, FilterName, ParamValue, IsEnabled)
	var Query;	
	Query = Dataset.SelectQuery;
	ApplySQFirstLevelFilter(Query, FilterName, ParamValue, IsEnabled);
endprocedure 

"Старостин Д.В." написал:SetEnabledSQFirstLevelFilter(Query, FilterName, IsEnabled);

а это смотря что у вас в этой хитрой функции написано:smile: я у себя ее в 3.3.1\3.3.2 не нашел
ApplyDatasetFilter() это штатная функция, можно посмотреть в scr_DB
вообще похоже что одно и то же

Это практически одно и то же, за исключением того факта, что первая функция используется в ert-файлах 1С, а вторая - в скриптах Terrasoft.

Если необходимо включить несколько фильтров первого уровня, то Вам необходимо несколько раз подряд вызвать ApplyDSFirstLevelFilter с нужными кодами фильтров, как уже писал Александр.

Если же речь идёт о фильтрах большего уровня вложенности, то там не всё так просто, нужно разбираться в работе функций SetEnabledSQFirstLevelFilter и SetSQParameterValue. По идее, перебрать все подчинённые фильтры указанного фильтра, включить нужные и установить соответствующие им параметры.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

спасибо, работает

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