|
УФ + Дерево + Флажки, программное изменение флажков в подчиненных строках | ☑ | ||
---|---|---|---|---|
0
bacila
26.09.14
✎
14:40
|
Добрый день , трабл следующий , делаю дерево значений заполняю, в нем есть колонка с булевом (флажок), при изменении флажка на верхнем уровне хотелось бы заполнить флажки нижнего уровня, если делаем значение в реквизит и потом обратно, то дерево отрисовывается заново , ну и получается свернуто, а хотелось бы чтоб оно оставалась таким какое было в момент изменения флажка. Есть ли у кого нибудь соображения по этому поводу?
|
|||
1
Зойч
26.09.14
✎
14:44
|
Заполняй флажки в без проебразования
|
|||
2
Зойч
26.09.14
✎
14:44
|
Для каждого Строка1 из Дерево.ПолучитьЭлементы() Цикл
КонецЦикла |
|||
3
Балоун
26.09.14
✎
14:44
|
интересно, а если я тут сейчас как начну делиться обработками ;)
Почему на мисте нельзя обмениваться обработками? |
|||
4
Балоун
26.09.14
✎
14:46
|
не знаю, насколько в тему
&НаКлиенте Процедура ПродажиПометкаПриИзменении(Элемент) СтрокиДерева=Элемент.Родитель.ТекущиеДанные.ПолучитьЭлементы(); Уровень=УровеньСтроки(Элемент.Родитель.ТекущиеДанные); СтараяПометка=(Элемент.Родитель.ТекущиеДанные.Пометка+2)%3; Если Уровень=4 Тогда Элемент.Родитель.ТекущиеДанные.Пометка=СтараяПометка; Возврат; КонецЕсли; Элемент.Родитель.ТекущиеДанные.Пометка=1-СтараяПометка; Для Каждого ТекСтрока Из СтрокиДерева Цикл ; ПроставитьГалкиПотомкам(ТекСтрока, Элемент.Родитель.ТекущиеДанные.Пометка); КонецЦикла; ПроставитьГалкиРодителям(Элемент.Родитель.ТекущиеДанные.ПолучитьРодителя()); КонецПроцедуры &НаКлиенте Процедура ПроставитьГалкиПотомкам(СтрокаДерева, Галка) СтрокаДерева.Пометка=Галка; Для Каждого ТекСтрока Из СтрокаДерева.ПолучитьЭлементы() Цикл Если ТекСтрока.Пометка<>Галка Тогда ПроставитьГалкиПотомкам(ТекСтрока, Галка); КонецЕсли; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ПроставитьГалкиРодителям(Родитель) Если Родитель=Неопределено Тогда Возврат; КонецЕсли; Соседи=Родитель.ПолучитьЭлементы(); с=0; Для Каждого ТекСтрока Из Соседи Цикл с=с+ТекСтрока.Пометка; КонецЦикла; НоваяПометка=?(с=Соседи.Количество(), 1, ?(с, 2, 0)); Если Родитель.Пометка<>НоваяПометка Тогда Родитель.Пометка=НоваяПометка; ПроставитьГалкиРодителям(Родитель.ПолучитьРодителя()); КонецЕсли; КонецПроцедуры |
|||
5
bacila
26.09.14
✎
14:48
|
Спасибо кто откликнулся ))) щас опробую все варианты)
|
|||
6
bacila
26.09.14
✎
15:14
|
(4) Прям то что надо, код правда не совсем понятен мне был ) твой но в нем было все что надо, спасибо
|
|||
7
Ерепень
26.09.14
✎
15:16
|
(6) там флажки трёхцветные
|
|||
8
bacila
26.09.14
✎
15:23
|
(7) вон оно че )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |