Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: Multi columm treeview (treeview + grid)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Gendrive
Aleksey-K,
я вот решил показать скриншот как это работает
В правом верхнем углу - поле поиска. Если убрать галку "показывать только найденное" то идет поиск в реальном времени когда набираешь слово. Если ее поставить появляется кнопочка поиска нажимая которрую получаешь в тривью все записи подходящие под условие. Они подсвечены зеленым.

Такой вариант поиска только в "дереве" был когда-то попробован и .... через некоторое время отвергнут по нескольким причинам:
1. Скорость - Поиск в курсоре и отображение в гриде по скорости существенно выше, чем поиск по дереву и отображение в нем при большом объеме данных.
2. Нахождение искомого элемента справочника на разных уровнях дерева вынуждает пользователя менять фокус взгляда. При частой операции у пользователей накапливается раздражение и нам пришлось отказаться от дерева. В гриде при отборе взгляд всегда направлен на одно место - первая строка.
С уваженимем, Алексей.
13 ноя 08, 08:50    [6432495]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
Aleksey-K,

а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью.
Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте.
13 ноя 08, 09:19    [6432594]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Gendrive

а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью.

Я не думаю, я знаю, что ты именно так и ищешь: сначала по курсору, а потом по дереву (наверное по ключу нода), т.е. дважды ищешь, а я ищу один раз - только по курсору.
Gendrive

Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте.

Поясни, что такое мгновенный поиск и главное, как ты в дереве делаешь так, что искомый NODE будет в том же месте, где у тебя сейчас курсор (на другом ноде)? А если искомый нод в свернутой ветке?
Да ладно.. Я ведь никого не уговариваю. Мы решили в свое время отказаться от дерева как инстумента ВЫБОРА элемента (но не ввода). Если ваши заказчики не жалуются на поиск по дереву, что у них глаза устают от мельтешения дерева, то хорошо, а наши вот заставили нам переделать поиск по "плоскому" гриду.
С уважением, Алексей
13 ноя 08, 09:42    [6432730]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Gendrive
Aleksey-K,

а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью.
Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте.

Так Володя Максимов как раз про это и написал, причем корректно и с павильными выводами в конце. :)
13 ноя 08, 10:54    [6433221]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Валентин Н.Карелин
Member

Откуда: Крым, г.Симферополь
Сообщений: 123
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 ноя 08, 10:58    [6433247]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Валентин Н.Карелин


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 ноя 08, 11:35    [6433521]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Валентин Н.Карелин
Member

Откуда: Крым, г.Симферополь
Сообщений: 123
Aleksey-K
1. Ну насчет того, что работает мгновенно, когда у вас десятки тысяч Node я не уверен, но сам не проверял.

А у меня и нет TreeView на десятки тысяч Node... Вообще-то, это не я утверждал о мгновенности работы в TreeView на десятки тысяч Node. Я как раз выражал озабоченность о скорости построения дерева на 50,000 узлов (посмотрите начало)

Aleksey-K
2. .... А если у вас искомый нод уже на экране, но не выбран, то с какой стати у вас "продернется" дерево, а не просто фокус переведется на этот нод ? Из приведенного кода, во всяком случае, это никак не слудует..

"А если у нас" Node уже на экране, то он только получит фокус...
.EnsureVisible() не передёрнет его. Но EnsureVisible() я вставляю потому что не знаю где этот Node может оказаться. Над экраном (тогда UpScrolling), или под экраном (тогда DownScrolling). Если же он на экране, - передёргивания не происходит.

Я это использыю при добавлении в справочник, - никогда не известно, что взбредёт добавить в голову юзверу. А список может быть значительным, и Node добавляется у меня не в конец ветки, а согласно "купленному билету", т.е. согласно правилам позиционирования по алфавиту. TreeView перепозиционируется (Scroll) на новый Node и юзер сразу видит, что он добавил в дерево, а также какие значения полей он добавил в новом Node...

p.s.: Блин, прямо симпозиум древоведов...
13 ноя 08, 14:07    [6434997]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Валентин Н.Карелин
Member

Откуда: Крым, г.Симферополь
Сообщений: 123
Кстати, господа!

А ведь никто толком не ответил на вопрос Gendrive, с которого и начался весь этот курултай... А ведь человек то спрашивал не о том, хорош ли TreeView, насколько хорош, иль вообще плох... Я думаю он сам это знает лучше нас всех!..

Вопрос то был "Multi columm treeview". Но как и мне лет 5-6 назад никто и не ответил... Тоже ушли в сторону бичевания-восхваления TreeView.

Господа! Знаете ответ о Multi columm treeview - отвечайте, нет - проходите мимо! Мне кажется так правильно...
13 ноя 08, 14:18    [6435130]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
5631
Member

Откуда:
Сообщений: 452
Валентин Н.Карелин
p.s.: Блин, прямо симпозиум древоведов...


Давно научно доказано, что во время споров в Интернете:

-никто не читает полностью сообщения других участников спора
-каждый слышит только свою точку зрения
-не одна из точек зрения никогда не побеждает
-все в конечном итоге заканчивается взаимными оскорблениями.

Поэтому Владимир Максимов правильно сделал, перейдя сразу
к последнему пункту и закончив спор.

Картинка с другого сайта.
13 ноя 08, 14:26    [6435222]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Beresnev
Member

Откуда:
Сообщений: 74
Я использую ctTree 6.0 от DBI Technologies Inc.
13 ноя 08, 19:33    [6437783]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
Aleksey-K

Я не думаю, я знаю, что ты именно так и ищешь: сначала по курсору, а потом по дереву (наверное по ключу нода), т.е. дважды ищешь, а я ищу один раз - только по курсору.


Алексей, все дело в том, что в тривью искать НЕ НАДО. Если ты знаешь ключ узла, который как раз находится в курсоре в котором осуществляется поиск, то переход к этому узлу делается мгновенно. Делаешь на этот узел селект и ensurevisible и все. При заполненном дереве это работает очень быстро.
14 ноя 08, 05:11    [6438612]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
Aleksey-K

1. Ну насчет того, что работает мгновенно, когда у вас десятки тысяч Node я не уверен, но сам не проверял.


Самый длинный процесс в данном случае это заполнение тривью. ПОсле того как оно заполнено, переход по узлам осуществляется очень быстро, даже при большом количестве узлов.

Aleksey-K

2. И вы хотите сказать, что визуально искомый нод будет на том месте экрана, где у вас курсор при поиске? Что-то не очень верится. А если у вас искомый нод уже на экране, но не выбран, то с какой стати у вас "продернется" дерево, а не просто фокус переведется на этот нод ?
Из приведенного кода, во всяком случае, это никак не слудует.


Здесь не все так просто, на самом деле. Узел МОЖЕТ оказаться не на том самом месте, где был курсор на предыдущем узле. НО это достаточно просто решается, насколько я помню. Я просто не заморачивался этим, но думаю вопрос нескольких строчек кода в классе.
14 ноя 08, 05:16    [6438613]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
Beresnev
Я использую ctTree 6.0 от DBI Technologies Inc.


Купленный?
14 ноя 08, 08:58    [6438804]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Gendrive

Я все-таки дополню, но не по поводу дерева, а по способу ведения дискуссии.

Прежде чем отвечать на отдельное предложение прочитай ВСЕ сообщение. Возможно, ты все-таки увидишь разъяснение смысла чуть ниже.

Посмотри на ту "лапшу", что ты нарезал на мой последний ответ. Практически на каждое твое замечание идет опровержение в следующем моем предложении и ты вынужден разворачиваться на 180 градусов. Это еще в том случае, если ты отвечаешь "в тему". Но зачастую, ты отвечаешь "мимо" (не по теме), даже на выдернутые из контекста предложения.

Собственно, ты просто не захотел понять смысл моего ответа. Впрочем, Aleksey-K на примерах разъяснил то, что я сказал, а ты не захотел понять.

Вопрос ведь вовсе не в том, как сделать то или другое программно. Вопрос в том, как это воспринимает пользователь. Насколько он способен удобно и быстро работать.

И еще, постарайся не делать скоропалительных выводов о том что другие смогли или не смогли.
14 ноя 08, 19:10    [6443502]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Parnisha
Guest
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо)
1 дек 08, 15:29    [6509560]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
Parnisha
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо)

Кстати, да. На милионниках часто становится критичным то, что у тебя в памяти болтаются данные как в TreeView, так и в курсоре. Причем, если в TreeView за свопинг отвечает только операционка, то фокс еще и сам пытается буферизировать на диск. Полный бардак и неизлечимый тормоз получается.
2 дек 08, 05:53    [6511735]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
CcRaZzY
Member

Откуда: Одинцово
Сообщений: 2450
Parnisha
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо)


И вот послышался лай Моськи на слона ))

Имейте хотя бы мужество писать подобные посты от своего имени.
2 дек 08, 11:08    [6512509]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1273
хоть я уже и не пишу на фоксе
тоже придерживаюьс точки зрения что деревья это усложнение
так как минимум требуется регистрация ocx на ПК юзеров что может быть не доступно
по каким то причинам
по крайне мере для работы операцианистов -
зы возможно моя аудитаория юзеров (типа кладовщик) была такой что я даже и не пытался
к тому же в гриде у меня поиск был по любому текущему полю а в три может и можно как то но я не уверен
хотя вообще это делов вкуса и фреймворка

есть 1 момент где я вижу можно заюзать эту идею - типа если отчеты делать для начальства (аналитика) такой примитивный BI там да - деревья по иерерахиям очень удобоны -
чтобы таскать - в многих BI системах собственно так и сделано

а вот ?
я не понял для чего надо то от Multi columm treeview
может скриншот кто приведет инетересно глянуть как он юзается
2 дек 08, 16:55    [6515310]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Parnisha
Guest
CcRaZzY
Parnisha
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо)


И вот послышался лай Моськи на слона ))

Имейте хотя бы мужество писать подобные посты от своего имени.


может тебе ещё и паспортные данные))) я вобщето не месный, и на фоксе никогда не писал)) имейте моск уважаемый, почитайте внимательно посты, подумайте... если не выйдет ещё раз подумайте))) после проводите ассоциации мосек и слонов))

ЗЫ: Просто реальный гон я невыжержал)) некомпетентность с "умным видом" меня просто бесит)
Читайте доки господа) а если речь идёт о чёмто вам вовсе не ясном или немного ясном, или вы так думаете что всё знаете..... но это может быть нетак)))
2 дек 08, 17:31    [6515566]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Parnisha
Guest
Kruchinin Pahan
Parnisha
Вовочка если ты чегото недоганяеш то это не означает что люди мимо говорять)))) TRFM - а не задавай тупые вопросы))) ты бы ещё про скорость доступа к разным ячейкам в ОЗУ где межит дата к гриду или к тривью))))) ну паржал))) аффтар пиши исчо)

Кстати, да. На милионниках часто становится критичным то, что у тебя в памяти болтаются данные как в TreeView, так и в курсоре. Причем, если в TreeView за свопинг отвечает только операционка, то фокс еще и сам пытается буферизировать на диск. Полный бардак и неизлечимый тормоз получается.


ИМХО: Надо менять контролы, чтоб не грузили всю дату с БД сразу... или менять весь енвиропмент)

Удачи)
2 дек 08, 17:36    [6515616]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
fox_vik
Member

Откуда:
Сообщений: 109
Странный диспут. Что-то вроде: что лучше, велосипед или трактор?
Дерево предназначено для отображения структуры. Поэтому, если нужно видеть структуру, лучшего контрола я не знаю. А для операционистов, вводящих большой объем однородной информации даже мышка лишней будет, не говоря уж о дереве.
3 дек 08, 07:05    [6516913]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
Parnisha

ИМХО: Надо менять контролы, чтоб не грузили всю дату с БД сразу... или менять весь енвиропмент)

Вы путаете кислое с длинным. Я не про алгоритм наполнения данными, а про двукратное использование памяти одними и теми же данными.
А логика "что не вижу, то вычищаю", в общем случае, порочна.
3 дек 08, 08:07    [6516975]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
AleksMed
Gendrive
Aleksey-K,

а ты думаешь что я ищу в самом тривью? Зачем я буду это делать, если существует прекрасный и быстрый механизм поиска - фокспро? ПОиск происходит в курсоре потом просто отображается в тривью.
Насчет взгляда - если осуществляется мгновенный поиск по введенным символам, то узел тоже всегда остается на одном месте.

Так Володя Максимов как раз про это и написал, причем корректно и с павильными выводами в конце. :)



Следуя этой логике (то что мол если поиск происходит в курсоре, а отображается в тривью и, на основании этого, тривью плохой) следует отказаться от телевизора. ведь действие происходит не в самом телевизоре, а где-то в другом месте. ПОэтому использование телевизора - порочная практика. надо сидеть в студии.
3 дек 08, 08:23    [6516993]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
ПД
Guest
Гулин Федор,

ну примерно так и выглядит

К сообщению приложен файл. Размер - 0Kb
3 дек 08, 09:04    [6517050]     Ответить | Цитировать Сообщить модератору
 Re: Multi columm treeview (treeview + grid)  [new]
Gendrive
Member

Откуда: Южно-Сахалинск
Сообщений: 30
ПД,

а что это за контрол? можно попользоваться?
3 дек 08, 10:16    [6517355]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / FoxPro, Visual FoxPro Ответить