Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2012, 21:45   #1
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию Treview и БД (ADO+Access+Delphi)

Ребята, подскажите, пожалуйста! Есть одна таблица с полями № (счетчик), отдел, сотрудник и еще множество полей. Как вывести значения полей отдел и сотрудник в виде дерева? Т.е. чтобы раскрывался отдел и отображались сотрудники именно этого отдела. С помощью компонентов DevExpress, например, можно быстро решить эту задачу? Без создания доп. таблиц. Просто с деревьями не работал. Очень надеюсь на помощь.
Delphi_developer вне форума Ответить с цитированием
Старый 18.12.2012, 08:30   #2
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию

Никто не в курсе?
Delphi_developer вне форума Ответить с цитированием
Старый 18.12.2012, 09:35   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Во-первых, таблицу "Отдел" лучше выделить отдельно и кинуть ссылку на нее в "Сотрудников". Тогда Все отделы пихаешь в корень дерева, а сотрудников получаешь запросом и делаешь AddChild к конкретному отделу. Как-то так:

Код:
var Otd: TTreeNode;

begin
  TOtdel.First;
  While not TOtdel.Eof do begin
    Otd:=TreeView.Add(TOtdel.FieldByName('NAME').AsString,nil);
    QSotr.Close;
    QSotr.SQL.Text:='select * from sotr where id_otdel='+TOtdel.FieldByName('ID).AsString;
    QSotr.Open;
    QSotr.First;
    While not QSotr.Eof do begin
      TreeView.AddChild(QSotr.FieldByName('NAME').AsString,Otd);
      QSotr.Next;
    end;
    TOtdel.Next;
  end;
  qSotr.Close;
end;
Синтаксис процедур TreeView не помню, поэтому разбирайтесь на месте
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 18.12.2012, 12:35   #4
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию

Спасибо за поддержку!
Delphi_developer вне форума Ответить с цитированием
Старый 18.12.2012, 13:15   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Еще вариант - в текущую таблицу добавить поле ID_PARENT. Для элементов корня дерева ID_PARENT=0, для остальных - ID родителя. Принцип заполнения аналогичен вышеприведенному, только используются два запроса (или два фильтра) к одной таблице.
В принципе, по этой системе можно организовать организацию данных как в 1С, где есть группы, подгруппы и собственно элементы этих групп - дерево любой степени вложенности, какую позволяют техсредства, собственная фантазия или требования заказчика.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 18.12.2012 в 13:17.
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi+ADO+Access qwert90 Помощь студентам 0 13.06.2011 15:46
Delphi + ADO + Access Vanta11a Помощь студентам 2 06.09.2010 21:54
access+delphi+ado aid_013 БД в Delphi 2 10.07.2010 09:28
Delphi+Ado+Access kmvteam БД в Delphi 26 09.07.2010 02:08
Delphi+ADO+Access Turpa Помощь студентам 12 15.10.2007 23:29