Получение записей из датасета по условию

Добрый день!
Подскажите, пожалуйста, как можно получить список записей датасета по условию?
Например, мне нужно получить список продуктов (ds_OfferingInInvoice) по условию InvoiceID = ParentItemID, где ParentItemID - ID счета.

Нравится

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

Здравствуйте, Дмитрий!
ориентировочный код:

	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

Всем спасибо!

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