Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

На Королевстве есть хорошая статья по этому вопросу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо