Query.Groups

From SunFlurry wiki
Revision as of 11:18, 2 November 2019 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  Groups (Наименование группировки по индексу)
Объект:Запрос базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, неверный индекс, ошибка запроса
Визуальность:Нет

Функция возвращает наименование группировки запроса по ее индексу. Запрос должен быть выполненным.

Синтаксис

Query.Groups(<Индекс группировки (INT)>):<Наименование группировки (STRING)>

Аргументы

  • <Индекс группировки (INT))> - Задает индекс группировки, для которой необходимо найти наименование

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

Возвращает строковое значение -- наименование группировки.

Примеры

Var З Export;

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

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

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

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

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

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

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

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

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

...