Добрый день!
Подскажите, пожалуйста, как можно получить список записей датасета по условию?
Например, мне нужно получить список продуктов (ds_OfferingInInvoice) по условию InvoiceID = ParentItemID, где ParentItemID - ID счета.
Нравится
Здравствуйте, Дмитрий!
ориентировочный код:
var DS = Services.GetNewItemByUSI('ds_yourDS'); ApplyDatasetFilter(DS, 'Filter1', Value1, true); ApplyDatasetFilter(DS, 'Filter2', Value2, true); //... DS.Close(); DS.Open();
теперь DS -- это набор нужных Вам записей, полученных по определенным условиям (условия=фильтры)
для Вашей задачи подставляете свой датасет и название своего фильтра (он у Вас будет 1 -- значит, второй строчки не надо). только проверьте, чтобы в запросе к этому датасету был настроен такой фильтр (с названием и соответствующим параметром).
еще один вариант -- функция GetOpenedDatasetByUSIWithFilter('ds_yourDS', FilterName, FilterValue) -- она вообще идельна в плане количества строчек -- сама "найдет" датасет и отфильтрует, "вернет" уже открытый. т.е., пишем так:
var DS =GetOpenedDatasetByUSIWithFilter('ds_yourDS', FilterName, FilterValue);
еще в этой функции есть доп.параметры -- подробнее посмотрите в ней самой (перейдите к ней и почитайте, что она делает)
var OfferingDataset = Services.GetNewItemByUSI('ds_OfferingInInvoice'); OfferingDataset.Close(); ApplyDatasetFilter(OfferingDataset, 'InvoiceID', ParentItemID, true); OfferingDataset.Open(); OfferingDataset.GoToFirst(); while(!OfferingDataset.IsEOF) { //здесь по одной получаем записи OfferingDataset.GoToNext(); }
Не забудьте добавить scr_DB