Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

TreeView и DBGrid   Найти похожие ветки 

 
nN_   (2002-10-18 10:14) [0]

Помогите, пожалуйста!
Никогда не работал с 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-18 10:19) [1]

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


 
Наталия ©   (2002-10-18 10:23) [2]

http://delphi.mastak.ru/cgi-bin/links.pl?get=40


 
nN_   (2002-10-18 11:05) [3]

Искать просто некогда,
может потом и посещу, но сейчас
нужен готовый код.
Пожалуйста, помогите без советов!
Спасибо!


 
ЮЮ ©   (2002-10-18 11:21) [4]

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-ов


 
ЮЮ ©   (2002-10-18 11:37) [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;


 
nN_   (2002-10-18 16:36) [6]

Огромное спасибо ЮЮ!!!


 
nN_   (2002-10-18 17:19) [7]

Попробовал, но не получается. Что это может
быть?


 
nN_   (2002-10-18 21:51) [8]

Еще были попытки - никак.
Возможно, в тексте запроса
нужно указать еще что-то, кроме:

SELECT Tovar,NSbGroup(ключ строкового типа) FROM "tovar.db"
WHERE NSbGroup=:NSbGroup

Пожалуйста!


 
ЮЮ ©   (2002-10-21 03:15) [9]

Тогда попробуй
if Node.Level = 1 then begin
И , вообще, трудно F5 нажать и посмотреть, что делается в конкретной строке кода, почему не получается, отчего не работает ?????



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

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-21842
Slatazan
2002-09-01 05:51
2002.11.07
Single format


1-21679
RTZ
2002-10-28 10:31
2002.11.07
Народ возникли два вопроса по компоненту WebBrowser


6-21719
kofman
2002-09-10 20:41
2002.11.07
Алгоритм поиска в тексте html-страниц банеров


1-21507
CrowD
2002-10-25 18:54
2002.11.07
Как убить String?


1-21569
Vile_denis
2002-10-29 16:48
2002.11.07
!!!! Срочно нужна помощь спецов !!!!