Difference between revisions of "Query.Get"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
m (1 revision imported)
 
(No difference)

Latest revision as of 11:46, 9 August 2022

  Get (Получение значений)
Объект:Запрос базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Нет

Получить значение столбца текущей строки таблицы результата запроса по наименованию или индексу столбца, для линейных запросов вычислений значений столбцов агрегации не производится. Запрос должен быть выполненным. Выполнение этой функции соответствует выражению <Запрос>.ResultTable.Get(,<Наименование или индекс столбца>). Нужно понимать, что функция не производит подсчет значений агрегации для запроса в линейном режиме, для этих целей необходимо использовать функции Compute, BegTotals и EndTotals.

Синтаксис

Query.Get:(<Наименование или индекс столбца (INT,STRING)>):<Значение ячейки столбца (TAB)>

Аргументы

  • <Наименование или индекс столбца (INT,STRING)> - Задает наименование или индекс переменной (столбца) запроса для получения значения. Числовые значения задают индекс, строковые -- наименование.

Возвращаемое значение

Возвращает значение столбца таблицы результата запроса.

Примеры

Var З Export;

  //Функция обхода группировок на основе рекурсии
  Function ОбходГруппировок(Уровень)
    If Уровень>З.GroupCount Then
      Exit;
    EndIf;
    
    While З.Next(Уровень) Do
      //Получить значение текущей группировки
      зЭл:=З.Get(З.Groups(Уровень));

      //Получить сальдо агрегации для текущей строки
      зНачОст:=З.зНачОст;
      зКонОст:=З.зКонОст;
      зПриход:=З.зПриход;
      зРасход:=З.зРасход;

      //Вывод информации в печатную форму отчета
      ...

      //Перейти к следующей группировке
      ОбходГруппировок(Уровень+1);
    EndDo;
  EndFunction

//Выполним запрос с произвольным количеством группировок
ТЗ:=...

З:=Query.Create();
З.Execute(ТЗ);

//Вывести заголовок в печатную форму отчета
...

//Вывод строк группировок
ОбходГруппировок(1);

//Вывод строки итого, работает как линейных, так и для обычных запросов
зНачОст:=З.BegTotals("зНачОст");
зКонОст:=З.EndTotals("зКонОст");
зПриход:=З.Compute("зПриход");
зРасход:=З.Compute("зРасход");

...