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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 18:45   #31
art-programs
Пользователь
 
Регистрация: 04.07.2009
Сообщений: 61
По умолчанию

у вас слишком много вопросов)
насчёт фильтрации по товару:
юзайте adoquery1.filter
примерно так
бросаете на форму Tedit, у него в onchange
пишите
Код:
if Edit1.Text<>'' then
ADOQuery1.Filter:='tovar LIKE '+ #39 + Edit1.Text + '%' + #39
else
ADOQuery1.Filter:='';
tovar - естественно имя столбца с товарами
свойство adoquery1.filtered должно быть тру
art-programs вне форума Ответить с цитированием
Старый 11.05.2011, 20:02   #32
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию

спасибо но у меня так примерно и фильтрует по товару:
Код:
begin
//Отлавливаем нажатие Enter
  if key = 13 then 
  begin
// Это описано везде:
    Key := 0;

// А это, чтобы не пищало:
    PeekMessage(Msg, Handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
    // а это запрос
     ADOQuery2.Close;
     ADOQuery2.SQL.Text := 'SELECT * FROM Filecsv06_05_11 WHERE Filecsv06_05_11.[товар] LIKE :rrr';
     ADOQuery2.Parameters.ParamByName('rrr').Value:='%'+Edit1.Text+'%';
     ADOQuery2.Open;
  end;
end;
а так фильтрует по городам:

Код:
procedure TForm1.CheckListBox1DblClick(Sender: TObject);
 var
   i: Integer;
city: string;
begin
    for i:=0 to CheckListBox1.Items.Count-1 do
  if CheckListBox1.Checked[i] then
      city:=city+' OR Filecsv06_05_11.[адрес] LIKE "%'+CheckListBox1.Items[i]+'%"';
      //delete(city,length(city),1); // последняя запятая лишняя
       delete(city,1,4);
//запрос:
//SELECT *
//FROM tabel1 WHERE city IN ('+sity+');
ADOQuery2.Close;
ADOQuery2.SQL.Text := 'SELECT * FROM Filecsv06_05_11 WHERE ' + city;
     //ADOQuery2.SQL.Text := 'SELECT * FROM Filecsv06_05_11 WHERE Filecsv06_05_11.[адрес] LIKE :rrr';
     //ADOQuery2.Parameters.ParamByName('rrr').Value:=city;
     ADOQuery2.Open;

end;
а вот как потом мне искать товары в отфильтрованом по городам списке?
yuran111 вне форума Ответить с цитированием
Старый 11.05.2011, 20:26   #33
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Не понимаю, Вы какую-то программу делаете или пытаетесь на скорую руку разобраться с Вашими файлами-прайсами? Если последнее, то вроде бы у Вас уже есть подходящий инструмент. Если всё таки программу создаёте, то для себя набросайте план-схему, нарисуйте основные задачи и поэтапно пути их решения. А то каша какая-то получается, от первоначальной задачи одни рожки да ножки остались...
ReportCube вне форума Ответить с цитированием
Старый 11.05.2011, 20:56   #34
art-programs
Пользователь
 
Регистрация: 04.07.2009
Сообщений: 61
По умолчанию

код который я написал подразумевает одновременное использование
его с поиском по городу
поясняю: отфильтровали по городу
и теперь в в едит вводите товар
он В НАЙДЕННОМ по городу выберет товар

или мы говорим о разных вещах?
а ReportCube совершенно прав, замитесь программой заново
и с нормальной проработкой схемы БД и работы программы
art-programs вне форума Ответить с цитированием
Старый 11.05.2011, 22:19   #35
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию

ну я не программист и просто хочу с таблицы в интернете получать инфу для удобного просмотра. товаров много а поиска там нет- вот и приходится пробовать самому и стало интересно ну и помощь форума тоже хорошо. а задача одна вытянуть таблицу с инета и отфильтровать по городу, а потом в отфильтрованом найти поиском нужный товар. т е это наверно можно назвать программой. я начинал по неопытности через стринггрид, но работало очнь медленно. потом оказалось что надо через базы данных - стало гуд. ну а правильно и эффективно составить алгоритм работы программы может только опытный программист, а такие не все. поэтому немного и кидает меня из стороны в сторону, но уже работает- осталось немного. ну и ветка пригодится начинающим с похожей задачей. ну и всетаки: я в чекбоксе отмечаю свой город и фильтрую двойным щелчком по этому чекбоксу. а когда ввожу товар для поиска в поле и нажимаю ввод- тот предыдущий фильтр по городу обнуляется и выводится нужный мне товар со всех городов. код этих двух процедур выше. наверно просто я использую один и тот же запрос ADBQuery2? как надо? запутался я в этих запросах, рекордсетах почитаю пока теорию
yuran111 вне форума Ответить с цитированием
Старый 11.05.2011, 23:12   #36
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Составьте из двух запросов один, который и по городу и по товару одновременно будет отбирать.
eduard93 вне форума Ответить с цитированием
Старый 12.05.2011, 00:23   #37
yuran111
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 33
По умолчанию

ну так я и спрашивал в один запрос все время этот город отмеченный подкидывать или как то сохранить записи отобранные по городу и их фильтровать новым запросом? первый вариант это как в программе вместо того, чтоб вызывать однообразную функцию - дописуем код ее в каждую процедуру. правильнее наверно отфильтровать по городу и полученный рекордсет далее использовать пока открыта программа и даже скинуть его в отдельную таблицу, так как в основном буду работать с одним городом. ну буду пробовать и так и так - разберусь - немного осталось.
yuran111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drupal где лучше хранить доп. модули Alexei91 WordPress и другие CMS 3 13.12.2011 09:26
Где хранить большие изображения в приложении? MyLastHit Общие вопросы Delphi 11 21.12.2010 13:36
как и где хранить изображения? kate158 БД в Delphi 9 20.08.2010 16:37
где хранить рессурсы (Delphi) BanDit Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 25.01.2008 00:50