Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

Как отобразить дерево в DbGridEh?   Найти похожие ветки 

 
Mishenka   (2006-09-19 14:50) [0]

Есть в таблица, в которой записи может соответствовать другая запись из той же таблицы (что-то типа дерева). Как сделать отображение всего этого в DBGridEh (из EHLib) как в проводнике, тобишь жмёшь на крестик слева и открывается список дочерних записей и т.д. ?


 
Sergey13 ©   (2006-09-19 15:09) [1]

> [0] Mishenka   (19.09.06 14:50)

А ЕхЛиб может дерево отображать?


 
ANB ©   (2006-09-19 15:12) [2]


> Mishenka   (19.09.06 14:50)

Поставь DevExpress. Он умеет нечто подобное.


 
sniknik ©   (2006-09-19 15:14) [3]

какая разница может или нет? не об этом же спрашивали. ты давай отвечай как отображать!... ;)


 
sniknik ©   (2006-09-19 15:14) [4]

а вот про DevExpress не спрашивали.


 
Mishenka   (2006-09-19 15:16) [5]

А что такое DevExpress и где его взять?


 
ANB ©   (2006-09-19 15:18) [6]


> ты давай отвечай как отображать!... ;)

Значится, перехватываешь отрисовку грида. Заставляешь рисоваться слева крестик. Перехватываешь обработку событий мыши (достаточно клика), ловишь момент нажатия на крестик. По этому нажатию лезешь в БД, достаешь список дочерних элементов и заставляешь грид рисовать их.
Примерно так.


 
ANB ©   (2006-09-19 15:19) [7]


>  что такое DevExpress

Библиотека компонентов. Мне не нравится.


> где его взять?

Можно у них на сайте. Полный комплект стоит не так уж дорого.


 
ANB ©   (2006-09-19 15:19) [8]

Если денег жалко - то лучше задействовать TTreeView


 
без ника   (2006-09-19 16:27) [9]

В EhLib от 4 версии и выше появилась возможность отображать дерево. Пример есть в комплекте поставки.


 
atruhin ©   (2006-09-20 12:38) [10]

> [9] без ника   (19.09.06 16:27)

ДА. Все умеет. Подробная документация.

> [8] ANB ©   (19.09.06 15:19)
> Если денег жалко - то лучше задействовать TTreeView

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


 
Mishenka   (2006-09-21 10:29) [11]

А кто-нибудь пробовал это на практике? А то я настроил всё как в мануале написано, а грид дерево всё равно неотображает ...


 
Johnmen ©   (2006-09-21 10:44) [12]


> без ника   (19.09.06 16:27) [9]
> В EhLib от 4 версии и выше появилась возможность отображать
> дерево. Пример есть в комплекте поставки.


Поподробней, пожалуйста, где и как.


 
alex_*** ©   (2006-09-21 10:46) [13]

а не проще для отображения дерева использовать дерево? то бишь TreeView?


 
zdm ©   (2006-09-21 10:47) [14]

классика, создаешь табличку
ID integer(уникальный идентификатор)
PID integer (кто будет родителем)
NAME string (ну и соотвсетсвенно название)
...
можно добавить еще поле
TREE (это удобно, допустим когда встаешь на ветку которая имеет вложения и хочешь отобразить все содержимое, это, типа 1.,1.1 и т.д. и на событие, например, онклик тривью, select from таблица where TREE LIKE 1.%)
..
А вообще есть компоненты, например JV, очень удобно, весь RXLib + свои.
..
И почитай статью, ну например  
http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=488


 
zdm ©   (2006-09-21 10:48) [15]

ой извини, http://www.soft32.ru/delphi.shtml?topic=comps&title=dbtreeview


 
zdm ©   (2006-09-21 10:57) [16]

Нет компонента "ДЕРЕВО" для всех случаев, поэтому только - классический TreeView, и изголяйся с ним как хочешь :)


 
Ega23 ©   (2006-09-21 11:33) [17]

Я писал свой TDBTreeView, но он узкоспециализирован. Заточен под конкретную задачу. Исходники могу выслать, мне не жалко.


 
dr Gonzo   (2006-09-21 11:54) [18]

2 Johnmen ©

По поводу как отображает Tree EhLib:

описание с сайта :
 ....
 DBGridEh show the hierarchical structure of records in TMemTableEh.
 ....

Вид:

http://ehlib.com/IMAGES/dbgridehform14.gif

Доп-я информация:

http://ehlib.com/dbgrideh1.htm


 
atruhin ©   (2006-09-21 12:23) [19]

> Поподробней, пожалуйста, где и как.

Да некуда там подробнее то. По шагам разжевано.


 
Johnmen ©   (2006-09-21 12:45) [20]


> dr Gonzo   (21.09.06 11:54) [18]


Благодарю.
Лично я не знал, ибо не пользовался TMemTableEh.


 
Rule ©   (2006-09-21 14:18) [21]

ухты сам не знал, присоединяюсь к благодарностям


 
Mishenka   (2006-09-27 09:53) [22]

Вроде всё сделал и вроде заработало. Решил создать индексы, как указано в доке. После этого в момент выполнения MemTableEh.Open вылезает ошибка "TMTIndexEh.FindKeyValueIndex: values is not comparable". Может кто-нибудь пробовал создавать индексы в MemTableEh, с чем это может быть связано?


 
atruhin ©   (2006-09-27 14:31) [23]

А значений NULL в поле нету?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.036 c
4-1152362885
Пашка
2006-07-08 16:48
2006.11.26
Как можно определить содержимое ListBox чужого процесса


1-1160739074
Vladix
2006-10-13 15:31
2006.11.26
При максимизации MDI нужно чтобы оно оставалось в виде окна


4-1152920860
Ayvan
2006-07-15 03:47
2006.11.26
enabled or not?


15-1162964751
DelphiN!
2006-11-08 08:45
2006.11.26
Ктонибудь видел как машина катиться в горку?


15-1162842979
XuMuK
2006-11-06 22:56
2006.11.26
Кино на первом "Телефонная будка"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский