Добрый день!
переношу номенклатуру из 1с, в частности заполняю цены
код такой:
ApplyDSFirstLevelFilter(dsOfferingPrice, "PriceCategoryID", PriceCategoryID, TRUE);
dsOfferingPrice.Open();
т.е. устанавливаю фильтр по типу цен, но еще нужен фильтр по товару ("OfferringID")
как установить фильтр по нескольким полям?
Нравится
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.