|
Программное оформление формы | ☑ | ||
---|---|---|---|---|
0
Shalun
05.12.21
✎
10:56
|
Всем привет! Ребят, помогите новичку. Задача простая. нужно изменить цвет строки списка, при равенстве двух значений их этого списка. Т.к. сделать это через условноеОформление формы, не получается, пишу следующий код:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭлементОформления = УсловноеОформление.Элементы.Добавить(); // Создаем условие отбора в созданной группе: ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СуммаНачислено"); // имя поля Сумма ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; //ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("СуммаОплачено"); // имя поля Оплачено ЭлементОтбора.Использование = Истина; // Установка значения элемента УО ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Зеленый); ЭлементОформления.Использование = Истина; // Создаем поля оформления ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Список"); ПолеОформления.Использование = Истина; КонецПроцедуры В результате, отбор не осуществляется и все строки окрашиваются в зеленый. Если указываю конкретное поле оформления, все поля списка зеленые. Подскажите, где тут собака зарылась? |
|||
1
acht
05.12.21
✎
11:02
|
(0) > при равенстве двух значений их этого списка
Значения СуммаНачислено и СуммаОплачено находятся в одной строке? |
|||
2
Мимохожий Однако
05.12.21
✎
11:07
|
Попробуй ....
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Список.КонкретноеПолеОформления"); |
|||
3
Shalun
05.12.21
✎
13:56
|
(1) Разумеется, В ОДНОЙ СТРОКЕЮ
(2) Почитай внимательно. Делал. Данное поле по всем строкам окрашивается. Отбор почему то не отбирает. |
|||
4
hhhh
05.12.21
✎
15:08
|
(3) вроде же так нельзя, 2 поля сравнивать. В правом значении должна быть какая-то константа, а не поле.
|
|||
5
youalex
05.12.21
✎
15:11
|
"СуммаНачислено" - так поле (элемент формы) и называется, или все таки "СписокСуммаНачислено" ?
|
|||
6
youalex
05.12.21
✎
15:21
|
(5) а нет, наврал, это же отбор а не поле оформления.
в отборе должно быть что-то вроде Новый ПолеКомпоновкиДанных("Список.СуммаОплачено"); |
|||
7
Ёпрст
05.12.21
✎
19:04
|
(0)
ЭлементУО = УсловноеОформление.Элементы.Добавить(); ПолеЭлемента = ЭлементУО.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("Список"); ОтборЭлемента = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.СуммаОплачено"); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Список.СуммаНачислено"); ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.БледноЗеленый); |
|||
8
Shalun
05.12.21
✎
20:53
|
(6)(7) Парни спасибо! Все верно Список.СуммаДокумента, так нужно!
(;) Программно можно. Это в форме когда делаешь УО, там низя. |
|||
9
Ёпрст
05.12.21
✎
21:30
|
(8) кто запретил????
Открываешь интерактивно уо, в правое значение надимаешь крестик, далее выбираешь поле компоновки из своего списка. Усё |
|||
10
Shalun
05.12.21
✎
22:36
|
(9) Так это левое значение ты выбираешь поле из списка. Если оно числовое, то в правое значение дает ввести только конкретное значение. Ввести другое поле из списка не получается.
|
|||
11
серый КТУЛХУ
05.12.21
✎
23:14
|
(10): получится. убей крестиком и потом при выборе доступен будет тип "поле компоновки данных" (как-то так), а потом - выбрать нужный. в (9) все сказано.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |