среда, 28 августа 2013 г.

Видимость строки табличной части (или дерева), через условное оформление

ОтборСтрока - отбираем строки по вхождению в наименование.

Для формы создаем условное оформление, где
1. Оформление: Видимость = ЛОЖЬ
2. Условие: (ОтборСтрока Заполнено И <Таблица>.Наименование Не содержит ОтборСтрока)
3. Оформляемые поля: <Таблица>
4. Представление: <Таблица>ВидимостьСтроки

//Этот кусок кода всталяем в конец процедуры при создании на сервере\\
//Заполняем поля услового оформления (каждую колонку таблицы)\\
Для каждого текЭлементУО Из УсловноеОформление.Элементы Цикл

//проверяем, что элемент УО - это установка видимости строки
Если Найти(текЭлементУО.Представление, "ВидимостьСтроки") > 0  Тогда
текЭлементФормы      =             Элементы[СокрЛП(текЭлементУО.Поля)];
текЭлементУО.Поля.Элементы.Очистить();
ДобавитьПодчиненныеЭлементыДляУО(текЭлементФормы, текЭлементУО);
КонецЕсли;

КонецЦикла;


//ПРОЦЕДУРА ДОБАВЛЯЕТ ПОЛЯ УСЛОВНОГО ОФОРМЛЕНИЯ ДЛЯ ВИДИМОСТИ СТРОКИ\\
Процедура ДобавитьПодчиненныеЭлементыДляУО(ЭлементФормы, ЭлементУО)

Попытка

Для каждого текПодчиненныйЭлемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл
ДобавитьПодчиненныеЭлементыДляУО(текПодчиненныйЭлемент, ЭлементУО);
КонецЦикла;

Исключение

Если ЭлементФормы.Видимость Тогда
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя);
КонецЕсли;

КонецПопытки;

КонецПроцедуры


//ЧТОБЫ НЕ БЫЛО СКАЧКОВ ВИДИМОСТИ ПОЛЕЙ ДЕРЕВА, ТЕКУЩУЮ СТРОКУ НАДО СБРАСЫВАТЬ\\
//ВСТАВляем В ПРОЦЕДУРУ "ПРИ ИЗМЕНЕНИИ" УЛОВИЯ ОТБОРА//
Элементы.<Таблица>.ТекущаяСтрока = Неопределено;

Комментариев нет:

Отправить комментарий