![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтр
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]
Убери совсем из фильтра