Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтр


Slimer ©   (2006-12-25 19:49:00) 

Такая у меня опять проблемма: ДБГрид с полями(парадокс), пользователь хочет отфильтровать данные, открывает форму где расположено куча эдитов и комбобоксов... Выбирает то что ему нужно...
И жмет "ОК".
Все бы хорошо, но если пользователь оставит какое-то поле пустым (не нужно фильтровать например поле "улица"), каким образом сформировать фильтр чтоб по этому полю не происходила фильтрация?
Я пишу: Table1.Filter:='Street='+#39'*'#39;
И пустым оставлял... И не работает (Не выводит не одной строки после нажатия "ОК")


Германн   (2006-12-26 01:21:00) [1]


> Slimer ©   (26.12.06 01:16) [8]
>
>
> > Германн ©   (26.12.06 00:38) [7]
>
>
> Отлично!!:)

Я ещё и вышивать умею и на машинке... Мурррр :)


Slimer   (2006-12-26 01:16:00) [2]


> Германн ©   (26.12.06 00:38) [7]


Отлично!!:)
Все заработало! Щас допишу до конца и будет то что надо!
Спасибо!


Германн   (2006-12-26 00:38:00) [3]


var
 St : String;
begin
 St:='';
 if 'Поле не пустое' then St:=St+'Street='+#39'*'#39;
 ...
 Table1.Filter:=St;


Slimer   (2006-12-26 00:05:00) [4]

А если без SQL? Так же динамически только для Table1.filter:=


rar   (2006-12-25 20:27:00) [5]

Обычно пробегают по полям и строят запрос на выборку динамически вот выдержка
for i:=0 to ControlCount-1 do
 begin
   if Controls[i] is TEdit then
   begin
     Edit:=(Controls[i] as TEdit);
     if (Trim(Edit.Text)<>'') then
       begin
       strSQL:=strSQL+Concat+' (('+Edit.Name+') LIKE '''+strParamFind+Trim(Edit.Text)+'%'')';
       Concat:='AND';
       end;
   end;
 end;

другого пути нет, терпение и труд :-)


Slimer   (2006-12-25 20:08:00) [6]

:( Ну и как это сделать (правильно)?


Anatoly Podgoretsky   (2006-12-25 20:04:00) [7]

> Slimer  (25.12.2006 20:01:02)  [2]

Ну дело твое, меняй профессию.


Slimer   (2006-12-25 20:01:00) [8]

Так в том то и дело
Там же не одно поле.
Фильтр формируется по нажатии "ОК"
Т.е. что-то типа
Table1.Filter:='Street='+#39'*'#39+'Raion='+#39'Центр'#39;
... и так по всем полям.
Не буду же я проверять все возможные комбинации где он ввел значение для фильтра а где оставил пустым


Anatoly Podgoretsky   (2006-12-25 19:54:00) [9]

> Slimer  (25.12.2006 19:49:00)  [0]

Убери совсем из фильтра


Наверх

Титульная страница Поиск, карта сайта Написать письмо