|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
GendriveAleksey-K, я вот решил показать скриншот как это работает В правом верхнем углу - поле поиска. Если убрать галку "показывать только найденное" то идет поиск в реальном времени когда набираешь слово. Если ее поставить появляется кнопочка поиска нажимая которрую получаешь в тривью все записи подходящие под условие. Они подсвечены зеленым. Такой вариант поиска только в "дереве" был когда-то попробован и .... через некоторое время отвергнут по нескольким причинам: 1. Скорость - Поиск в курсоре и отображение в гриде по скорости существенно выше, чем поиск по дереву и отображение в нем при большом объеме данных. 2. Нахождение искомого элемента справочника на разных уровнях дерева вынуждает пользователя менять фокус взгляда. При частой операции у пользователей накапливается раздражение и нам пришлось отказаться от дерева. В гриде при отборе взгляд всегда направлен на одно место - первая строка. С уваженимем, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 08:50 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Aleksey-K, а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью. Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 09:19 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Gendrive а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью. Я не думаю, я знаю, что ты именно так и ищешь: сначала по курсору, а потом по дереву (наверное по ключу нода), т.е. дважды ищешь, а я ищу один раз - только по курсору. Gendrive Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте. Поясни, что такое мгновенный поиск и главное, как ты в дереве делаешь так, что искомый NODE будет в том же месте, где у тебя сейчас курсор (на другом ноде)? А если искомый нод в свернутой ветке? Да ладно.. Я ведь никого не уговариваю. Мы решили в свое время отказаться от дерева как инстумента ВЫБОРА элемента (но не ввода). Если ваши заказчики не жалуются на поиск по дереву, что у них глаза устают от мельтешения дерева, то хорошо, а наши вот заставили нам переделать поиск по "плоскому" гриду. С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 09:42 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
GendriveAleksey-K, а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью. Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте. Так Володя Максимов как раз про это и написал, причем корректно и с павильными выводами в конце. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 10:54 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Aleksey-Kкак ты в дереве делаешь так, что искомый NODE будет в том же месте, где у тебя сейчас курсор (на другом ноде)? А если искомый нод в свернутой ветке? aaa - id Node, всегда известный на момент построения дерева Form.OleTree.Nodes(aaa).Selected = .T. Form.OleTree.Nodes(Form.OleTree.Nodes(aaa).Index).EnsureVisible() (ну нравится мне в полной форме) Первое устанавливает курсор на искомый Node и распахивает родительские узлы, второе - визуально позиционирует дерево на распахнутом Node (если он за пределами списка Nodes). И всё... Работает мгновенно. Т.е. ситуацию, когда корректировка БД приводит к изменению Nodes.Text и его положению в узлах я решаю этим способом. Text изменился, узел, возможно тоже (может понадобится ещё и Form.OleTree.Nodes.Remove(index/key)), оккорректированный Node получил фокус, а TreeView - Scrolling (если надо). Т.е. каждый получил своё! ))) p.s.: А не шуточный тут диспут... Прям, научный... ))) Gendrive всколыхнул пласты сообщества... ))) Я уж лет 10-ть не участвовал... Даже молодость вспомнил ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 10:58 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Валентин Н.Карелин aaa - id Node, всегда известный на момент построения дерева Form.OleTree.Nodes(aaa).Selected = .T. Form.OleTree.Nodes(Form.OleTree.Nodes(aaa).Index).EnsureVisible() (ну нравится мне в полной форме) Первое устанавливает курсор на искомый Node и распахивает родительские узлы, второе - визуально позиционирует дерево на распахнутом Node (если он за пределами списка Nodes). И всё... Работает мгновенно. 1. Ну насчет того, что работает мгновенно, когда у вас десятки тысяч Node я не уверен, но сам не проверял. 2. И вы хотите сказать, что визуально искомый нод будет на том месте экрана, где у вас курсор при поиске? Что-то не очень верится. А если у вас искомый нод уже на экране, но не выбран, то с какой стати у вас "продернется" дерево, а не просто фокус переведется на этот нод ? Из приведенного кода, во всяком случае, это никак не слудует. С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 11:35 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Aleksey-K1. Ну насчет того, что работает мгновенно, когда у вас десятки тысяч Node я не уверен, но сам не проверял. А у меня и нет TreeView на десятки тысяч Node... Вообще-то, это не я утверждал о мгновенности работы в TreeView на десятки тысяч Node. Я как раз выражал озабоченность о скорости построения дерева на 50,000 узлов (посмотрите начало) Aleksey-K2. .... А если у вас искомый нод уже на экране, но не выбран, то с какой стати у вас "продернется" дерево, а не просто фокус переведется на этот нод ? Из приведенного кода, во всяком случае, это никак не слудует.. "А если у нас" Node уже на экране , то он только получит фокус... .EnsureVisible() не передёрнет его. Но EnsureVisible() я вставляю потому что не знаю где этот Node может оказаться. Над экраном (тогда UpScrolling), или под экраном (тогда DownScrolling). Если же он на экране, - передёргивания не происходит. Я это использыю при добавлении в справочник, - никогда не известно, что взбредёт добавить в голову юзверу. А список может быть значительным, и Node добавляется у меня не в конец ветки , а согласно "купленному билету", т.е. согласно правилам позиционирования по алфавиту . TreeView перепозиционируется (Scroll) на новый Node и юзер сразу видит, что он добавил в дерево, а также какие значения полей он добавил в новом Node... p.s.: Блин, прямо симпозиум древоведов... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 14:07 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Кстати, господа! А ведь никто толком не ответил на вопрос Gendrive, с которого и начался весь этот курултай... А ведь человек то спрашивал не о том, хорош ли TreeView, насколько хорош, иль вообще плох... Я думаю он сам это знает лучше нас всех!.. Вопрос то был "Multi columm treeview". Но как и мне лет 5-6 назад никто и не ответил... Тоже ушли в сторону бичевания-восхваления TreeView. Господа! Знаете ответ о Multi columm treeview - отвечайте, нет - проходите мимо! Мне кажется так правильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 14:18 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Валентин Н.Карелин p.s.: Блин, прямо симпозиум древоведов... Давно научно доказано, что во время споров в Интернете: -никто не читает полностью сообщения других участников спора -каждый слышит только свою точку зрения -не одна из точек зрения никогда не побеждает -все в конечном итоге заканчивается взаимными оскорблениями. Поэтому Владимир Максимов правильно сделал, перейдя сразу к последнему пункту и закончив спор. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 14:26 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Я использую ctTree 6.0 от DBI Technologies Inc. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2008, 19:33 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Aleksey-K Я не думаю, я знаю, что ты именно так и ищешь: сначала по курсору, а потом по дереву (наверное по ключу нода), т.е. дважды ищешь, а я ищу один раз - только по курсору. Алексей, все дело в том, что в тривью искать НЕ НАДО. Если ты знаешь ключ узла, который как раз находится в курсоре в котором осуществляется поиск, то переход к этому узлу делается мгновенно. Делаешь на этот узел селект и ensurevisible и все. При заполненном дереве это работает очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2008, 05:11 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Aleksey-K 1. Ну насчет того, что работает мгновенно, когда у вас десятки тысяч Node я не уверен, но сам не проверял. Самый длинный процесс в данном случае это заполнение тривью. ПОсле того как оно заполнено, переход по узлам осуществляется очень быстро, даже при большом количестве узлов. Aleksey-K 2. И вы хотите сказать, что визуально искомый нод будет на том месте экрана, где у вас курсор при поиске? Что-то не очень верится. А если у вас искомый нод уже на экране, но не выбран, то с какой стати у вас "продернется" дерево, а не просто фокус переведется на этот нод ? Из приведенного кода, во всяком случае, это никак не слудует. Здесь не все так просто, на самом деле. Узел МОЖЕТ оказаться не на том самом месте, где был курсор на предыдущем узле. НО это достаточно просто решается, насколько я помню. Я просто не заморачивался этим, но думаю вопрос нескольких строчек кода в классе. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2008, 05:16 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
BeresnevЯ использую ctTree 6.0 от DBI Technologies Inc. Купленный? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2008, 08:58 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Gendrive Я все-таки дополню, но не по поводу дерева, а по способу ведения дискуссии. Прежде чем отвечать на отдельное предложение прочитай ВСЕ сообщение. Возможно, ты все-таки увидишь разъяснение смысла чуть ниже. Посмотри на ту "лапшу", что ты нарезал на мой последний ответ. Практически на каждое твое замечание идет опровержение в следующем моем предложении и ты вынужден разворачиваться на 180 градусов. Это еще в том случае, если ты отвечаешь "в тему". Но зачастую, ты отвечаешь "мимо" (не по теме), даже на выдернутые из контекста предложения. Собственно, ты просто не захотел понять смысл моего ответа. Впрочем, Aleksey-K на примерах разъяснил то, что я сказал, а ты не захотел понять. Вопрос ведь вовсе не в том, как сделать то или другое программно. Вопрос в том, как это воспринимает пользователь. Насколько он способен удобно и быстро работать. И еще, постарайся не делать скоропалительных выводов о том что другие смогли или не смогли. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2008, 19:10 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2008, 15:29 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
ParnishaВовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо) Кстати, да. На милионниках часто становится критичным то, что у тебя в памяти болтаются данные как в TreeView, так и в курсоре. Причем, если в TreeView за свопинг отвечает только операционка, то фокс еще и сам пытается буферизировать на диск. Полный бардак и неизлечимый тормоз получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 05:53 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
ParnishaВовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо) И вот послышался лай Моськи на слона )) Имейте хотя бы мужество писать подобные посты от своего имени. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 11:08 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
хоть я уже и не пишу на фоксе тоже придерживаюьс точки зрения что деревья это усложнение так как минимум требуется регистрация ocx на ПК юзеров что может быть не доступно по каким то причинам по крайне мере для работы операцианистов - зы возможно моя аудитаория юзеров (типа кладовщик) была такой что я даже и не пытался к тому же в гриде у меня поиск был по любому текущему полю а в три может и можно как то но я не уверен хотя вообще это делов вкуса и фреймворка есть 1 момент где я вижу можно заюзать эту идею - типа если отчеты делать для начальства (аналитика) такой примитивный BI там да - деревья по иерерахиям очень удобоны - чтобы таскать - в многих BI системах собственно так и сделано а вот ? я не понял для чего надо то от Multi columm treeview может скриншот кто приведет инетересно глянуть как он юзается ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 16:55 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
CcRaZzYParnishaВовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо) И вот послышался лай Моськи на слона )) Имейте хотя бы мужество писать подобные посты от своего имени. может тебе ещё и паспортные данные))) я вобщето не месный, и на фоксе никогда не писал)) имейте моск уважаемый, почитайте внимательно посты, подумайте... если не выйдет ещё раз подумайте))) после проводите ассоциации мосек и слонов)) ЗЫ: Просто реальный гон я невыжержал)) некомпетентность с "умным видом" меня просто бесит) Читайте доки господа) а если речь идёт о чёмто вам вовсе не ясном или немного ясном, или вы так думаете что всё знаете..... но это может быть нетак))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 17:31 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Kruchinin PahanParnishaВовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо) Кстати, да. На милионниках часто становится критичным то, что у тебя в памяти болтаются данные как в TreeView, так и в курсоре. Причем, если в TreeView за свопинг отвечает только операционка, то фокс еще и сам пытается буферизировать на диск. Полный бардак и неизлечимый тормоз получается. ИМХО: Надо менять контролы, чтоб не грузили всю дату с БД сразу... или менять весь енвиропмент) Удачи) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 17:36 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Странный диспут. Что-то вроде: что лучше, велосипед или трактор? Дерево предназначено для отображения структуры. Поэтому, если нужно видеть структуру, лучшего контрола я не знаю. А для операционистов, вводящих большой объем однородной информации даже мышка лишней будет, не говоря уж о дереве. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 07:05 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Parnisha ИМХО: Надо менять контролы, чтоб не грузили всю дату с БД сразу... или менять весь енвиропмент) Вы путаете кислое с длинным. Я не про алгоритм наполнения данными, а про двукратное использование памяти одними и теми же данными. А логика "что не вижу, то вычищаю", в общем случае, порочна. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 08:07 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
AleksMedGendriveAleksey-K, а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью. Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте. Так Володя Максимов как раз про это и написал, причем корректно и с павильными выводами в конце. :) Следуя этой логике (то что мол если поиск происходит в курсоре, а отображается в тривью и, на основании этого, тривью плохой) следует отказаться от телевизора. ведь действие происходит не в самом телевизоре, а где-то в другом месте. ПОэтому использование телевизора - порочная практика. надо сидеть в студии. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 08:23 |
|
Multi columm treeview (treeview + grid)
|
|||
---|---|---|---|
#18+
Гулин Федор, ну примерно так и выглядит ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 09:04 |
|
|
start [/forum/topic.php?fid=41&msg=35650681&tid=1587004]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 336ms |
total: | 482ms |
0 / 0 |