Difference between revisions of "Query.LinearLevelPos"
m (1 revision imported) |
1>Admin |
||
Line 39: | Line 39: | ||
EndIf; | EndIf; | ||
Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор); | Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор); | ||
− | //Установим текущий уровень группировки, чтобы продолжить обход | + | //Установим текущий уровень группировки, чтобы продолжить обход следующего уровня |
− | З2.LinearLevelPos:= | + | З2.LinearLevelPos:=2; |
While З2.Next(3) Do | While З2.Next(3) Do | ||
//Выведем на экран значения сальдо для каждого из адресов | //Выведем на экран значения сальдо для каждого из адресов |
Revision as of 14:38, 1 April 2022
LinearLevelPos (Текущий уровень группировки) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Атрибут получает или устанавливает текущий уровень группировки при прохождении строк таблицы запроса в режиме линейного запроса. Нижний уровень группировки соответствует значению 1, верхний -- общему количеству группировок в запросе. Запрос должен быть выполненным. Так как линейный запрос не содержит столбца @LEVEL и отдельных строк для каждой группировок запроса, что экономит память, номер текущей группировки при обходе такого запроса хранится в виде переменной внутри объекта запроса. Этот атрибут позволяет получить доступ к этой переменной. Атрибут удобно использовать для указания на уровень линейного запроса после выполнения позиционирования в таблице запроса.
Синтаксис
Query.LinearLevelPos:<Текущий уровень группировки линейного запроса (INT)>
Возвращаемое значение
Возвращает числовое значение, текущий уровень обхода линейного запроса.
Примеры
//З -- основной запрос, данный для примера, производится по какому-либо накопителю //З2 -- второй запрос по накопителю Взаиморасчеты в линейном режиме, синхронизация между запросами производится по полям зКонтрагент и зДоговор. While З.Next(1) Do While З.Next(2) Do ... //Получим значения сальдо по накопителю Взаиморасчеты для всех адресов из запроса З2 для текущих группировок запроса З.зКонтрагент и З.зДоговор З2.First(); If З2.ResultTable.LocateAndGoto("зКонтрагент,зДоговор",З.зКонтрагент,З.зДоговор)=0 Then Continue; EndIf; Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор); //Установим текущий уровень группировки, чтобы продолжить обход следующего уровня З2.LinearLevelPos:=2; While З2.Next(3) Do //Выведем на экран значения сальдо для каждого из адресов Message(" Адрес: "+З2.зАдрес+", сальдо: "+З2.EndTotals("зСальдо")); EndDo; EndDo; EndDo;