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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2016, 13:38   #1
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
Вопрос Люди, помогите с фильтрацией.

Всем привет, помогите с фильтрацией, как сделать так чтоб в combobox выбирал равенство + вводил данные в Edit и происходила фильтрация.
Вот как на скринах показано.А то вообще не понимаю как это сделать...
Снимок.PNG
СниАВмок.jpg

Пользуюсь ADOTable
Заранее спасибо.
EgorKa1 вне форума Ответить с цитированием
Старый 17.05.2016, 15:15   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

губа не дура)
а сими кроме того что компоненты на форму выкинули что сделали??
У ComboBox есть свойство Items в него добавляйте что вам нужно
либо в ручную либо кодом
Код:
..............
Combobox1.Items.Add('Трам пам пам1');
Combobox1.Items.Add('Трам пам пам2');
Combobox1.Items.Add('Трам пам пам3');
Combobox1.ItemIndex:=1;
Edit1.Text:=Combobox1.Items.Strings[Combobox1.ItemIndex];
............
//вывод в эдит
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+Combobox1.Items.Strings[Combobox1.ItemIndex];
end;
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 17.05.2016, 15:20   #3
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
губа не дура)
а сими кроме того что компоненты на форму выкинули что сделали??
У ComboBox есть свойство Items в него добавляйте что вам нужно
либо в ручную либо кодом
Код:
..............
Combobox1.Items.Add('Трам пам пам1');
Combobox1.Items.Add('Трам пам пам2');
Combobox1.Items.Add('Трам пам пам3');
Combobox1.ItemIndex:=1;
Edit1.Text:=Combobox1.Items.Strings[Combobox1.ItemIndex];
............
//вывод в эдит
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.Text:=Edit1.Text+Combobox1.Items.Strings[Combobox1.ItemIndex];
end;
Так я равенства занес в items: =, >=, <=, <>.
А что на кнопку писать хз...
Второй скрин это в моей проге, просто первый выложил чтоб было понятней, что на форму выкинул.

Последний раз редактировалось EgorKa1; 17.05.2016 в 15:23.
EgorKa1 вне форума Ответить с цитированием
Старый 17.05.2016, 16:17   #4
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

я не могу понять что у вас не получается?
вы хотите чтоб вам дали код для вашей кнопки??

Код:
Combobox1.Items.Strings[Combobox1.ItemIndex];
вот так можно узнать что в комбобоксе выбрано
а дальше делайте ваш запрос. или Filter.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 17.05.2016, 17:07   #5
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
Печаль

Дело в том, что я знаю как сделать фильтр просто с edit..
А вот как сделать фильтр: combobox + edit
вот пример: выбираю в combobox значение <>, рядом в edit вписываю число, и оно должно вывести все записи, естественно кроме тех что мы исключили при помощи edit.
На скрине видно что для "Количество" свой combobox и edit.
так и для остальных полей.
EgorKa1 вне форума Ответить с цитированием
Старый 17.05.2016, 17:10   #6
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
я не могу понять что у вас не получается?
вы хотите чтоб вам дали код для вашей кнопки??

Код:
Combobox1.Items.Strings[Combobox1.ItemIndex];
вот так можно узнать что в комбобоксе выбрано
а дальше делайте ваш запрос. или Filter.
Так вот именно, я не знаю как сделать запрос или свой filtеr(((
EgorKa1 вне форума Ответить с цитированием
Старый 17.05.2016, 17:57   #7
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Пишите как делаете без комбобокс.
я подскажу дальше.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 17.05.2016, 19:03   #8
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
Пишите как делаете без комбобокс.
я подскажу дальше.
что-то типо такого:
Код:
var filtr, add:string;
begin
if Length(Edit1.Text) > 0 then filtr:='Наименование LIKE '+#39+Edit1.Text+'%'+#39;
end;

Последний раз редактировалось EgorKa1; 18.05.2016 в 10:00.
EgorKa1 вне форума Ответить с цитированием
Старый 17.05.2016, 19:09   #9
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Код:
if Length(Edit1.Text) > 0 then filtr:='Наименование '+Combobox1.Items.Strings[Combobox1.ItemIndex]+' '+
#39+Edit1.Text+'%'+#39;
ну если так тогда что то вроде того
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 17.05.2016, 20:48   #10
EgorKa1
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
Код:
if Length(Edit1.Text) > 0 then filtr:='Наименование '+Combobox1.Items.Strings[Combobox1.ItemIndex]+' '+
#39+Edit1.Text+'%'+#39;
ну если так тогда что то вроде того
в общем написал такой код:
Код:
var filtr, add:string;
begin
if Length(Edit1.Text) > 0 then filtr:='tovName LIKE '+#39+Edit1.Text+'%'+#39;
if Length(Edit2.Text) > 0 then
begin
  if Length(filtr) > 0 then add:=' and ' else add:='';
  filtr:=filtr+add+'counts LIKE '+Combobox1.Items.Strings[Combobox1.ItemIndex]+' '+#39+Edit2.Text+'%'+#39;
end;
if Length(filtr) > 0 then
begin
  Form1.DBGrid2.DataSource.DataSet.Filtered:=False;
  Form1.DBGrid2.DataSource.DataSet.Filter:=filtr;
  Form1.DBGrid2.DataSource.DataSet.Filtered:=True;
  Close;
end;
if (Length(filtr) = 0) then
Application.MessageBox('Заполните хотя бы одно поле','Ошибка',MB_OK);
end;
выбивает ошибку при нажатии на кнопку:Снимок1111.PNG

Последний раз редактировалось EgorKa1; 18.05.2016 в 10:02.
EgorKa1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с фильтрацией vr-frost БД в Delphi 4 29.04.2009 12:50
Помогите люди! SweetKiss Фриланс 4 19.12.2008 00:21