06.07.2020, 20:00 [+3 UTC]
в нашей команде: 4 660 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
06.07.2020, 10:40

Последний вопрос:
05.07.2020, 22:37
Всего: 152719

Последний ответ:
05.07.2020, 20:59
Всего: 260321

Последняя рассылка:
06.07.2020, 19:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
22.12.2015, 08:12 »
Xgrows
Спасибо! Все понятно. Нет, не претензии писать пока рано. У застройщика по договору срок сдачи дома через пол года еще только заканчивается. Мне наоборот нужно успеть за это время получить справку об отсутствии собственной недвижимости. [вопрос № 188448, ответ № 273104]
21.01.2012, 16:39 »
Владимир
Короткий, быстрый и полный ответ. [вопрос № 185241, ответ № 269665]
09.08.2012, 22:41 »
Joker888
Спасибо за помощь! [вопрос № 186512, ответ № 271399]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 318
puporev
Статус: Профессор
Рейтинг: 73
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 188620
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: arujan.nurlankul23 (Посетитель)
Отправлена: 09.01.2016, 09:26
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:
у меня в программе есть радиогрупп. И через него осуществляется фильтрация.
procedure TForm5.SpeedButton5Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0: datamodule24.posmotr.Filter := 'ФИО';
1: datamodule24.posmotr.Filter := 'ИИН';
2: datamodule24.posmotr.Filter := 'тЕЛЕФОН';
3: datamodule24.posmotr.Filter := 'Адрес';

Но при введении значении в едит там фильтрация не осуществляется. Там нужно точь в точь указать ФИо или ИИН. А мне нужно чтобы при введении любых значении в едит соответствующий выбранной категории в радиогруп только отфильтрованныеданные отображались в таблице. Можно и без баттона обойтись.
Спасибо

Состояние: Консультация закрыта

Ответ # 273209 от Евгений/Genia007/ (Профессионал)

Здравствуйте, arujan.nurlankul23!
Предлагаю такой способ, при помощи запроса, по мере введения очередного символа будет сокращаться список значений поиска. В событие edit пишем:

procedure TForm1.Edit1Change(Sender: TObject);
var id: string;
begin
 case RadioGroup2.ItemIndex of  // где id будет строка с названием поля по которому идёт поиск
  0: id := 'ФИО';
  1: id := 'ИИН';
  2: id := 'тЕЛЕФОН';
  3: id := 'Адрес';
 end;
 ADOQuery2.Close; // Закрыть запрос
 ADOQuery2.SQL.Clear; // Отчистить запрос
 ADOQuery2.SQL.Add('select DISTINCT '+id+' from table_name'); // 'table_name' название нужной таблицы
 ADOQuery2.SQL.Add(' where '+id+'>=par and '+id+' like '''+edit1.Text+'%''ORDER  BY '+id+'');  // Добавление новых значений в запрос 
 ADOQuery2.Parameters.Clear;
 ADOQuery2.parameters.addParameter.name:='par';
 ADOQuery2.Parameters.ParamByName('par').DataType:= ftString;
 ADOQuery2.Parameters.ParamByName('par').Attributes:= [paNullable];
 ADOQuery2.Parameters.ParamByName('par').Value:= edit1.Text;  //  как раз вводимое значение в поле edit
 ADOQuery2.Open; // Открыть запрос
end;


Консультировал: Евгений/Genia007/ (Профессионал)
Дата отправки: 09.01.2016, 12:51

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 188620
arujan.nurlankul23
Посетитель

ID: 399390

# 1

= общий = | 09.01.2016, 09:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

smile smile smile smile smile smile smile smile smile

Евгений/Genia007/
Профессионал

ID: 153662

# 2

= общий = | 09.01.2016, 10:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
arujan.nurlankul23:

Здравствуйте. Можно при помощи запроса сделать поиск по введённым буквам, причём с каждой новой буквой список будет уменьшаться.

