gifts2017

Отметка строк в дереве и прочие примеры работы с деревом

Опубликовал Эстер Коган (e.kogan) в раздел Программирование - Универсальные функции

Обработка, содержащая форму, которую можно применять универсально, и формочку для тестирования. Примеры работы с деревом для применения где угодно.

Умеет:

  • Отмечать строки в переданном дереве флажками (флажок выводится в первой колонке, имя колонки флажка передаётся, если колонки нет - добавляется);
  • Возвращать результат отметки в виде:
    • Дерева значений
    • Таблицы значений
    • Списка значений 
  • Только "концевые" строки или все; только отмеченные или все - в любых комбинациях.

Для вызова: Отмеченное=ПолучитьОбщуюФорму("ФормаОтметкиДерева").ОтметитьСтрокиДерева(ТвоеДерево,"КолонкаПометки"[,Новый Структура("флТолькоОтмеченные,флТолькоКонцевые,ЧтоВозвращать,флПоказВозвращаемогоЗначения,КолонкаПредставления,ЗаголовокФормы,Таймаут",Истина,Истина,"Дерево,Список,Таблица",Истина,ТвоеДерево.Колонки[1].Имя,"Поставьте флажки, где успеете:",10)])[.Дерево/Список/Таблица]; 
Результат вызова - структура; можно обращаться сразу к результатному дереву/списку/таблице, по ключу структуры (Дерево,Таблица,Список). Если от выбора отказались или не успели - возвращает Неопределено.

Форма для тестирования открывается уже максимально настроенной.

Форму отметки можно сразу перетаскивать в общие, дополнительной настройки не требует.

Зачем: кроме того, что обработка содержит примеры разнообразных трансформаций дерева путём рекурсивных обходов (и только их!), в ней же - обработка установки "серого" флага на родителей, отметки дочерних строк, пример полной инкапсуляции обработки (вызов одной строкой). И простейший таймер :)

Ну и не всегда можно обойтись отметкой варианта/вариантов из списка, бывают и сложные ситуации :)

 

Скачать файлы

Наименование Файл Версия Размер
ОтметкаСтрокДерева.epf 487
.epf 17,31Kb
28.12.10
487
.epf 17,31Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Александр Синцов (Sintson) 28.12.10 13:56
2. Алексей Константинов (alexk-is) 28.12.10 14:46
Почему кнопки такие ...хм... длинные?
3. Ийон Тихий (cool.vlad4) 28.12.10 14:51
А не знаю пока зачем мне это, но плюс, автор все равно молодец.
4. Яков Коган (Yashazz) 29.12.10 12:40
(3) А это нам с Эстер давно надо было сделать, в конфе нашей много таких мест, где пригодится; вот, сделано. Эстер молодец!
5. Эстер Коган (e.kogan) 29.12.10 12:41
(2) В форме тестирования кнопки длинные, чтоб не промахнуться :) Ну - и это ж всё-таки просто для тестирования, могу я поизвращаться как захотелось? ;)
6. vladal (Vladal) 30.12.10 12:15
(0) Вещь хорошая, но чтобі зазря не качать, есть вопросы:
Комментарии и описание в модуле?
Всё будет понятно и для пассажиров бронепоезда?
7. Саўка Збянтэжаны (Збянтэжаны Саўка) 04.07.11 12:57
(0) Прекрасная работа, хоть и маленькая и компактная, але ж вельмi змястоўная!
Дзякуй велькi.
8. Tindir Mindir (tindir) 04.07.12 07:10
А данная Обработка может работать с любыми деревьями? то есть есть ли ограничения по структуре дерева, без внесения изменений?
9. Эстер Коган (e.kogan) 04.07.12 10:05
(8) Ограничений не ставила.
(6) А чтоб я помнила :) Вроде должно быть понятно.
10. Илья Фамилия (Murom) 28.03.13 11:16
Скачал чтоб посмотреть как ставить метки на дереве с 3 значениями.
Посмотрел как тут реализовано и ... написал по своему.
Чего мне не хватает так это сохранение развернутых узлов дерева и пометок после переформировании дерева...
Думал вдруг здесь это найдется. НО , если б не искал готовое, то уже сам бы написал :)
За обработку спасибо и плюсик.
11. Эстер Коган (e.kogan) 28.03.13 11:45
(10) Murom, а в чём проблема с сохранением, если есть какой-нибудь ключ у строки дерева?..
12. Илья Фамилия (Murom) 28.03.13 12:07
(11) e.kogan,
Эх, уважаемая (судя по аватару смею решить что вы девушка), ключ добавить не проблема.
Но ключ будет рассчитываться как-то при построении дерева, а это значит если я буду перезаполнять дерево, то ключи у нового дерева могут не совпасть.
Поэтому т.к. у меня в дереве 3 колонки и они достоверно идентифицируют нужный мне узел, то привязаться решил к этим 3 значениям. По ним буду сохранять статус развернут/неразвернут и пометку.
13. Эстер Коган (e.kogan) 28.03.13 12:14
(12) Murom, так я именно о ключе, который однозначно идентифицирует строку по смыслу, и говорю - простом ли, составном ли.
14. Илья Фамилия (Murom) 28.03.13 12:44
(13) e.kogan,
В таком случае вы правы. Не сразу понял я ваш пост про ключ.