Рекурсивный список в виде дерева (TREE)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Рекурсивный список в виде дерева (TREE)

Сообщение finsoftrz »

Уточнил на всякий случай. В ШВС именно с подкачкой веток работает. Количество уровней не ограничено. Кто-то писал, что когда уровней вложенности больше 10, то может подтормаживать. Не проверял, у меня столько уровней не встречалось.
Там, кстати, можно еще устанавливать корень на какую-то ветку и выводить только ее содержимое. Иногда нужно бывает.

tree.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Рекурсивный список в виде дерева (TREE)

Сообщение Игорь Столяров »

Вот именно про это я говорил - что либо нужно делать, либо пока юзать другое.
Я правильно понимаю, что на рисунке слева выбрана группа, а справа показан список её содержимого ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Рекурсивный список в виде дерева (TREE)

Сообщение finsoftrz »

Игорь Столяров писал(а): 04 Октябрь 2023, 17:45 Вот именно про это я говорил - что либо нужно делать, либо пока юзать другое.
Я правильно понимаю, что на рисунке слева выбрана группа, а справа показан список её содержимого ? ;)
Нет, конечно. Перемещение по дереву групп слева и отображение товаров справа не связаны. Чтобы отобразить товары группы, нада 2 раза щелкнуть в дереве. Выбранная группа показывается сверху над деревом, и это вторые блюда, а не коньяк. :-) Товары могут просматриваться и без отбора по группе, сплошным списком с заданной сортировкой. Такая схема работы позволяет также быстро перекидывать товары между группами. Изучаем наследие 1С, там ещё в конце 90-х было подобное реализовано и не потеряло актуальности сегодня. Только в данном случае реализация ещё круче, можно без потери производительности и переноса в другие группы скрывать вышедшие из употребления позиции. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Рекурсивный список в виде дерева (TREE)

Сообщение Игорь Столяров »

finsoftrz писал(а): 04 Октябрь 2023, 18:32 Чтобы отобразить товары группы, нада 2 раза щелкнуть в дереве.
Т.е. неким образом выполняется запрос на товары по ранее выбранной ветке классификации.
В принципе - почему бы и нет ... нечто подобное и мы делали без дерева (только надо жмать кнопу).

По рисунку. А вот это действие (двойной щелчок мышкой на ветке дерева) позволяет показать ассортимент:
- Весь "Коньяк" ?
- Весь "Алкоголь" ?
- Все расходники (Столовая + Кофейня) ?

У нас такое сделать мона ! 8)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Рекурсивный список в виде дерева (TREE)

Сообщение finsoftrz »

Игорь Столяров писал(а): 04 Октябрь 2023, 20:18
finsoftrz писал(а): 04 Октябрь 2023, 18:32 Чтобы отобразить товары группы, нада 2 раза щелкнуть в дереве.
Т.е. неким образом выполняется запрос на товары по ранее выбранной ветке классификации.
В принципе - почему бы и нет ... нечто подобное и мы делали без дерева (только надо жмать кнопу).

По рисунку. А вот это действие (двойной щелчок мышкой на ветке дерева) позволяет показать ассортимент:
- Весь "Коньяк" ?
- Весь "Алкоголь" ?
- Все расходники (Столовая + Кофейня) ?

У нас такое сделать мона ! 8)
В справочнике такого нет. А нафига?
В отчетах по движению товаров (которые в виде list на экране) обычно задается список групп для отбора. Можно выбрать одну верхнюю группу, в отчет попадут все дочерние. Расчет итогов по каждому уровню вложенности. Там это имеет смысл.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Рекурсивный список в виде дерева (TREE)

Сообщение Игорь Столяров »

finsoftrz писал(а): 04 Октябрь 2023, 20:53 В справочнике такого нет. А нафига?
Ну например, я хочу посмотреть в списке все остатки расходников или цены на алкоголь.
Иначе получается, что дерево - это для удобства управления самим классификатором
(для тех кто знает и помнит, что в какой ветке), а не собственно доступом к списку ассортимента.

Возникает вопрос как у Хазанова на вокзале: "Почему туалет не работает, хотя запах есть ?!" ;)
За теми кто отстал - не возвращаться. (С) Кодекс
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Рекурсивный список в виде дерева (TREE)

Сообщение gopstop2007 »

kreator писал(а): 28 Сентябрь 2023, 21:26 Есть шаблон "Дерево по одному файлу". Он не ABC, но сойдёт. Там проблема с SQL таблицами, но я её обошёл. Ещё ошибок там куча, я периодически их вылавливаю. Могу выложить мою исправленную версию. Автора, честно говоря уже не помню.
А как вы до сих пор дерево рисовали? Список товаров логично в дерево вписывается.
Ваш модернизированный шаблон позволяет, несколько шаблонов в одном модуле? Или если не сложно выложте пожалуйста исправленную версию, спасибо.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Рекурсивный список в виде дерева (TREE)

Сообщение gopstop2007 »

Вот из архива
Вложения
tree.zip
(82.11 КБ) 29 скачиваний
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Рекурсивный список в виде дерева (TREE)

Сообщение finsoftrz »

Игорь Столяров писал(а): 04 Октябрь 2023, 21:02
finsoftrz писал(а): 04 Октябрь 2023, 20:53 В справочнике такого нет. А нафига?
Ну например, я хочу посмотреть в списке все остатки расходников или цены на алкоголь.
Иначе получается, что дерево - это для удобства управления самим классификатором
(для тех кто знает и помнит, что в какой ветке), а не собственно доступом к списку ассортимента.

Возникает вопрос как у Хазанова на вокзале: "Почему туалет не работает, хотя запах есть ?!" ;)
Я написал уже, что у нас это называется отчеты. Засовывать все в базовый справочник это мало юзабельно. Чтобы понятнее было.
Это параметры отчета. Здесь выбираем в списке групп для отбора "Алкоголь". Все, как Вы любите. :-)

tree1.jpg

Это результат. Там много позиций, строки с итогами не видны. Ну и там еще колонки есть, не стал выбирать другой вариант показа. Дерево разворачивается в линейный список.

tree2.jpg

Это тот же отчет, но в режиме вывода групп, без товаров

tree3.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7379
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Рекурсивный список в виде дерева (TREE)

Сообщение Игорь Столяров »

Спасибо - я понял. Для, я про это спрашивал. :) Это вопрос принятой терминологии.
У нас "ОТЧЁТ" - это REPORT (печать, в PDF, в XLSX, в XML и т.д.). А как Вы показали на снимках - это ЗАПРОС. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Рекурсивный список в виде дерева (TREE)

Сообщение finsoftrz »

Игорь Столяров писал(а): 04 Октябрь 2023, 22:11 Спасибо - я понял. Для, я про это спрашивал. :) Это вопрос принятой терминологии.
У нас "ОТЧЁТ" - это REPORT (печать, в PDF, в XLSX, в XML и т.д.). А как Вы показали на снимках - это ЗАПРОС. :)
В Вашем понимании "Отчет" у меня практически совсем нет. "Отчет" в моем понимании можно автоматом сохранять в xls или report (и далее в pdf, doc, rtf). Report обычно это только печатные формы первичных документов.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Рекурсивный список в виде дерева (TREE)

Сообщение kreator »

gopstop2007 писал(а): 04 Октябрь 2023, 21:35
kreator писал(а): 28 Сентябрь 2023, 21:26 Есть шаблон "Дерево по одному файлу". Он не ABC, но сойдёт. Там проблема с SQL таблицами, но я её обошёл. Ещё ошибок там куча, я периодически их вылавливаю. Могу выложить мою исправленную версию. Автора, честно говоря уже не помню.
А как вы до сих пор дерево рисовали? Список товаров логично в дерево вписывается.
Ваш модернизированный шаблон позволяет, несколько шаблонов в одном модуле? Или если не сложно выложте пожалуйста исправленную версию, спасибо.
Была такая проблема. Посмотрю - исправлял её или нет, уже не помню.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Рекурсивный список в виде дерева (TREE)

Сообщение kreator »

Губин Игорь писал(а): 04 Октябрь 2023, 15:48
kreator писал(а): 04 Октябрь 2023, 15:27 У нас тысячи записей. Отрабатывает быстро.
Дерево, отображаемое в LIST, в любом случае требует полной подкачки файла, хочешь или не хочешь. Можно извращаться с постраничной загрузкой, но ключевое тут "извращаться"
В SQL как бы файлов нет. Скорость в основном зависит от скорости сети. Сервер выдаст 100000 записей за доли секунды. Но не факт, что передача их по сети будет так же быстра.
Есть в SQL ещё интересная фича. С помощью команды "with recursive" сервер сам построит дерево. И его можно использовать как обычный броуз. Естественно во вьюху запрос преобразовать надо.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Рекурсивный список в виде дерева (TREE)

Сообщение kreator »

finsoftrz писал(а): 04 Октябрь 2023, 18:32 Нет, конечно. Перемещение по дереву групп слева и отображение товаров справа не связаны. Чтобы отобразить товары группы, нада 2 раза щелкнуть в дереве. Выбранная группа показывается сверху над деревом, и это вторые блюда, а не коньяк.
Это конечно специфично, мягко говоря. Как пользователю объяснить, что справа список, не связанный со списком слева?
У нас вот так:
tree.png
Чтобы отобразить весь правый список, надо в дереве слева встать на самый верх.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4984
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Рекурсивный список в виде дерева (TREE)

Сообщение kreator »

kreator писал(а): 05 Октябрь 2023, 15:16 Была такая проблема. Посмотрю - исправлял её или нет, уже не помню.
Нет, руки не дошли. У нас мало деревьев, не сильно напрягало. Посмотрю на выходных что можно сделать.
We are hard at work… for you. :)
Ответить