Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.02.2011, 17:17
Аватар для PerfectEnemyII
PerfectEnemyII PerfectEnemyII вне форума
Прохожий
 
Регистрация: 31.01.2011
Сообщения: 4
Репутация: 10
По умолчанию Выборка в DBGrid по выбору узла в TreeView

Добрый день!
Опишу свою задачку. Есть две таблицы в MS SQL Оборудование (id_ob, name_ob,otdel) и Отделы (id_ot, otdel_name). Связь id_ot-otdel. (что-то вроде какое оборудование в каком отделе). На форме есть TreeView, в который загружаются данные из таблицы Отделы и Сотрудники.(см.рис). Так же есть DGGrid, в котором отображены все записи из таблицы оборудование.
Хочу сделать следующее: при выборе в TreeView отдела в DBGrid должно отображаться оборудование, которое есть в данном отделе. (вроде задачка-то простая, но я никак не соображу как ее сделать )

рис.отделы&сотруднки.jpg
Ответить с цитированием
  #2  
Старый 07.02.2011, 12:53
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

фильтровать набор данных на который ссылается DBGRID, при клике или смене узла в дереве.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 10.02.2011, 18:37
Аватар для PerfectEnemyII
PerfectEnemyII PerfectEnemyII вне форума
Прохожий
 
Регистрация: 31.01.2011
Сообщения: 4
Репутация: 10
По умолчанию

ммм...спасибо! попробую разобраться с этим
Ответить с цитированием
  #4  
Старый 09.04.2011, 18:39
dunasha dunasha вне форума
Прохожий
 
Регистрация: 20.03.2011
Сообщения: 6
Репутация: 10
По умолчанию

А можете примером(кодом) показать, меня тоже интересует такой вопрос, но вообще не знаю как делать!!
Ответить с цитированием
  #5  
Старый 09.04.2011, 20:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от dunasha
А можете примером(кодом) показать, меня тоже интересует такой вопрос, но вообще не знаю как делать!!

Общая стратегия такая.
При загрузке TTreeView где-нить в узлах (Node.Data, например) сохраняем соотв. ID'ы. Далее 2 варианта.
1. При клике на узле просто переоткрываем параметризованный запрос. Значение параметра берем из сохраненного ID'а.
2. На источнике данных делаем фильтрацию в событии OnFilterRecord, в котором собственно по сохраненному ID'у и отбираем записи.
Второй вариант оптимален, если список, в данном случае оборудования, не очень большой.
Ответить с цитированием
  #6  
Старый 10.04.2011, 13:33
dunasha dunasha вне форума
Прохожий
 
Регистрация: 20.03.2011
Сообщения: 6
Репутация: 10
По умолчанию

Не очень то поняла, в какой процедуре и как писать?
Я Treeview заполняю из БД :
Код:
Query7.Open;
for i:=0 to Query7.RecordCount-1 do begin
  str:=Query7.FieldByName('Num').AsString+'-'+Query7.FieldByName('Spec').AsString;
  TreeView1.Items.Add(nil, str);
  if i<Query7.RecordCount-1 then Query7.Next;
end;
Query7.Close;

Query6.Open;
for i:=0 to Query6.RecordCount-1 do begin
  str:=Query6.FieldByName('Num').AsString+'-'+Query6.FieldByName('Spec').AsString;
  //-----
   For j:=0 to TreeView1.Items.Count-1 do begin
     if (TreeView1.Items.Item[j].Text = str) then begin
      item:=j;
      break;
     end;
  end;
 TreeView1.Items.AddChild(TreeView1.Items.Item[item],Query6.FieldByName('Name').AsString);
  //-------
  if i<Query6.RecordCount-1 then Query6.Next;
end;
Query6.Close;
еще дополнительно при клике на Treeview мне нужно еще из ComboBox1 выбрать дата поступления
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:='SELECT Stud_fam FROM stud WHERE GodPostup='+QuotedStr(ComboBox1.Text);
Query1.Open;
end;
Админ: Учимся пользоваться тегами для офрмления кода!

и в итоге в DbGrid должен выйти список соответсвующий этим двум параметрам Id_group и GodPostup. Сортировка по году у меня выходит а вот чтобы и выбор и группы из дерева не получается т.к. я не знаю как это сделать.
Помогите пожалуйста!

Последний раз редактировалось Admin, 10.04.2011 в 16:05.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:51.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter