|
|
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Ноги растут отсюда.\r Есть ли на этот счет какие-либо мысли, кроме обработки в цикле всего подряд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 12:52 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
может сделаем библиотеку функции для автоматизации всей рутины при работе с деревом? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 13:39 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
>может сделаем библиотеку функции для автоматизации всей рутины при работе с деревом? )) Да эта библиотека уже есть. На одном из сайтов для акеса лежит - так и называется "билиотека для тривью" Только лично я ей не пользуюсь - не удобно и громоздко. Но для самообразования в самый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 13:44 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
а поиск там есть? ссылку дал бы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 13:47 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Есть ли какая-либо функция, метод, свойство, опыт... по перемещению (программно) по веткам дерева? Т.е. от высшего к низшему или наоборот (просмотр содержимого вложенных папок конкретного родителя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 13:51 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
А зачем искать в дереве? Искать надо в реляционных данных, по которым дерево строится. В идеале порядковый номер записи в определенном образом упорядоченном наборе записей соответствует индексу ноды. Чтобы этого добится надо изучатиь теорию. Ссылки приведены там, откуда ноги растут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 13:55 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
По своему опыту создания, наблюдение за чужими и использование деревьев, я зделал для себя несколько выводов: 1. Это очень удобно для многих целей. И товары на складе тому не исключение. На автомобильном складе я наблюдал более 5 вложений и в конечной группе моря наименований, но когда структура хорошо продумана - все, даже новенькие, спокойно ориентируются в дереве. 2. Для удобства выбора, писка и порядка вывода вложенных ветвей и значений самое грамотное решение было организовано через текстовое поле + хранимые процеду его заполняющие. Само текстовое поле имело для каждого уровня вложения 5 знаков, можно и больше но не думаю что-б для одной ветки было 10 000 вложений следующего уровня. Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 14:38 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Это не самое грамотное, но самое быстродействующее решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 14:41 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Мое видение проблем при поиске. - Создовать Node только на основе уникального ключа (PrimaryKey) - При поиске искать в таблице, запоминать ключ, а далее TV.SelectedItem (НайденныйКлюч) А вот если надо найти вхождение (Like "*вася*) , тогда просто на основе этого запроса заново построить дерево (т.е. должна быть функция, которая в качестве парметра принимает Источник для дерева - запрос или рекодсет) либо (взависимости от логики) показать первый найденный элемент. Предусмотреть "отмену" поиска - тогда загружаем дерево полностью. Возможно, при построении дерева возникнет ситуация, когда по добавляемому Узлу еще нет Родителя. В таких случаях самое простое запоминать такие Узлы (их PrimaryKey) в массиве, а далее фильтр (rs.Filter=Массив) и заново на цикл. Поругайте меня за алгоритм, что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 14:45 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
"Кто про что, а вшивый про баню". Так и я. Ну есть мечта. Распечатать на бумаге, то что в форме с деревом "нахимичилось". Или хотя бы данные во временной таблице так организовать, чтобы они последовательно расположились, как в дереве. Они в дереве УЖЕ организованы. Строить механизм их организации отдельно от дерева (независимо от его существования) отдельная песня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 14:53 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2all у меня есть не понимание : для чего нодо дерево? если для быстрого поиска, то слишком много для этого нужно сделать работы ситематизировать (товар,...) следить за тем чтоб не путали. и тд я подсчитыва нажатия операторами (для дерева теоритическ) и по поиску как сделано у меня . не в пользе дерева. особенно когда есть много товара отличающегося в названии на 1-2 символа у меня набирают 3-6 символов из них есть ключевые и всё в спичке раскрывается не более 3-5 строк . и никакой проблемы с каталогизацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:08 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2вадя, а когда механизм подобный твоему сопряжен с деревом скорость поиск возрастает в разы! Хотя спорить не стану если проще определить 5-10 (фиксированное) полей, то проще их просто вывести и в зависимости от выбора по ним и искать... Одним словом: Каждой задачке, своя торпеда! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:17 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Вадя у меня есть не понимание : для чего нодо дерево? С моей точке зрения - в основном, для отображения информации. Блоки которые не нужны в данный конкретный момент, свернуты, нужные развернуты. Уровень детализации пользователь выбирает сам. Надо подробнее - разворачивай. Не надо - сворачивай. У меня например в форме при выделении узла в связанных субформах отображается подробная информации из связанных таблиц, которую можно редактировать. А поиск - дополнение к дереву (и не обязательно в самом дереве), как необязательный, а желательный, сервис. И, как уже говорили многие, эффективнее искать в таблице, затем по ключу делать выделенным соответствующий узел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:23 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
>у меня есть не понимание : для чего нодо дерево? 1. для удобного отображения информации 2. для удобного отображения информации 3. для удобного отображения информации Если для твоей программы дерево не удобно - не используй! З.Ы. Условный пример: Есть товар который надо привязать к какой-либо группе (уровень вложенности групп может быть не ограничен). Разрешаем пользователю самому создавать группы товаров (в противном случае, необходимо создать нужное кол-во таблиц, но тогда пользователю будет не возможно ввести еще одну грппировку). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:23 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Без четкой организации классивикациии товара, товар не товар а свалка. Менеджеру необходим поиск не столько по названию, сколько по группе товара, а то появился на складе новый товар, а еще два месяца ищут старый с старым названием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:24 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
У меня комбинированное решение - деревом ограничивается набор, причем в тривью выведено фактически несколько деревьев (при выборе узлов в разных деревьях результирующий набор - пересечение), плюс к этому быстрый поиск по первым буквам в уже ограниченном наборе (можно заменить на поиск не с начала, а с любого места, или вообще сделать вместо поиска еще одну фильтрацию). На мой взгляд весьма удобно. На взгляд пользователей тоже (и слава богу). В принципе дерево можно было заменить набором комбобоксов, ибо количество деревьев и максимальная глубина вложенности фиксирована. Если бы это делал я - еще бы подумал, стоит ли тривью использовать. Но так как это сделали до меня - пусть живет. Все таки получилось наглядно и для меня беззатратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:32 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор Извини, я не понимаю зачем для группировки НЕОГРАНИЧЕННОЕ число уровней вложенности. Хам трамвайный в соседнем топике правильно сказал, что достаточно 3-4 уровней. И зачем пользователям давать возможности создания новых уровней группировки. Надо дать им эти 3-4 - и пусть ими грамотно пользуются. От балды: средняя заполненость одного уровня - 10 элементов. При 4 уровнях - 10000 товаров. Уже хорошо. Можно ввести параллельную (вторую) каталогизацию, по признакам, логически отличающимся от признаков, входящих в первую. Еще 10000. Причем общее кол-во - не 20000, а 100000000. Время на создание 8 таблиц, кучки запросов и комбобоксов - очень мало по сравнению с гимором для структуры, описывающей каталог с произвольной стуктурой вложенности + код для нормальной работы с ненормальными данными. Отображать это можно деревом, если так удобно. В итоге получаем менее гибкую систему (сложнее добавлять уровни, если таки понадобится), но более простую работу с данными. Не надо парсить никакие текстовые строки, задаваться вопросом "как мне узнать все содержимое какого-либо узла", мучаться с распечаткой отчетов и т.п. Все рашается самым простым SQL. Но, конечно Каждой задачке, своя торпеда! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:48 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Извини, я не понимаю зачем для группировки НЕОГРАНИЧЕННОЕ число уровней вложенности. А теперь эти слова - да конструктору. А то напридумывали - "изделие состоит из узлов, узлы из блоков, блоки из других блоков, которые из третьих, в которых в свою очередь есть четвертые, а они, подлецы, тоже "не истина в последней инсталяции"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:02 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2Лоху >Но, конечно Каждой задачке, своя торпеда! Энто точно. Моя торпеда хочет сама создавать грппировки (про бесконечность это загнул.) Но на этапе разработки не понятно скольок будет окнечных уровней. Допустим я решу 8 - делаю 8 таблиц. А надо 3. Прийдется оставшеся 5 дублировать - пока не спустимся на нижний уровень к кторому привязаны элементы. Или: пройдет полгода-год - захотят в связи с просьбами отдела маркетинга расширить группировку- надо делать 9 таблицы, а это значит проделать огромную работу. И не факт что через год они опять не возжелают чего-либо (например, сократить до 3). Вот такая абракадабра :) Поэтому, плюнув на все, я сделал в виде дерева (как способ хранения). Но, правда, решил ограничить уровень вложенности (задается для каждой сущности свой), но еще не привязал к проге. Таким образом потратив немерянное кол-во времени я избавил себя (а вполне возможно и будующего программера) от этой дурацкой проблемы - неопределнности компании в своих группировках. Вчера, например, оказалось что один из директоров придумал свою структуры Персонала. Я ее не видел...но проблем быть не должно. Пусть балуются Думаю, я ответил на вопрос ". И зачем пользователям давать возможности создания новых уровней группировки" З.Ы. Для тех прог, которые я пытаюсь продать через инет, деревья делать не буду - только списки и жесткая структура. Ничего баловать мало платящих З.Ы.Ы. Вспомнил еще два плюса в защиту деревьев. 1. Как-то на собеседовании у меня спросили умею ли я работать с mscomctl. Тогда не умел - не взяли (может и не поэтому во все) 2. Один из заказчиков, увидев возможность ListView по сравнению со списком Акеса, воскликнув "Это по-взрослому" и дал бабок для переделки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:10 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2 Витал Все равно число уровней группировки - конечное (и скорее всего заранее известное). Никто не будет изделия до молекул каталогизировать. А если оно большое - стоит подумать, не разбить ли эту группировку на несколько независимых. К тому же этот пример ("изделие состоит из узлов, узлы из блоков, блоки из других блоков, которые из третьих") - немного из другой оперы. Очень похоже, но не то. Это проблема комплектации изделий из примитивов. Под нее и решение свое (имхо). Что же касается отображения - когда человек продает автомобиль ему не захочется видеть в тривью список автомобилей, каждый из которых раздрочен до составляющих его гаек. Когда механик выписывает счет за ремонт двигателя - ему не нужна каталогизация машин по цвету, году выпуска, и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:17 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор Да все понятно. Надо. Иногда надо. Беда в том, что задача очень частая, стандартными средствами не реализуется, кода писать все-таки много, и гораздо проще убедить себя в том, что оно и не надо . У меня уже полгода в голове мысль бродит - сделать своими ручками нормальный компонент для програмной работы с древовидными структурами. Под мое собственное видение проблемы. Может такое уже и есть - мне пофиг, для самообразования полезно. И ActiveX контрол в придачу, для смежной задачи (отображение - пользовательское управление). Если таки соберусь - начну его пихать во все свои проекты и перейду из стана (условно) противников тривью в стан сторонников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:24 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
Лоху Позорному Это проблема комплектации изделий из примитивов. Под нее и решение свое (имхо). Если не секрет & если не деревянное, то какое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:24 |
|
||
|
Целиком ЗА! предложение Виктора Сенина о поиске в дереве!
|
|||
|---|---|---|---|
|
#18+
2 Витал Не секрет, но расписывать сейчас не буду. Переформулирую мысль: При работе со сложными (составными) изделиями возникает (в моих задачах) куча других вопросов помимо отображения/каталогизации. Учетные вопросы, динамическое изменение изделий, сборочные визарды, проверки на совместимость и т.п. Все это выливается (у меня) в какую-то немерянную эпидерсию :((. Оно перестает влезать даже в древовидные структуры, разрастается до каких-то экспертных систем. Там уже не до деревьев, и без того гимора хватает. Разобраться бы хоть с фиксированным количесвом уровней вложенности, и то хорошо. Это уже отдельная тема, поэтому на фиг ее. Аминь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1798&tid=1681327]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 337ms |

| 0 / 0 |
