|
УФ условное оформление верхний уровень деревоЗначений | ☑ | ||
---|---|---|---|---|
0
Popkorm
06.04.21
✎
11:54
|
Добрый день.
Может кто подскажет как применить условное оформление только верхнего уровня, сейчас подкрашивается все строки: Если СтрДР.КоличествоНоменклатуры >= СтрДР.ПодобранноеКоличествоТары Тогда ЭлементОформления = ЭтотОбъект.УсловноеОформление.Элементы.Добавить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.ПодобранноеКоличествоТары"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше; ЭлементОтобора.ПравоеЗначение = СтрДР.КоличествоНоменклатуры; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый); ЭлементОтобора.Использование = Истина; ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТараПодобранноеКоличествоТары"); ПолеОформления.Использование = Истина; ИначеЕсли СтрДР.КоличествоНоменклатуры < СтрДР.ПодобранноеКоличествоТары Тогда ЭлементОформления = ЭтотОбъект.УсловноеОформление.Элементы.Добавить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.ПодобранноеКоличествоТары"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; ЭлементОтобора.ПравоеЗначение = СтрДР.КоличествоНоменклатуры; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный); ЭлементОтобора.Использование = Истина; ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТараПодобранноеКоличествоТары"); ПолеОформления.Использование = Истина; КонецЕсли; |
|||
1
Жан Пердежон
06.04.21
✎
12:58
|
добавляй колонку "Уровень" в дерево
|
|||
2
Popkorm
06.04.21
✎
13:00
|
(1) а дальше что с ним как работать?
|
|||
3
Жан Пердежон
06.04.21
✎
13:04
|
(2) заполнить как надо и условное оформление настроить
|
|||
4
Popkorm
06.04.21
✎
13:11
|
(3) оформление настроить через форму?
|
|||
5
vicof
06.04.21
✎
13:23
|
(4) Епт. Да также кодом.
ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.Уровень"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтобора.ПравоеЗначение = 0; |
|||
6
Popkorm
06.04.21
✎
14:16
|
(5) ничего не изменилось, так же все строки подкрашивает
ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.Уровень"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтобора.ПравоеЗначение = 0; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый); ЭлементОтобора.Использование = Истина; ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТараПодобранноеКоличествоТары"); ПолеОформления.Использование = Истина; |
|||
7
Popkorm
06.04.21
✎
14:18
|
Уровню присваиваю 0 если строка является родителем
|
|||
8
Fedor-1971
06.04.21
✎
14:46
|
(7) покажи код заполнения
|
|||
9
Popkorm
06.04.21
✎
14:56
|
(8) Дерево_Тара = Тара.ПолучитьЭлементы();
Для Каждого СтрДР ИЗ Дерево_Тара Цикл ПодобранноеКоличествоТары = 0; Для Каждого Стр_ДР ИЗ СтрДР.ПолучитьЭлементы() Цикл Если Стр_ДР.МинимальноеКоличествоУпаковокМногооборотнойТары И Стр_ДР.ПодобранноеКоличествоТары Тогда ПодобранноеКоличествоТары = Стр_ДР.МинимальноеКоличествоУпаковокМногооборотнойТары * Стр_ДР.ПодобранноеКоличествоТары+ПодобранноеКоличествоТары; КонецЕсли; КонецЦикла; СтрДР.ПодобранноеКоличествоТары = ПодобранноеКоличествоТары; СтрДР.Уровень = 0; Если СтрДР.КоличествоНоменклатуры >= СтрДР.ПодобранноеКоличествоТары Тогда ЭлементОформления = ЭтотОбъект.УсловноеОформление.Элементы.Добавить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); //ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); //ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.ПодобранноеКоличествоТары"); //ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно; //ЭлементОтобора.ПравоеЗначение = СтрДР.КоличествоНоменклатуры; //ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый); //ЭлементОтобора.Использование = Истина; ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.Уровень"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтобора.ПравоеЗначение = 0; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый); ЭлементОтобора.Использование = Истина; ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТараПодобранноеКоличествоТары"); ПолеОформления.Использование = Истина; ИначеЕсли СтрДР.КоличествоНоменклатуры < СтрДР.ПодобранноеКоличествоТары Тогда ЭлементОформления = ЭтотОбъект.УсловноеОформление.Элементы.Добавить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); //ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); //ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.ПодобранноеКоличествоТары"); //ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; //ЭлементОтобора.ПравоеЗначение = СтрДР.КоличествоНоменклатуры; //ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный); //ЭлементОтобора.Использование = Истина; ЭлементОтобора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтобора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тара.Уровень"); ЭлементОтобора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтобора.ПравоеЗначение = 0; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный); ЭлементОтобора.Использование = Истина; ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ТараПодобранноеКоличествоТары"); ПолеОформления.Использование = Истина; КонецЕсли; КонецЦикла; |
|||
10
Fedor-1971
06.04.21
✎
15:09
|
(9)СТР_ДР.Уровень = 1; - заполни уровень для нижних элементов
или СтрДР.Уровень = 1; - т.е. отличительный признак уровня и красить по 1 Из цикла убери условное оформление, его надо устанавливать один раз, а не для каждой строки верхнего уровня |
|||
11
Popkorm
06.04.21
✎
15:55
|
(10) точно, за циклом. Благодарю.
Может подскажешь как можно у верхнего родителя преобразовать в строку, например 240 л. https://clip2net.com/s/4bApxCg можно конечно на дереве эту колонку сделать строковой, но больно много где эта дерево перезаполняется |
|||
12
Fedor-1971
06.04.21
✎
16:07
|
(11) Добавь ещё одну колонку со строковым представлением, где надо достанешь число, в другом месте строку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |