Difference between revisions of "TempDB.Next"
(Created page with "{{infobox function |name=Next |object=Временная таблица базы данных |caption=Выборка из временных таблиц |type=1 |status=...") |
(No difference)
|
Revision as of 10:42, 18 November 2019
| Next (Выборка из временных таблиц) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция получает следующую запись выгрузки, открытой ранее с помощью функции Select. Запись загружается во внутренний буфер объекта, столбцы будут доступны по наименованию или с помощью функции Get.
Синтаксис
TempDB.Next():<Найдена и загружена следующая запись (INT)>
Возвращаемое значение
Возвращает 1, если следующая запись загружена, иначе возвращает 0 (окончание выборки).
Примеры
//Пример показывает рабочий цикл с объектами из временной таблицы, используя сборщик объектов для уменьшения расхода памяти
//MainTab -- визуальная таблица, в которую будут копироваться результаты обработки временной таблицы БД
//Создание сборщика объектов
ObjC:=ObjectCollector.Create();
MainTab.Lock();
Try
//Очистка визуальной таблицы
MainTab.ClearLines();
//Создание и загрузка сложной временной таблицы БД, детали загрузки не имеют особого значения для нашего примера
аТемп:=TempDB.Create("зДок:DB,зЗад:DB,зВып:DB,зДата:DATE,зНомерСтроки:NUMBER.10,Номенклатура:DB,Смена:DB,Работники:STRING.200,Количество:NUMBER.15.5");
аТемп.LoadFrom("Doc.РегистрацияВыпускаПродукции.Содержание","@HEADER->зДок,@HEADER.DocDate->зДата,@HEADER.ВыпускПродукции->зВып,@HEADER.ВыпускПродукции..Doc.ВыпускПродукции.ДокОснование->зЗад,"+
"@LINE->зНомерСтроки,Материал->Номенклатура,КоличествоОпераций->Количество,Работники->Работники,Смена->Смена",
"ТипЗаписи=1","not isEmpty(@HEADER.ВыпускПродукции)","IsType(@HEADER.ВыпускПродукции,Doc.ВыпускПродукции)");
Всего:=аТемп.Size();
aNum:=0;
аТемп.Select("зВып+,зДата+,зДок+,зНомерСтроки+");
While аТемп.Next() Do
aNum:=aNum+1;
If aNum%20=0 Then
Form.StatusText("Обработано строк: "+aNum+" из "+Всего);
EndIf;
зНом:=ObjC.Get(аТемп.Номенклатура);
зЗад:=ObjC.Get(аТемп.зЗад);
зВып:=ObjC.Get(аТемп.зВып);
зДок:=ObjC.Get(аТемп.зДок);
MainTab.AddLine("Документ,Номенклатура,Ед,Количество,Смена,зДок,НомСтр,зВып,зЗад,Работники,Индекс",зЗад.DocNum+" от "+зЗад.DocDate,зНом,ObjC.Get(зНом.базЕдиница),аТемп.Количество,
ObjC.Get(аТемп.Смена),зДок,аТемп.зНомерСтроки,зВып,зЗад,ПолучитьСписокРаботников(Trim(аТемп.Работники),ТРаботники),зДок.DocNum+"@"+зДок.DocDate+"@"+аТемп.зНомерСтроки);
EndDo;
MassLoadObjects(MainTab);
Finally
MainTab.Unlock();
EndTry;
Form.MainTab.SetFocus();