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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2011, 18:04
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
Вопрос Фильрация данных в таблице при помощи TreeView

Всем привет. У меня вопрос можно ли осуществить фильтрацию данный в таблице базы Access с помощью TreeView? Ели да то как?

Последний раз редактировалось Amilman, 13.10.2011 в 18:12.
Ответить с цитированием
  #2  
Старый 13.10.2011, 20:18
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Если я правильно понял, вы хотите в TreeView вывести имена полей из таблицы и для любого из этих полей задать ограничение?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 13.10.2011, 20:26
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Лучше через запрос все делать, при нажатии на колонку выполнить запрос с order by.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 14.10.2011, 06:32
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

Ну вот в древе у меня есть к примеру записи Водитель,Продавец,Кассир при нажатии на Водителя мне надо чтобы в Grid остались записи только водителей.
Ответить с цитированием
  #5  
Старый 14.10.2011, 09:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тут надо знать как организована база.
Если в соответсвии с НФ3, то это будет выглядеть как-то так:

1. Таблица справочника должностей:
Код:
ID | Position
---|-------------
1  | Водитель
2  | Кассир
...


2. Основная таблица, например, список сотрудников:
Код:
ID | Position_ID | FIO          
---+-------------+------------------
1  | 1           | Иванов Иван Иванович
2  | 1           | Пертов Петр Петрович
...

тогда нам надо:
1. Вывести в TreeView все записи из табл. Position. Значение поля ID можно "положить" в свойство Data узлов.
2. При выделении узла (OnChange, если не ошибаюсь) надо сформировать новый запрос к основной таблице с соотв. Код будет примерно такой:
Код:
ADOQuery1.Close;
ADOQuery.SQL.Text := 'SELECT * FROM Emloyee WHERE Position_ID =' + 
                                   IntToStr(Integer(TreeView1.Selected.Data));
ADOQuery1.Open;

Есть возможность сразу получить весь список и фильтровать его динамически на стороне клиента в событии OnFilter компонента доступа к данным. Но данный фокус можно использовать только в случае, когда выборка из основной таблицы ГАРАНТИРОВАННО небольшая и редко меняющаяся (например, список сотрудников в отделе кадров, если это список свободных сотрудников, то уже есть ограничения).

Последний раз редактировалось lmikle, 14.10.2011 в 09:10.
Ответить с цитированием
  #6  
Старый 17.10.2011, 18:49
Аватар для Amilman
Amilman Amilman вне форума
Новичок
 
Регистрация: 27.03.2011
Адрес: г.Кемерово
Сообщения: 98
Версия Delphi: XE
Репутация: 10
По умолчанию

Фильтрация неполучается. Использую событие TreeView1Change :
Код:
   DataModule1.ADOQuery1.Close;
   DataModule1.ADOQuery1.SQL.Text :=
    'SELECT * FROM Работники WHERE Подразделение' +
    string(Integer(TreeView1.Selected.Data));

Но при запуске программы и при выборе записи в TreeView ничего не происходит.

P.S Дерево в TreeView заполняется из txt файла.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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