СКД Как закрепить шапку в отчете? #366330


#0 by zag2art
сабж
#1 by zag2art
Вопрос снимается
#2 by Иа58
Почему?
#3 by zag2art
Разобрался
#4 by Гаркин
разобрался сам, поделись с общественностью, не будь жлобом.
#5 by MoneG
Ну руками если, то так:
#6 by zag2art
#7 by MoneG
а если юзер добавил еще одну группировку? или установил отбор (уже после ПриОткрытии) ?
#8 by MoneG
В продолжение темы: как грамотно повторять шапку таблицы при печати?
#9 by Maxus43
всмысле грамотно?
#10 by MoneG
в смысле "в плюсах" СКД: "отчет без программирования". Иными словами, без дополнительного исхищрения кодом.
#11 by MoneG
Суть в том, что "глобальный" принцип СКД исключает автоматическую фиксацию шапки таблицы (или ее повторение при печати), поскольку в один ТабДок может быть выведено N таблиц, K диаграмм, а в таблицах еще и M вложенных отчетов... Хотелось бы, чтобы в дальнейшей появилась некая галочка типа / "Фиксировать шапку таблиц".
#12 by Гаркин
тоже выход так себе. "НазваниеСамойНижнейКолонки" - как определить это название? (Анализировать структуру не предлагать. :) )
#13 by Maxus43
точно не скажу, но ИМХО, всё делается через ФиксацияСверху, ибо если глянуть в типовые (ЗУП 2.5 например), то в общем модуле типовых отчётов можно найти например: Результат.ФиксацияСверху = Результат.ВысотаТаблицы; СКД не делает это сама...
#14 by MoneG
согласен полностью. такой код работает только в надежде на "праворукость" пользователя. Если ж он где-то интерактивно задал свое название - усё.. фиксация поплыла. Однако - как еще "выкрутиться" ?
#15 by Гаркин
Подозреваю что крутить надо процесор вывода, вот только руки не доходят.
#16 by MoneG
щас покручу.. Результат.ФиксацияСверху = Результат.ВысотаТаблицы; не знаю, в каком это контексте.. однако, самый низ таблицы зачем фиксировать?
#17 by Maxus43
надо покопать типовую, ИМХО - находит певую секцию выводимую, которая = шапке...
#18 by MoneG
ВысотаТаблицы (хоть ИМХО, хоть нет) есть кол-во строк в ТабДоке, то есть ну никак не "=шапке".
#19 by Maxus43
в типовую глянь сначала хоть... полный код:                Если Не ОтчетОбъект.РасширеннаяНастройка                    И Не ТаблицаЗафиксирована
#20 by MoneG
Ага. Только через Количество параметров у элемента результата можно "зацепиться" + вести учет, чтобы Итоги таблицы не зафиксировать (ТаблицаЗафиксирована=Истина). Вопрос про фиксацию закрыт, спасибо! Что делать с печатью в уже выведенный ТабДок?
#21 by Maxus43
>> Что делать с печатью в уже выведенный ТабДок? Всмысле?)
#22 by MoneG
в смысле
#23 by Maxus43
СП отменили? ПовторятьПриПечатиСтроки (RepeatOnRowPrint) Использование: Чтение и запись. Описание: Тип: ОбластьЯчеекТабличногоДокумента. Содержит область строк, которая будет повторяться при печати каждого нового листа табличного документа. Сериализуется.
#24 by Maxus43
соответственно можно вписать это в , т.к. там границы шапки выявлены
#25 by MoneG
покажи эти границы, а именно:
#26 by Maxus43
думать надо... явно нет, вычисли как нить, или по умолчанию поставь что то типа верх  = Результат.ФиксацияСверху - 4;
#27 by MoneG
: - не надо по умолчанию. Более того, желательно некий метод БЕЗ рук!
#28 by Maxus43
перед выводом проверь сколько группировок в компановщике, этим вычислиш количество строк.
#29 by MoneG
не катит. кол-во группировок не всегда равно кол-ву строк в шапке. P.S. "вычислиш" с мягким знаком.
#30 by Maxus43
Программно убери "заголовок" отчёта, ибо не нужен он нафиг на практике, Нижняя граница известна, верхняя становится тоже известна. З.Ы. Думай сам немного, можно найти за что зацепиться.
#32 by Garkin
Многие проблемы решались бы гораздо проще если бы "ЭлементРезультата" позволял определять что он выводит  (Заголовок, Шапку, Группировку, детальную запись и тд.) Штатных сбособов определить это как я понимаю нет, но сдругой стороны у ЭлементаРезультата есть свойство "Макет", которое при наличии определенной доли смекалки позволяет определить что в данный момент выводится в табличное поле. Может у кого нибудь есть время и желание войти в историю как автору функции заменяющей "определенную долю смекалки" ?
#33 by MoneG
Про Макет прекрасная идея, но в макете не за что зацепиться, к сожалению. В коллекции Макетов макеты привязаны к элементам результата, опять же, а не к строкам. кроме заголовка еще могут быть параметры, отборы.. пусть ситуация, когда перед таблицей нет никаких диаграмм и еще чего-то, тогда можно пользоваться этим:    Заголовок = ((ЗначениеПараметра.Значение <> "" ИЛИ ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.Авто) И ЗначениеПараметра.Использование);    ЕстьЗаголовок = (ВыводитьЗаголовок ИЛИ Заголовок);
#34 by MoneG
кстати... а как "программно" убрать Заголовок ?
#35 by Garkin
в макете не надо ни к чему цепляться. Платформа строит и нумерует макеты исходя из структуры настройки, необходимости выводить заголовок, параметры, отборы и т.д. Надо просто проанализировать тоже самое программно, и мы будем знать какой макет за что отвечает. Что ты в фактически пытаешься делать, осталось направить энергию в нужное русло?
#36 by Garkin
+ "русло?" читать как "русло. :)"
#37 by MoneG
смотрел программно, что с макетами творится... Для Заголовка, например, ИмяМакета = "Макет2", а для ПараметровДанных - "Макет4","Макет3". Затем уже в Таблице встречается "Макет1". Более того, в одной строке ТабДока может быть несколько сгенеренных макетов в разной последовательности "нумерации" - к конкретной строке не подступиться :( А если вспомнить про иерархию, то уже моск пухнет...
#38 by Garkin
Не, согласись, маловероятно что имена макетам присваиваются датчиком случайных чисел.:) Алгоритм есть. Да и про "войти в историю" я подумавши писал  :)
#39 by MoneG
соглашусь. опухоль спадет - поанализирую :) А про историю - пофиг. Мне интересно другое - неужели нельзя было все мучения 2-5 галочками встроенными избежать?!
#40 by Garkin
СКД есть куда развиваться, будем надеяться что теперешнее ее состояние это не финальная стадия.
#41 by Garkin
+ вот, уже сам с собою разговаривать начал :), естественно к .
#42 by MoneG
Так точно! А пока что... появится решение с макетами - создам новую ветку.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С