Difference between revisions of "Query.Last"
(→Примеры) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 07:52, 7 February 2021
Last (Переместиться в конец выборки) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция устанавливает текущую строку таблицы запроса на конец указанного уровня группировки, после чего можно начинать обход записей запроса с помощью функции Prev. Функция работает как для обычных, так и для линейных запросов. Внимание: индекс группировки, используемый в этой функции, противоположен индексам, записанным в столбец @LEVEL таблицы результата запроса (пример, для запроса с тремя группировками, индекс этой функции 1 соответствует значению столбца @LEVEL, равному 3)! С точки зрения позиции курсора обхода, действие функции идентично действию First. Изменение позиции текущей записи в таблице результата запроса при вызове функции можно показать на примере ниже:
//Картина исходных уровней таблицы для запроса в обычном режиме Группировка 1 Группировка 2 Группировка 3 Группировка 1 Группировка 2 Группировка 3 <--- Положение курсора обхода до вызова функции Группировка 3 Группировка 2 Группировка 3 Группировка 2 Группировка 3 Группировка 3 Группировка 3 Группировка 1 ... //После вызова функции Last(2) Группировка 1 Группировка 2 Группировка 3 Группировка 1 Группировка 2 <--- Положение курсора обхода после вызова функции Last(2) Группировка 3 Группировка 3 Группировка 2 Группировка 3 Группировка 2 Группировка 3 Группировка 3 Группировка 3 Группировка 1 ... //После вызова функции Last(1) Группировка 1 Группировка 2 Группировка 3 Группировка 1 <--- Положение курсора обхода после вызова функции Last(1) Группировка 2 Группировка 3 Группировка 3 Группировка 2 Группировка 3 Группировка 2 Группировка 3 Группировка 3 Группировка 3 Группировка 1 ...
Синтаксис
Query.First(<Индекс или наименование группировки запроса (INT,STRING)>=0):<Результат запроса имеет хотя бы одну запись на этом уровне (INT)>
Аргументы
<Индекс или наименование группировки запроса (INT,STRING)>
- Аргумент задает наименование столбца группировки или индекс группировки. При указании нуля (по умолчанию), текущим уровнем будет нулевой (начальный) уровень.
Возвращаемое значение
Возвращает единицу, если в таблице результата запроса внутри указанной группировки есть по крайней мере одна запись, иначе, возвращает ноль.
Примеры
//Заполним переменные в таблице запроса на основании средних за период формирования отчета, когда // в накопителе фигурирует только количество З:=Query.Create(); З.Execute(ТЗ,0); aTab:=З.ResultTable; aTab.Select(); While aTab.Next() Do зЦ0:=ПолучитьЦену(aTab.зН,НачДата); зЦ1:=ПолучитьЦену(aTab.зН,КонДата); aTab.зСмРасход:=aTab.зКлРасход*(зЦ1+зЦ0)/2; aTab.зСмНачОст:=aTab.зКлНачОст*(зЦ1+зЦ0)/2; aTab.зСмКонОст:=aTab.зКлКонОст*(зЦ1+зЦ0)/2; aTab.зСмПриход:=aTab.зКлПриход*(зЦ1+зЦ0)/2; EndDo; //Выполним постобработку З.Postprocess(); //Спозиционируем курсор для начала обхода З.Last(); //Произведем обход таблицы While З.Prev(1) Do ... EndDo;