ADOQuery2.Close; // Закрыть запрос 
ADOQuery2.SQL.Clear; // Отчистить запрос
ADOQuery2.SQL.Add('select DISTINCT seans from zur ');  // 'seans' название нужного поля по которому идёт поиск, 'zur' название нужной таблицы
ADOQuery2.SQL.Add('where seans>=sen and seans like '''+c+'%''ORDER  BY seans');  // Добавление новых значений в запрос
ADOQuery2.Parameters.ParamByName('sen').Value:= c;  // 'с' как раз вводимое значение в поле edit 
ADOQuery2.Open; // Открыть запрос

-----
Последнее редактирование 09.01.2016, 10:27 Евгений/Genia007/ (Профессионал)

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

arujan.nurlankul23
Посетитель

ID: 399390

# 3

= общий = | 09.01.2016, 10:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

а с радиогрупп
у меня там разные параметры
например кто-то может делать поиск с помощью фио
а кто-то иин
smile

Евгений/Genia007/
Профессионал

ID: 153662

# 4

= общий = | 09.01.2016, 10:43 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
arujan.nurlankul23:

А что прячется в datamodule24.posmotr.Filter под posmotr? А в радиогруп выбираем

case RadioGroup2.ItemIndex of
0: seans := 'ФИО';
1: seans := 'ИИН';
2: seans := 'тЕЛЕФОН';
3: seans := 'Адрес';
то есть по радиогрупп выбираем название поля по которому будем искать, ну и строку
ADOQuery2.SQL.Add('select DISTINCT seans from zur ');  // 'seans' название нужного поля по которому идёт поиск, 'zur' название нужной таблицы
ADOQuery2.SQL.Add('where seans>=sen and seans like '''+c+'%''ORDER  BY seans');  // Добавление новых значений в запрос
изменить на
ADOQuery2.SQL.Add('select DISTINCT '+seans+' from zur ');  // 'seans' название нужного поля по которому идёт поиск, 'zur' название нужной таблицы
ADOQuery2.SQL.Add('where '+seans+'>=sen and seans like '''+c+'%''ORDER  BY '+seans+'');  // Добавление новых значений в запрос

-----
Последнее редактирование 09.01.2016, 12:22 Евгений/Genia007/ (Профессионал)

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

arujan.nurlankul23
Посетитель

ID: 399390

# 5

= общий = | 09.01.2016, 10:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

а куда этот код писать в событие едит или баттон

arujan.nurlankul23
Посетитель

ID: 399390

# 6

= общий = | 09.01.2016, 10:46 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

seans это что

Евгений/Genia007/
Профессионал

ID: 153662

# 7

= общий = | 09.01.2016, 10:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: arujan.nurlankul23
а куда этот код писать в событие едит или баттон
   case RadioGroup2.ItemIndex of
    0: seans := 'ФИО';
    1: seans := 'ИИН';
    2: seans := 'тЕЛЕФОН';
    3: seans := 'Адрес';
пишем в баттон, а остальное в едит, seans это переменная типа строка.

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

arujan.nurlankul23
Посетитель

ID: 399390

# 8

= общий = | 09.01.2016, 11:00 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

СПАСИБО

Евгений/Genia007/
Профессионал

ID: 153662

# 9

= общий = | 09.01.2016, 11:05 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
arujan.nurlankul23:

можно оформлять ответом?

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

arujan.nurlankul23
Посетитель

ID: 399390

# 10

= общий = | 09.01.2016, 11:06 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

ну там про seans and zur немного не понятно

Евгений/Genia007/
Профессионал

ID: 153662

# 11

= общий = | 09.01.2016, 11:18 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: arujan.nurlankul23
ну там про seans and zur немного не понятно
seans здесь переменная типа строка указывает на поле поиска в таблице, а zur название Вашей таблицы для поиска, это код из работающем программы.

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

arujan.nurlankul23
Посетитель

ID: 399390

# 12

= общий = | 09.01.2016, 11:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

можно оформлять ответом?
да

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16613 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39