Главная страница
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.018 c
1-21564
BofA
2002-10-29 20:37
2002.11.07
Передача локальной процедуры в функцию в качестве параметра


14-21783
Igorenia
2002-10-18 00:25
2002.11.07
необходимо написать развитый help, на подобии тех, которые присут


1-21489
STANT
2002-10-28 18:07
2002.11.07
Очень сложный вопрос...


1-21627
-Alex-
2002-10-26 17:10
2002.11.07
Перехват второй копии и запуск функции.


4-21848
raiks
2002-09-24 15:59
2002.11.07
Сообщение EM_LINESCROLL прокручивает текст в TMemo только вниз