Текущий архив: 2002.06.20;
Скачать: CL | DM;
Вниз
TreeView c БД (master-detail-detail-detail-...) Найти похожие ветки
← →
Darker © (2002-05-14 16:15) [0]Могу конечно сделать и Parent-Child но придется мастырить
Query? и еще много чего...
Во многих компонентах нет возможности вкладывать
в одну строчку значения нескольких полей.
Нууу... типа:
[иконка]|[data][Name][Day].....
|
|--->[Name2]|[Text1]...
| |
| |--->[field1][field2]...
|
|--->[Name2][Text1]...
|
[иконка]|[data][Name][Day].....
...
HELP!!! Пожалуйста кто может помочь, откликнитесь.
← →
Lusha © (2002-05-14 16:24) [1]А собственно чем помочь то, идеей? Ловите... Есть замечательная программулька BDE Administrator. Она позволяет редактировать различное количество "полей" для каждой ветки "дерева" (списка Alias"ов)...
← →
Darker © (2002-05-16 07:17) [2]Ну например в LOTUS`e есть такое дерево.
А BDE тут по моему не причем, к тому же
там в дереве только ОДНО поле показывается,
а ведь я говорил что мне надо несколько.
← →
Lusha © (2002-05-16 09:08) [3]>Darker © (16.05.02 07:17)
Да-а-а, батенька...
Что Вы зациклились на своем LOTUS"е? Я Вам предложил альтернативный (и на мой взгляд, очень красивый) вариант...
там в дереве только ОДНО поле показывается,
а ведь я говорил что мне надо несколько.
Правильно... В дереве одно... А справа - все остальные. Идея ясна?
← →
dimis (2002-05-16 09:29) [4]Люди переходите на ООП. Все делается очень просто
Tobj_type=(type1,type2,type3....);
TmyNode=class
ide:integer;
obj:Tobj_type;
.....
constructor create(Aide:integer;AObj:TObj_type..);
end;
этот класс определяется как кому надо. Смотря какие поля нужно хранить
constructor TmyNode.Create(Aide:integer;AObj:TObj_type....)
begin
ide:=aide;
obj:=Aobj;
end;
а теперь самое основное.Добавляем Node в дерево
var
n:TTreeNode;
begin
n:=TreeView1.Items.AddObject(nil," текст",TmyNode.Create(....));
end;
Вот в принципе все. на элементе дерева висит объект с полями нужными(их может быть много);
Считывание происходит следующим образом
TmyNode(TreeView1.Selexted.Data).ide
TmyNode(TreeView1.Selexted.Data).obj
Поле TmyNode.obj советую оставить в нем можно хранить тип объекта и что при клике на него делать.
Возможны дальнейшие консультации
← →
Lusha © (2002-05-16 10:07) [5]>dimis (16.05.02 09:29)
Прежде чем что либо изображать в коде, необходимо, на мой взгляд, решить, а что, собственно, нужно изобразить... Вот этим, решением вопроса о внешнем виде, мы пока и занимаемся... :)
← →
dimis (2002-05-16 10:39) [6]в любом случае если нужно отображать дерево из бызы данных нужно или самому писать его заполнение или использовать сторонии компоненнты, но нормальных бесплатных я не нашел(может кто знает подскажите)
← →
Lusha © (2002-05-16 10:47) [7]>dimis (16.05.02 10:39)
в любом случае если нужно отображать дерево из бызы данных нужно или самому писать его заполнение или использовать сторонии компоненнты
Полностью с Вами согласен...
но нормальных бесплатных я не нашел(может кто знает подскажите)
TvgDBTreeView из VGLib
Хотя я предпочитаю писать сам... Идея проста - на TTreeItem.Data вешается TBookmarkStr для связи с таблицей и все дела...
← →
Lusha © (2002-05-16 10:52) [8]Sorry, разумеется TTreeNode.Data...
← →
Darker © (2002-05-16 11:39) [9]>>>Lusha © (16.05.02 10:07)
>Правильно... В дереве одно... А справа - все остальные. Идея >ясна?
Дык я же говорю что у меня Master-Detail-Detail т.е. много вложенности, а это можно организовать если будет Parent-Child.
У меня несколько таблиц, а не одна.
>Что Вы зациклились на своем LOTUS"е?
Это не я... это клиент. Так ему ну очччень хочется :0)
>>>dimis (16.05.02 09:29)
А примера у Вас нет? Буду очень рад если на мыло его скините.
← →
Lusha © (2002-05-16 11:55) [10]>Darker © (16.05.02 11:39)
Дык я же говорю что у меня Master-Detail-Detail т.е. много вложенности, а это можно организовать если будет Parent-Child.
У меня несколько таблиц, а не одна.
Вложенность значения не имеет. Количество таблиц тоже... Слева то дерево...
← →
Rothman (2002-05-16 12:26) [11]Готовое решение в библиотеке FirstClass ( http://www.woll2woll.com) - многоколоночное дерево с мастер-деталь-деталь... по веткам, но пакет коммерческий. Ключ я думаю сам найдеш :)
Хорошее решение ElTreeLite ( http://www.eldos.org) - тоже многоколоночное дерево с большими возможностями с огромным количеством настроек и событий, но привязывать его к датасету придется самому. FreeWare c исходниками.
Вроде бы есть решение в QuantumGrid, но не уверен. Тоже коммерческий пакет.
← →
Darker © (2002-05-16 14:28) [12]>Rothman (16.05.02 12:26)
Сенькс.
Да в QuantumGrid есть похожее, но мне пришлось все данные
загонять в один "Запрос" и далее в "гриде" делать группировку
т.о. это выглядит как "TreeGrid" :)
← →
vchris (2002-05-16 14:43) [13]Я делал это следующим образом. К таблице с данными добавляется таблица описывающая положение узла в TreeView с полями Id (уникальное общее с табл. данных),Level(думаю это понятно),ParentIndex, Index (соответствует свойству .Item.Index), HasChildren. Основная трудность прописать процедуры удаления узлов и drag-drop. Узел содержит объект свойства которого совокупность полей записи нескольких подчиненных таблиц.
← →
Flipper_ (2002-05-28 06:52) [14]Для Root - "select id,name from s_Types", и заполняешь Root
При раскрытии ноды - Format("select id,name,data1,data2 from s_SubTupes where type=%d",[Integer(tv1.Selected.Data)]);
И так далее. Давно уже так делаю, т.к. все деревья с доступом к БД что я видел - были жутко тормозные и неудобные - нужна какая-нибудь мелочь, типа отображения двух полей сразу, и ничего не сделаешь..
А еще - усиленно рекомендую всем работающим с деревьями TVirtualTree by Micke Lischke. Ручками чуть больше надо поработать, но и результат отличный. И оно БЫСТРЕЕ стандартного.
← →
Кулюкин Олег © (2002-05-28 09:16) [15]2 Darker © (14.05.02 16:15)
Если правильно понял, Вам нужен иерархический грид как в Outlook Express для конференций?
Готового бесплатного компонента я не нашел, поэтому сначала написал такой на основе DrawGrid, а потом на основе TTreeView.
Все отрисовывается ручками.
Пример ручной отрисовки дерева в папке Demo\CustomDraw.
Работы там на один-два дня.
Удачи!
Страницы: 1 вся ветка
Текущий архив: 2002.06.20;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.012 c