gifts2017

Фиксация шапки сверху в СКД

Опубликовал Елена Васильева (VasilevaHelen) в раздел Программирование - Практика программирования

Предлагаю вариант фиксации строк сверху в отчете СКД, с использованием макета. Принцип фиксации построен на том, что на вывод отбора в этом случает тратится 3 строки макета в не зависимости от количества условий отбора.

1) Пишем процедуру, определяющую установлен ли отбор


&НаСервере
Функция ОтборУстановлен()

ОтборКомпоновкиДанных = Отчет.КомпоновщикНастроек.ПолучитьНастройки().Отбор;
Для Каждого ЭлементОтбора Из ОтборКомпоновкиДанных.Элементы Цикл
Если ЭлементОтбора.Использование Тогда
Возврат Истина;

КонецЕсли;

КонецЦикла;

Возврат Ложь;

КонецФункции

 ///////////////////////////////////////////////////////////////////////////////

2) При загрузке результата прибавляем 3 строки к шапке.

КоличествоСтрокНаОтбор = ?(ОтборУстановлен(), 3, 0);
Если КлючОбъекта = "Отчет.ИсторияЗаявокНаРемонт" ИЛИ КлючОбъекта = "Отчет.ЗаявкиНаРемонт" Тогда
ЭтаФорма.Результат.ФиксацияСверху = 8 + КоличествоСтрокНаОтбор;

ИначеЕсли КлючОбъекта = "Отчет.ВедомостьПоПерерасходуТопливаВодителями" Тогда
ЭтаФорма.Результат.ФиксацияСверху = 11 + КоличествоСтрокНаОтбор;

ИначеЕсли КлючОбъекта = "Отчет.ВедомостьНаВыдачуБилетов" Тогда
ЭтаФорма.Результат.ФиксацияСверху = 7 + КоличествоСтрокНаОтбор;

КонецЕсли;

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антонио (Fragster) 07.10.13 19:32
Начиная с 8.2.14.519 все само же фиксируется?
2. Елена Васильева (VasilevaHelen) 07.10.13 20:12
Имеется в виду, когда сам создаешь макет на закладке Макеты СКД.
3. Serj (Serj1C) 08.10.13 07:40
4. Елена Васильева (VasilevaHelen) 08.10.13 11:33
(3) Serj1C, Универсальный метод есть, он работает, но во-первых не всегда удобно программно выводить отчет, а во вторых у него тоже есть подводные камни, например, если в шапке отчета использовать параметры, типа, дата отчета и др., то фиксация будет отрабатывать некорректно. Так что предложенный мной метод тоже имеет место.
5. Елена Васильева (VasilevaHelen) 08.10.13 11:35
(1) Fragster, Имеется в виду, когда сам создаешь макет на закладке Макеты СКД.
6. Антонио (Fragster) 08.10.13 18:59
(5) VasilevaHelen, задаю всякие заголовки группировок, макеты группировок, полей, ресурсов - все равно автофиксация работает. Приведите схему с заляпушным запросом вида "Выбрать "а" КАК Поле, 1 как Ресурс Объединить все ..." и вашим макетом, чтобы было понятно.
7. Елена Васильева (VasilevaHelen) 08.10.13 22:57
(6) Fragster, Если бы работала, то и проблемы не было. Именно, заголовки группировок и задают, но это не решает проблему. Просто создайте простейший отчет с использованием макета и убедитесь в этом сами, а "-1" ставьте, где уверены в своих мыслях, а не одновременно с комментарием-вопросом.
8. Антонио (Fragster) 09.10.13 08:26
(7) VasilevaHelen, я же прошу - приведите пример с обработкой, с тем макетом, когда не работает (желательно с запросом, не зависимым от конфигурации), и с отдельной кнопкой для применения вашего способа фиксации. Потому что я попробовал сделать пару макетов полей в отчете - у меня все зафиксировалось.
9. mxm2 mxm2 (mxm2) 09.10.13 09:21
(4) VasilevaHelen,
во-первых не всегда удобно программно выводить отчет,

Это да... но это проще чем предложенный Вами вариант (и в нем не нужно каждый раз добавлять новый вид отчета в некий модуль), достаточно использовать например это: http://infostart.ru/public/99753/, внутри шаблона формы все уже "зашито"

во вторых у него тоже есть подводные камни, например, если в шапке отчета использовать параметры, типа, дата отчета и др., то фиксация будет отрабатывать некорректно.

а вот это - нет, все отрабатывается корректно:
Прикрепленные файлы:
10. Елена Васильева (VasilevaHelen) 09.10.13 11:57
11. Елена Васильева (VasilevaHelen) 09.10.13 12:03
(9) mxm2, Да это понятно, что СКД тем и удобна, что в ней можно ничего не рисовать. Но порой сталкиваешься с требовательными пользователями, которые хотят какого-то необычного вывода, а обычной компановкой СКД не всегда позволяет это сделать и приходится рисовать макет. В общем - бывают ситуации.
12. Антонио (Fragster) 09.10.13 13:18
(10) VasilevaHelen, Теперь понятно - речь про вручную указанный макет заголовка группировки. Но все равно я за "классические" методы (хоть для этого и нужен программный вывод), так как в данном варианте мы завязываемся на высоту нашего макета заголовка (магические цифры) и при изменении высоты макета надо менять все эти цифры.
13. Igor Gorbachev (Leits) 25.08.15 10:49
Подскажите пожалуйста, отчет на СКД состоит из 4-х таблиц с разными колонками, можно ли в момент прокрутки отчета фиксировать шапку текущей таблицы?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа