![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView и DBGrid [D5, Paradox]
nN_ © (2002-10-18 10:14:00)Помогите, пожалуйста!
Никогда не работал с TreeView, а тут нужно до зарезу.
Итак, есть 3 запроса:
1. Query1 – группа товара
2. Query2 - подгруппа товара
3. Query3 – сам товар.
Заполняю TreeView группами и подгруппами,
А вот товар хочу отображать в DBGride.
Вопрос, как увязать Query1,Query2 через TreeView c
Query3, отображаемом в DBGrid.
Вот текст, кто поможет вставить нужное?
Благодарен всем, кто откликнется!!!
procedure Tfm_trpice.FormCreate(Sender: TObject);
begin
Query1.First;
while not Query1.Eof do
begin
MyNode:=TreeView1.Items.Add(NIL,Query1.FieldByName ("NGroup").Value);
Query2.Close;
Query2.ParamByName("NGroup").AsString:=Query1.FieldByName("NGroup").Value;
Query2.Open;
Query2.First;
while not Query2.Eof do
begin
TreeView1.Items.AddChild(MyNode,Query2.FieldByName("NSbGroup").Value);
Query2.Next;
end;
Query1.Next;
end;
end;
ЮЮ (2002-10-21 03:15:00) [1]Тогда попробуй
if Node.Level = 1then begin
И , вообще, трудно F5 нажать и посмотреть, что делается в конкретной строке кода, почему не получается, отчего не работает ?????
nN_ (2002-10-18 21:51:00) [2]Еще были попытки - никак.
Возможно, в тексте запроса
нужно указать еще что-то, кроме:
SELECT Tovar,NSbGroup(ключ строкового типа) FROM "tovar.db"
WHERE NSbGroup=:NSbGroup
Пожалуйста!
nN_ (2002-10-18 17:19:00) [3]Попробовал, но не получается. Что это может
быть?
nN_ (2002-10-18 16:36:00) [4]Огромное спасибо ЮЮ!!!
ЮЮ (2002-10-18 11:37:00) [5]Не обратил внимание, что название группы товара (текстовое) и является ключом в таблице подгруппы. Если также дела обстоят и в таблице Товаров :-), то ещё проще. Твой код остаётся прежним.
procedure Tfm_trpiceTreeView1Change(Sender: TObject; Node: TTreeNode);
// обработчик TreeView1.onChange
Query3.Close;
if Node.Level = 2 then begin
Query3.Params[0].Value := Integer(Node.Parent.Text);
Query3.Open;
end;
end;
ЮЮ (2002-10-18 11:21:00) [6]procedure Tfm_trpiceTreeView1Change(Sender: TObject; Node: TTreeNode);
// обработчик TreeView1.onChange
Query3.Close;
if Node.Level = 2 then begin
Query3.Params[0].Value := Integer(Node.Parent.Data);
Query3.Params[1].Value := Integer(Node.Data);
Query3.Open
end;
end;
Соответсвенно,
MyNode:=TreeView1.Items.Add Object(NIL,Query1.FieldByName ("NGroup").Value ,Pointer(Query1.FieldByName (<ключевое поле>).asInteger));
Аналогично для Child-ов
nN_ (2002-10-18 11:05:00) [7]Искать просто некогда,
может потом и посещу, но сейчас
нужен готовый код.
Пожалуйста, помогите без советов!
Спасибо!
Наталия (2002-10-18 10:23:00) [8]http://delphi.mastak.ru/cgi-bin/links.pl?get=40
Наталия (2002-10-18 10:19:00) [9]На Королевстве есть хорошая статья по этому вопросу.