![]() |
|
СКД. Заголовки центрировать а значения - нет. | ☑ | ||
---|---|---|---|---|
0
fisher
31.10.12
✎
17:30
|
Это только через макеты? Или можно проще? Если да - то как?
Чота я затупил... |
|||
1
чувак
31.10.12
✎
17:32
|
Мне кажется только через макет. ИМХО
|
|||
2
GANR
31.10.12
✎
17:36
|
(0)Может условное оформление поможет?
|
|||
3
GANR
31.10.12
✎
17:37
|
+(2) Для каждой группировки, конечно, отдельно
|
|||
4
GANR
31.10.12
✎
17:39
|
"Доп. настройки", то есть
|
|||
5
GANR
31.10.12
✎
17:40
|
(4) Нет, доп. настройки не дают это - тогда УО
|
|||
6
GANR
31.10.12
✎
17:41
|
(0) (2) - проканало, внимание (2) - проканало
|
|||
7
GANR
31.10.12
✎
17:43
|
БЕЗ условий, одно - для самой верхней группировки отчет (центрировать), другое - для вложенной в нее группировки (прижать влево)
|
|||
8
fisher
31.10.12
✎
17:49
|
(7) Гы. Таки да.
Но отчет будет настраиваться пользователем в широких пределах. Как бы так исхитриться, чтобы центрирование заголовков прибить гвоздями... |
|||
9
GANR
31.10.12
✎
17:50
|
(8) Синий курсор на настройку УО \ свойства элемента пользовательских настроек \ галочка "быстрый доступ" в истина - тогда юзеры смогут сами не копошась глубко настроить это.
|
|||
10
GANR
31.10.12
✎
17:54
|
(8) Аааа... не дочитал. Если нужно закрыть от юзера - тогда в (9)-же свойство "режим редактирования" задать "недоступный". Помогло?
|
|||
11
fisher
31.10.12
✎
18:00
|
Дык они же группировки будут сами настраивать. Общую центровку я задам и скрою. А дальше? Прижимать куда надо значения им же самим придется ипаться.
|
|||
12
GANR
31.10.12
✎
18:01
|
(11) Может код какой-нибудь, динамически добавляющий (2) подбить?
|
|||
13
fisher
31.10.12
✎
18:02
|
(12) Тогда уж проще макетами
|
|||
14
fisher
31.10.12
✎
18:47
|
Блин. Макетами для динамического количества колонок не получается... Остается только (12)
|
|||
15
GANR
31.10.12
✎
18:49
|
(15) Может вообще БЕЗ СКД этот отчет стоит делать? Не всегда она к месту.
|
|||
16
GANR
31.10.12
✎
18:50
|
Хотя... Как тогда юзера настроят его
|
|||
17
fisher
31.10.12
✎
19:57
|
Выкрутился тупо через установку центрирования ячеек области шапки в табличном документе после его формирования.
|
|||
18
GANR
31.10.12
✎
20:00
|
(17) Ячейки сформированного табличного документа перебрал в цикле?
|
|||
19
fisher
31.10.12
✎
20:02
|
(18) Зачем? Алгоритм определения высоты шапки известен (так решалась задача фиксации строк шапки раньше).
|
|||
20
fisher
31.10.12
✎
20:04
|
(19) + А потом тупо вся область центрируется.
|
|||
21
GANR
31.10.12
✎
20:05
|
(19) Теперь понял.
|
|||
22
fisher
01.11.12
✎
12:25
|
Возникла проблема с многошапочными отчетами (несколько самостоятельных группировок в одном отчете). Пришлось заморочиться с динамическим определением произвольного количества шапок в отчете. Авось кому пригодится.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); // сформируем табличный документ и определим области шапок составного отчета ПроцессорВывода.НачатьВывод(); ВыводОкончен = Ложь; ВысотаТаблицыПредыдущая = 0; МассивДиапазоновШапок = Новый Массив; ЭтоВыводДанныхПредыдущееСостояние = Истина; Пока НЕ ВыводОкончен Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата <> Неопределено Тогда ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ЭтоВыводДанных = ЭлементРезультата.ЗначенияПараметров.Количество() > 0; Если ЭтоВыводДанных <> ЭтоВыводДанныхПредыдущееСостояние И ДокументРезультат.ВысотаТаблицы <> ВысотаТаблицыПредыдущая Тогда Если НЕ ЭтоВыводДанных Тогда МассивДиапазоновШапок.Добавить(Новый Структура("Начало,Конец", ДокументРезультат.ВысотаТаблицы, ДокументРезультат.ВысотаТаблицы)); Иначе МассивДиапазоновШапок[МассивДиапазоновШапок.Количество()-1].Конец = ВысотаТаблицыПредыдущая; КонецЕсли; ЭтоВыводДанныхПредыдущееСостояние = ЭтоВыводДанных; КонецЕсли; ВысотаТаблицыПредыдущая = ДокументРезультат.ВысотаТаблицы; Иначе ВыводОкончен = Истина;; КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); // отцентрируем ячейки шапок Для Каждого ДиапазонШапки Из МассивДиапазоновШапок Цикл ОбластьШапки = ДокументРезультат.Область(ДиапазонШапки.Начало,,ДиапазонШапки.Конец); ОбластьШапки.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; ОбластьШапки.ВертикальноеПоложение = ВертикальноеПоложение.Центр; КонецЦикла; // свернем группировки Для ОтрицательныйНомер = -9 По 0 Цикл ДокументРезультат.ПоказатьУровеньГруппировокСтрок(-ОтрицательныйНомер); КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |