![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView и базы данных [D7, MSSQL]
Scald © (2003-09-24 08:42:00)
Добрый день! Помогите новичку разобраться с построением дерева баз данных в TreeView. Имеется таблица dict_description (id, tab_description, nm_description, comments) и туча таблиц от Klass01 до Klass150 (id, parent, nm, comments).Нужно представить их в виде дерева. Если можно, то приведите код, теоритически я принцип построения понимаю, а вот с кодом пока трудности. Заранее спасибо!
stud (2003-09-26 14:58:00) [1]
ну можно использовать пакет от Developer Express -
ExpressQuantumGrid Suite
официальную демку можно скачать на ихнем сайте а неофициальную .....
Scald (2003-09-26 14:55:00) [2]
Если можете, то подскажите где их можно скачать? Спасибо.
stud (2003-09-25 09:26:00) [3]
кроме того есть же готовые компоненты для отображения древовидных структур..
ЮЮ (2003-09-25 03:22:00) [4]
adqKl_05.ParamByName("Parent").AsInteger:=id;
!!!!Ошибка Undeclared identifier: "ParamByName"
если adqKl_05 типа TADOQuery, то не трудно (с помошью F1) убедиться, что у него действительно нет св-ва/метода ParamByName( о чём и сообщается в ошибке), но есть св-во Parameters, а вот у него уже есть метод ParamByName
adqKl_05. Parameters.ParamByName("Parent").AsInteger := id;
dtm (2003-09-24 11:37:00) [5]
Так я не понимаю - в чём проблема? В написании кода для построения дерева из N-го количества связанных таблиц?
Какое у тебя количество записей в таблицах? Если очень большое, то лучше, наверное, сгружать в TreeView не все, а только те, что видны должны быть.
Если не много, то сгружай все - сначала и первой таблицы считываешь данные и добавляешь в ТриВью, потом из второй таблицы достаёшь данные и рассовываешь "дитями" к тем узлам, что уже есть. Для этого надо хранить в каждом узле ID записи или что-то вроде того.
Плохиш_ (2003-09-24 10:38:00) [6]
>Scald (24.09.03 10:29) [5]
И что?
F1 нажимать не пробовал?
Scald (2003-09-24 10:29:00) [7]
procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
var id, i:integer;
TreeNode:TTreeNode;
begin
if Node=nil then id:=0
else id:=Integer(Node.Data);
adqKl_05.Close;
adqKl_05.ParamByName("Parent").AsInteger:=id;!!!!Ошибка
Undeclared identifier: "ParamByName"
adqKl_05.Open;
TreeView1.Items.BeginUpdate;
for i:=1 to adqKl_05.RecordCount do
begin
TreeNode:=TreeView1.Items.AddChildObject(Node, adqKl_05.FieldByName("nm").AsString, Pointer(adqKl_05.FieldByName("id").AsInteger));
TreeNode.ImageIndex:=1;
TreeNode.SelectedIndex:=2;
TreeView1.Items.AddChildObject(TreeNode, "", nil);
adqKl_05.Next;
end;
TreeView1.Items.EndUpdate;
end;
ЮЮ (2003-09-24 09:39:00) [8]
>Если можно, то приведите код, теоритически я принцип построения понимаю, а вот с кодом пока трудности
Почему всем кажется, что писать код, не имея структур, просто?
Попытайся свои теоритически принципы превращать в код, а сталкнувшись с конкретными проблемами, добро пожаловать в Форум!!!
Scald (2003-09-24 09:30:00) [9]
Не моя вина в том, таблицы уже появились за долго до меня, и начальству требуется их представить в таком виде, sorry!
ЮЮ (2003-09-24 08:54:00) [10]
Сначала создали тучу таблиц, не желая держать однотипные данные в одной таблице, а теперь возникло желание слить в кучу в одном дереве? Надо быть последовательным! :-)
Armaniak (2003-09-24 08:52:00) [11]
Попробуй глянь сюда
http://www.delphikingdom.com/helloworld/dbtreeview.htm