Query.ForceAggregateSingleLineLev1

From SunFlurry wiki
Revision as of 13:49, 31 October 2019 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  ForceAggregateSingleLineLev1 (Опции постобработки)
Объект:Запрос базы данных
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Чтение и запись
Визуальность:Нет

Получить или установить значение режима форсирования суммирования строк первого уровня группировки при постобработке запроса. Атрибут соответствует опции постобработки ForceAggregateSingleLineLev1, см. Объект запрос базы данных. Атрибут имеет смысл изменять после первого этапа выполнения запроса до начала второго.

Синтаксис

Query.ForceAggregateSingleLineLev1:<Значение режима форсирования суммирования срок первого уровня группировки (INT)>

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

Возвращает числовое значение

Примеры

//Пример показывает случай, когда агрегация строк первого уровня может быть выполнена с помощью опций постобработки
//Запрос находит суммы НДС из полных сумм. Дан пример только части запроса, для облегчения понимания.
//Вместо опций постобработки, можно было использовать изменить ResultTable и после этого выбрать З.Postprocess()

ТЗ:=...

ндс10:=Enum.СтавкиНДС.НДС10;
ндс18:=Enum.СтавкиНДС.НДС18;
ндс20:=Enum.СтавкиНДС.НДС20;

ТЗ:=ТЗ+"зНДС:=Stor.Взаиморасчеты.СтавкаНДС;
  |зРасход:=Expense(Сумма);
  |зПриход:=Income(Сумма);
  |Group зКнт,зНДС;
  |Postprocessing (
  |ForceAggregateSingleLineLev1 1;
  |Aggregate1 зРасход As SUM(зРасход*(CASE зНДС WHEN ндс10 THEN 10/110 WHEN ндс18 THEN 18/118 WHEN ндс20 THEN 20/120 ELSE 0 END));
  |Aggregate1 зПриход As SUM(зПриход*(CASE зНДС WHEN ндс10 THEN 10/110 WHEN ндс18 THEN 18/118 WHEN ндс20 THEN 20/120 ELSE 0 END));
  |)";

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