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