- Условное оформление: скрытие строк в таблице
- СКД: скрываем нужные группы (блоки) по требованию пользователя
- Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
- Полезные процедуры по работе с СКД и табличными документами (часть 1)
- 1. Объединение, скрытие, замена
- 2. Процедуры по выводу табличного документа
- 3. Вывод рядом двух независимых таблиц
- 4. Установка собственного формата для табличного документа
- Скачать файлы
- Специальные предложения
Условное оформление: скрытие строк в таблице
Скриншот «свойства формы»
В поле «Оформление» Видимость = Ложь
Скриншот «свойства формы»
В поле «Оформление» Видимость = Ложь
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ДобавитьОтборУсловногоОформления(ЭлементОформления,»ПомещенияПлатаКУ.ФиктивноеПомещение»,ВидСравненияКомпоновкиДанных.Равно,Истина);
ДобавитьПолеУсловногоОформления(ЭлементОформления,»ПомещенияПлатаКУКолонка1″);
ДобавитьПолеУсловногоОформления(ЭлементОформления,»ПомещенияПлатаКУКолонка2″);
ДобавитьПолеУсловногоОформления(ЭлементОформления,»ПомещенияПлатаКУКолонка3″);
ДобавитьПолеУсловногоОформления(ЭлементОформления,»ПомещенияПлатаКУКолонка4″);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра(«Видимость», Ложь);
&НаСервере
Процедура ДобавитьОтборУсловногоОформления(ЭлементОформления, ЛевоеЗначение, ВидСравнения, ПравоеЗначение )
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ЛевоеЗначение);
ЭлементОтбора.ВидСравнения = ВидСравнения;
ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
ЭлементОтбора.Использование = Истина;
&НаСервере
Процедура ДобавитьПолеУсловногоОформления(ЭлементОформления,Поле)
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(Поле);
ПолеОформления.Использование = Истина;
Источник
СКД: скрываем нужные группы (блоки) по требованию пользователя
Цель: реализовать возможность скрывать блок колонок пользователем в отчёте, как показано на рисунках:
Отчёт выполнен на базе схемы компоновки данных (СКД).
Написан запрос, для выборки нужных данных. Он индивидуален, поэтому его нет смысла представлять.
Описание самого «увлекательного» процесса настройки СКД представлено ниже.
В параметры СКД вынесены необходимые параметры:
В данном случае, — Аналитика, ОбъектЭксплуатации и Управленческий.
В настройках СКД отчёт состоит из двух группировок: дополнительной информации и детальных записей.
В дополнительной информации выводится заголовок отчёта, а в детальных записях — его данные.
Обратим внимание, что в настройках отчёта необходимо вывести параметры: Аналитика, Объект эксплуатации и Управленческие аналитики.
Это показана на рисунке:
Зададим первоначальные значения этих параметров. В нашем случае, значение принимает следующий вид: «Ложь».
В детальных записях (вкладка Выбранные поля) выведены колонки отчёта и созданы группы, которые, в зависимости от выбранных пользователем параметров, будут выводиться в отчёт:
Не забываем, что эти параметры необходимо включить в пользовательские настройки:
На этом «увлекательный» процесс закончен. Перейдём к написанию кода для реализации скрытия нужных блоков (полный текст процедур можно найти после описания).
Достаточно много времени заняла отладка кода, чтобы попасть в нужный блок и установить свойство «Использование».
Все манипуляции будут проходить в модуле объекта отчёта, в процедуре «ПриКомпоновкеРезультата».
Итак, что мы делаем:
1) получаем пользовательские настройки элементов и структуры отчёта
2) создаём параметры видимости колонок
3) для удобства отладки вынесли названия выводимых заголовков (блоков)
4) перебираем параметры отчёта, получаем текущие значения видимости и обращаемся именно к нужному блоку отчёта с детальными записями. Если выбираемый блок относится к группе с заголовком «Расшифровки», а именно в этом блоке содержатся скрываемые колонки, то применяем процедуру «ОтображениеБлокаКолонок» для манипуляций с видимостью
5) манипуляции с видимостью заключаются в том, что в зависимости от установленного значения параметра видимости, свойство «Использование» принимает необходимое значение.
Источник
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
Полезные процедуры по работе с СКД и табличными документами (часть 1)
Данная публикация имеет две основные цели
— Зафиксировать полученный опыт, чтобы через некоторое время можно было его использовать повторно
— Получить обратную связь от сообщества относительно предлагаемых приемов. Альтернативные решения крайне приветствуются
1. Объединение, скрытие, замена
Пусть требуется получить отчет следующего вида
Этот отчет имеет несколько особенностей:
— Объединенные ячейки в шапке
— Количество и состав колонок в группе “Бонусы” — динамические. Выводятся только, если заполнено хотя бы для одного сотрудника в отчете. Если, например, никто из попавших в отчет сотрудников не получил надбавку за сверхурочные, то этой колонки в отчете быть не должно. Проектов в группе “за проекты” может быть неограниченное количество.
— Дополнительные требования к порядку полей: колонка “Оклад” должна выводиться первой, “Всего по сотруднику” — последней
В консоли можно получить следующий результат
Далее приведены универсальные процедуры, с помощью которых можно:
1. Объединить ячейки “Бонусы” и “За проекты” в шапке отчета с помощью процедуры ОбъединтьЯчейкиВТабличномДокументе()
2. Скрыть заголовок ресурса “Сумма” с помощью процедуры СкрытьСтрокиВТабличномДокументе()
2. Процедуры по выводу табличного документа
Эти процедуры можно найти в различных интерпретациях на множестве сайтов. Здесь выкладываю те, которые использую я
3. Вывод рядом двух независимых таблиц
Данная идея была взята с форума (отличный пример выложил ditp). Моя заслуга лишь в том, чтобы обернуть ее в функцию и незначительно оптимизировать.
4. Установка собственного формата для табличного документа
Данная процедура является оберткой над стандартной процедурой СоздатьФорматСтрок() (постоянно приходится вспоминать, как она называется). Позволяет выводить одну таблицу под другой с независимой шириной колонок. В сводном примере данная процедура применяется для корректного форматирования конечного документа
Процедуры тестировались на платформе 8.3 в режиме совместимости с 8.2 и без режима совмместимости, а также на платформе 8.1.
К статье прилагаются внешние отчеты со сводным примером (запускается в любой конфигурации 8.2/8.3 на обычных или управляемых формах, также отчет на 8.1)
Скачать файлы
Наименование | Файл | Версия | Размер |
---|---|---|---|