|
СКД: группировка колонок в таблице | ☑ | ||
---|---|---|---|---|
0
moonq4
10.06.16
✎
19:22
|
Помогите, пожалуйста, разобраться с настройкой отчета.
Есть поля: 1. Склад (например, склад №1 и склад №2) 2. Месяц (например, январь, февраль, март) 2. ресурс А 3. ресурс В 4. вычисляемое поле Процент=А/В*100 У меня без проблем получается таблица, в которой в строка идут склады, а в столбцах идут месяцы, на пересечении получаем значения ресурсов. Но вот совсем непонятно как сделать вариант, когда в столбцах идет 2 уровня группировки: на первом уровне ресурсы (А, В и Процент), а уровнем ниже группировка по месяцам (думаю на картинке все будет понятно)? https://dropmefiles.com/kgnnS |
|||
1
Chameleon1980
10.06.16
✎
19:45
|
может похимичить в ресурсах рассчитывать по. Ну там еще кое-что может понадобиться
|
|||
2
Chameleon1980
10.06.16
✎
19:46
|
смотря какой вообще запрос. складов динамическое кол-во?
|
|||
3
echo77
12.06.16
✎
10:45
|
(0) Без постобработки табличного документа - пока никак.
Суть метода такая: Делаем настройку Кросс-таблицу: Группировки строк: Склад Группировки колонок: Месяц - выбранные поля, Ресурс А Месяц - выбранные поля, Ресурс B Месяц - выбранные поля, Прцоент A/B после того как отчет построился, делаем постобработку табличного документа - меняем местами строку заголовка ресурса A и названия месяцев, затем ячейки с заголовками ресурса A - объединяем, например следующим кодом: Процедура ПоменятьОбластиМестами(ТабличныйДокумент, ИскомыйТекст) Если 1=0 Тогда ТабличныйДокумент = Новый ТабличныйДокумент КонецЕсли;// dummy НижняяСтрокаШапки = ТабличныйДокумент.ФиксацияСверху; // Определяем где у нас область с надписью ИскомыйТекст НачалоОбласти=0; КонецОбласти=0; Для н=2 По ТабличныйДокумент.ШиринаТаблицы Цикл АдресЯчейки = "R"+НижняяСтрокаШапки+"C"+н; // Определяем начало области Если ТабличныйДокумент.Область(АдресЯчейки).Текст=ИскомыйТекст И НачалоОбласти=0 Тогда НачалоОбласти = н; КонецЕсли; // Определяем окончание области Если ТабличныйДокумент.Область(АдресЯчейки).Текст<>ИскомыйТекст И НачалоОбласти<>0 И КонецОбласти =0 Тогда КонецОбласти = н-1; КонецЕсли; // Если дошли до конца и не определили окончание обласи, то вот он конец Если н=ТабличныйДокумент.ШиринаТаблицы И КонецОбласти =0 Тогда КонецОбласти = н; КонецЕсли; КонецЦикла; // Проверяем, корректно ли определи начало/конец области Если НачалоОбласти=0 ИЛИ КонецОбласти=0 Тогда Возврат КонецЕсли; АдресИсходнойОбласти ="R"+(НижняяСтрокаШапки-1)+"C"+НачалоОбласти+":"+"R"+(НижняяСтрокаШапки-1)+"C"+КонецОбласти; АдресВставляемойОбласти ="R"+(НижняяСтрокаШапки) +"C"+НачалоОбласти+":"+"R"+(НижняяСтрокаШапки) +"C"+КонецОбласти; ИсхОбласть = ТабличныйДокумент.Область(АдресИсходнойОбласти); ВстОбласть = ТабличныйДокумент.Область(АдресВставляемойОбласти); ТабличныйДокумент.ВставитьОбласть(ИсхОбласть, ВстОбласть); // Затем верхнюю строку с валютами объединяем и замещаем на текст ОбластьНадписи = ТабличныйДокумент.Область(АдресИсходнойОбласти); ОбластьНадписи.Объединить(); ОбластьНадписи.Текст = ИскомыйТекст; ОбластьНадписи.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; ОбластьНадписи.ПараметрРасшифровки=0; КонецПроцедуры |
|||
4
Chameleon1980
12.06.16
✎
14:37
|
еще как как
|
|||
5
moonq4
14.06.16
✎
11:34
|
(2) да, список складов может быть не постоянным.
(3) ой ))) |
|||
6
echo77
14.06.16
✎
17:56
|
збс
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |