Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

Фильтр   Найти похожие ветки 

 
Slimer ©   (2006-12-25 19:49) [0]

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


 
Anatoly Podgoretsky ©   (2006-12-25 19:54) [1]

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

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


 
Slimer ©   (2006-12-25 20:01) [2]

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


 
Anatoly Podgoretsky ©   (2006-12-25 20:04) [3]

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

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


 
Slimer ©   (2006-12-25 20:08) [4]

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


 
rar ©   (2006-12-25 20:27) [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-26 00:05) [6]

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


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


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


 
Slimer ©   (2006-12-26 01:16) [8]


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


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


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


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

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
15-1167066708
Andy BitOff
2006-12-25 20:11
2007.01.14
Новогодние открытки с программистским уклоном


15-1166608604
boriskb
2006-12-20 12:56
2007.01.14
Как правильно задавать вопрос на форуме


15-1166704781
Jeer
2006-12-21 15:39
2007.01.14
Users vs Mouse


8-1148479532
Костя_909
2006-05-24 18:05
2007.01.14
В строке buf[0]:= virtualalloc(... Delphi пишет Operator not appl


2-1166872963
Серый
2006-12-23 14:22
2007.01.14
stringgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский