![]() |
![]() |
![]() |
|
Свертка группировок на печатной форме | ☑ | ||
---|---|---|---|---|
0
Baracus
07.08.07
✎
09:53
|
Как сделать печатную форму отчета с номенклатурными показателями сворачиваемой по группировкам?
|
|||
1
yalex
07.08.07
✎
09:57
|
метод у табличногодокумента есть
ТабДок.НачатьАвтогруппировкуСтрок() //формирование табдока ЗакончитьАвтогруппировкуСтрок(); |
|||
2
Baracus
07.08.07
✎
10:05
|
Все равно не получается. Сделал так:
ТабДок.НачатьАвтогруппировкуСтрок(); Для каждого строкаДз из дзДанных.Строки цикл ВывестиСтрокуДЗНапечать(строкаДз,ТабДок,Макет); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); Может ли быть проблема в том, что в дереве все элементы сохранены на одном уровне? |
|||
3
yalex
07.08.07
✎
10:12
|
(2)в процедуру ВывестиСтрокуДЗНапечать(строкаДз,ТабДок,Макет) попробуй вставить, тоесть в само формирование табдока;
|
|||
4
Baracus
07.08.07
✎
10:20
|
По прежнему:
ОбластьСтрокаНоменклатура = Макет.ПолучитьОбласть("Строка|НоменклатураКолонка"); ОбластьСтрокаСклад = Макет.ПолучитьОбласть("Строка|Склад"); ОбластьСтрокаИтогоСклады = Макет.ПолучитьОбласть("Строка|ИтогоСклады"); ОбластьСтрокаПоказатели = Макет.ПолучитьОбласть("Строка|Показатели"); // ОбластьСтрокаНоменклатура.Параметры.Заполнить(строкаДз); ТабДок.НачатьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьСтрокаНоменклатура); Для каждого Склад из ВыбСклад Цикл ИмяСклада = "Склад_" + СокрЛП(СтрЗаменить(Склад.Значение.Код,"-","_")); ОбластьСтрокаСклад.Параметры.ОстМатрКолво = строкаДз[ИмяСклада + "_ОстМатрКолво"]; ОбластьСтрокаСклад.Параметры.ОстМатрСумма = строкаДз[ИмяСклада + "_ОстМатрСумма"]; ОбластьСтрокаСклад.Параметры.ОстРаспрКолво = строкаДз[ИмяСклада + "_ОстРаспрКолво"]; ОбластьСтрокаСклад.Параметры.ОстРаспрСумма = строкаДз[ИмяСклада + "_ОстРаспрСумма"]; ТабДок.Присоединить(ОбластьСтрокаСклад); КонецЦикла ; ОбластьСтрокаИтогоСклады.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаИтогоСклады); ОбластьСтрокаПоказатели.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаПоказатели); ТабДок.ЗакончитьАвтогруппировкуСтрок(); |
|||
5
Baracus
07.08.07
✎
10:20
|
Результат тот же
|
|||
6
yalex
07.08.07
✎
10:31
|
(4) В этой процедуре автоматической группировкой не получиться - нужно применять дополнительные параметры в методах вывести() и присоединить(). Например уровень, который может быть получен через Выборку
Применяй "ручной" метод табдока НачатьГруппуСтрок() и ЗакончитьГруппуСтрок() |
|||
7
sergoqwe
07.08.07
✎
10:32
|
УровеньГруппировки=2;
ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки); |
|||
8
IronDemon
07.08.07
✎
10:35
|
А кто уровень будет указывать при выводе?
|
|||
9
Baracus
07.08.07
✎
10:36
|
7, сделал так:
ОбластьСтрокаИтогоСклады.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаИтогоСклады); ОбластьСтрокаПоказатели.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаПоказатели); УровеньГруппировки=2; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки); Эффект тот же |
|||
10
Baracus
07.08.07
✎
10:37
|
6, сейчас попробую
|
|||
11
Baracus
07.08.07
✎
10:42
|
Сделал так:
ТабДок.НачатьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьСтрокаНоменклатура,строкаДз.Уровень); Для каждого Склад из ВыбСклад Цикл ИмяСклада = "Склад_" + СокрЛП(СтрЗаменить(Склад.Значение.Код,"-","_")); ОбластьСтрокаСклад.Параметры.ОстМатрКолво = строкаДз[ИмяСклада + "_ОстМатрКолво"]; ОбластьСтрокаСклад.Параметры.ОстМатрСумма = строкаДз[ИмяСклада + "_ОстМатрСумма"]; ОбластьСтрокаСклад.Параметры.ОстРаспрКолво = строкаДз[ИмяСклада + "_ОстРаспрКолво"]; ОбластьСтрокаСклад.Параметры.ОстРаспрСумма = строкаДз[ИмяСклада + "_ОстРаспрСумма"]; ТабДок.Присоединить(ОбластьСтрокаСклад,строкаДз.Уровень); КонецЦикла ; ОбластьСтрокаИтогоСклады.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаИтогоСклады,строкаДз.Уровень); ОбластьСтрокаПоказатели.Параметры.Заполнить(строкаДз); ТабДок.Присоединить(ОбластьСтрокаПоказатели,строкаДз.Уровень); УровеньГруппировки=строкаДз.Уровень; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки); Уровни разные, но все равно не получается, буду пробовать ручной метод |
|||
12
Wladimir_spb
07.08.07
✎
10:47
|
(11) Сделай свой отчет с помощью конструктора выходной формы. Он сам все уровни настроит. Заодно посмотришь как это делается.
|
|||
13
Baracus
07.08.07
✎
11:06
|
Получилось! Совет в 12 помог, все очень просто оказалось. Сделал группировку на этом уровне:
ТабДок.НачатьАвтогруппировкуСтрок(); Для каждого строкаДз из дзДанных.Строки цикл ВывестиСтрокуДЗНапечать(строкаДз,ТабДок,Макет); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); А внутри процедуры надо было просто расставить уровни в Присоединить() и Вывести() |
|||
14
Baracus
07.08.07
✎
11:16
|
Всем спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |