Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ТаблицаГруппировок trad'a (доработка) (число прочтений - 1695 )
Bond
Full Member
***
Отсутствует



Сообщений: 106
Зарегистрирован: 01. Ноября 2006
Пол: Мужской
ТаблицаГруппировок trad'a (доработка)
01. Ноября 2006 :: 08:32
Печать  
всем привет.
может кто-то сделал это лучше но я не смог найти
решил сделать произвольный порядок группировок вот кусок кода:
//+++++++++++++++++++++++++++++++++++++++++++++++++
сп11=СоздатьОбъект("списокзначений");  // вспомагательный список с номерами колонок в ТЗ
сп111=СоздатьОбъект("списокзначений");  // вспомагательный список с номерами группировок

сп_=СоздатьОбъект("таблицазначений");   // промежуточная ТЗ со значениями колонок которые сортируются


сп1=СоздатьОбъект("таблицазначений");      // таблица значений с соответствиями группировок и колонок в исх. ТЗ
сп1.новаяколонка("назвКолонки","строка");  // идентификатор колонок
сп1.новаяколонка("н","число");             // номер в ТЗ
сп1.новаяколонка("н2","число");            // номер в группировке

для ы=1 по _ТЗ.ПолучитьБазовыйКласс().количествоколонок() Цикл
     Если спГр.принадлежит(_ТЗ.ПолучитьБазовыйКласс().получитьпараметрыколонки(ы))=0 Тогда
           Продолжить;
     КонецЕсли;
   
     сп1.новаястрока();
     сп1.назвколонки =_ТЗ.ПолучитьБазовыйКласс().получитьпараметрыколонки(ы);
     сп1.н=ы;
    сп1.н2=спГр.найтизначение(сп1.назвколонки);
КонецЦикла;
   сп1.сортировать("н2");
   
   
   сп1.выгрузить(сп11,,,"н");
   сп1.выгрузить(сп111,,,"н2");
   
   // выгружаем колонки которые будем сортировать в ТЗ
   
   _ТЗ.ПолучитьБазовыйКласс().выгрузить(сп_,,,сп11.встрокусразделителями());
   
   // удаляем в исходной ТЗ эти колонки
   для в=1 по спГр.размерсписка() Цикл
          _ТЗ.ПолучитьБазовыйКласс().удалитьколонку(спГр.получитьзначение(в));
   КонецЦикла;
   
   в=спГр.размерсписка();
   // добавляем в исх. ТЗ колонки в нужном порядке
   Пока в>0 Цикл
          _ТЗ.ПолучитьБазовыйКласс().вставитьколонку(спГр.получитьзначение(в),1);
     в=в-1; 
   конеццикла;
   // загружаем сохраненные значения колонок
   _ТЗ.ПолучитьБазовыйКласс().заполнить(сп_,,,сп111.встрокусразделителями());


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  Состояние("группировка");
_ТЗ.сгруппировать(группировкаТЗ,оборотыТЗ); // группировкаТЗ - строка с порядком группировок

если у кого-нибудь будут замечания, с удовольствием выслушаю.
или может кто сделал под ИТЗ?


  

работай с умом, а не до ночи!
Наверх
 
IP записан
 
Bond
Full Member
***
Отсутствует



Сообщений: 106
Зарегистрирован: 01. Ноября 2006
Пол: Мужской
Re: ТаблицаГруппировок trad'a (доработка)
Ответ #1 - 06. Ноября 2006 :: 18:39
Печать  
кстати подходит для сортировки колонок любой ТЗ.
использовал для подготовки (сортировки) ТЗ для вывода горизонтальных группировок (огромное спасибо steban"у за код).
  

работай с умом, а не до ночи!
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать