Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Киданите пример вывода rollap (число прочтений - 1178 )
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Киданите пример вывода rollap
25. Мая 2007 :: 10:33
Печать  
Сам запрос не нужен
Интересует обработка полученной ТЗ (доп. колонки ИтогКонтрагент и т.п.)
Если кол-во группировок неизвестно
Т.е. у меня так написано в запросе:

Если ЕстьПометка("Контрагент") = 1 Тогда
           ТекстЗапросаШапка = ТекстЗапросаШапка + "
           |, Запрос.Контрагент as [Контрагент $Справочник.Контрагенты]
           |, GROUPING(Запрос.Контрагент) as ИтогКонтрагент
           |";
           
     КонецЕсли;

Для Сч = 1 по СписокГруппировок.РазмерСписка() Цикл
           ТекГруппировка = СписокГруппировок.ПолучитьЗначение(Сч);
           ТекстЗапросаПодвал = ТекстЗапросаПодвал + "Запрос." + ТекГруппировка + ", "
     КонецЦикла;      

.....

ТекстЗапросаПодвал = Лев(ТекстЗапросаПодвал, СтрДлина(ТекстЗапросаПодвал) - 2);
           ТекстЗапросаПодвал = ТекстЗапросаПодвал + " WITH ROLLUP";

Тут получается строка вида GROUP BY Запрос.Контрагент, Запрос.КредДокумент WITH ROLLUP

Что-то тупняг напал Печаль
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Киданите пример вывода rollap
Ответ #1 - 25. Мая 2007 :: 13:53
Печать  
В принципе сделал
Пришлось прибегнуть к перебору, т.к. не поддавалось пониманию иначе

Функция ПолучитьНазваниеГруппировки(ТЗ, НомерСтроки, ПозицияИтога, ТекГруппировка)
     Для Сч = 2 по КоличествоГруппировок Цикл
           ТекИтог = ТЗ.ПолучитьЗначение(НомерСтроки, "Итог" + СписокГруппировок.ПолучитьЗначение(Сч));
           Если ТекИтог = 1 Тогда
                 ТекГруппировка = СписокГруппировок.ПолучитьЗначение(Сч - 1);
                 ПозицияИтога = Сч - 1;
                 
                 Возврат 1;
           КонецЕсли;      
     КонецЦикла;      
     
     Возврат 0;
КонецФункции      

...

Если ПолучитьНазваниеГруппировки(ТЗ, НомерСтроки, ПозицияИтога, ТекГруппировка) = 1 Тогда
                 НазваниеГруппировки = ТекГруппировка;
                 Ном = ПозицияИтога;
           Иначе
                 НазваниеГруппировки = СписокГруппировок.ПолучитьЗначение(Ном);
           КонецЕсли;      

А как кто делал все же?  Подмигивание
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать