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

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

Переменная как параметр фильтрации [D6, Paradox]


Lamer ©   (2003-05-14 15:15:00) 

Мастера.
Я присваиваю переменной а(string) значение:
a:="answer="""+combobox4.text+"""";
далее я хочу передать эту переменную в качестве параметров фильтрации:
table1.filter:="a";
Ругается, что нет такого поля (а).
Подскажите, как это правильно сделать?


Anatoly Podgoretsky   (2003-05-14 18:27:00) [1]

Lamer (14.05.03 17:36)
Мы тоже надемся, но смени ник на chainik, поскольку первое не лечится.


Johnmen   (2003-05-14 17:59:00) [2]

>Но надеюсь недолго им пробыть.

Мы тоже надеемся ! И читай побольше ! :)


Lamer   (2003-05-14 17:36:00) [3]

>Johnmen ©
"Не тот плох, кто задаёт вопрос, а тот кто ничего не извлекает из ответа."
Поверьте, я просто так не залезаю за советом. Ну а если вылез, значит действительно припёрло. Я ведь Lamer. Но надеюсь недолго им пробыть.


Lamer   (2003-05-14 17:33:00) [4]

Спасибо всем. Понял. Буду учиться дальше...


Johnmen   (2003-05-14 17:14:00) [5]

Подзадержался я тут со своим постом, но тем не менее приведу :

>Соловьев © (14.05.03 16:55)

Не получится у него, я думаю... Начнет сейчас задавать вопросы по onFilterRecord...


Соловьев   (2003-05-14 17:08:00) [6]

procedure Tdm.TableFilterRecord(DataSet: TDataSet; var Accept: Boolean);
var a1, a2, ..., a8: boolean;
begin
if not checkbox1.checed then
a1 := true
else
a1 := DataSet.FieldByName("f1").AsString = combobox1.text;

...
Accept := a1 and ... and a8;
end;


Lamer   (2003-05-14 17:00:00) [7]

>Соловьев ©
Ну скажите, как это правильно сделать. Я уж замучился.
Задача
Есть несколько CHeckbox"ов (8). По тому, какие находятся в checked, нужно фильтровать по тем или иным полям. Все варианты в лоб перебирать нереально. ПАМАГИТЕ.


Соловьев   (2003-05-14 16:55:00) [8]


> не учавствовать в фильтре(я их а:="").

нет как раз они участвуют, попробуй все-таки onFilterRecord


Lamer   (2003-05-14 16:51:00) [9]

>Johnmen ©
Неа. Ругается: "Expression expected but ")" found".

Кстати, некоторые переменные могут не учавствовать в фильтре(я их а:="").
Т.е. по идее, определяется, по каким полям фильтровать, а по каким нет. А выражение фильтра одно:
table1.filter:=(b) and (c) and (k) and (e) and (f) and (g);
Но переменные без значения не оказывают влияния.
ТАК вообще можно???


Lamer   (2003-05-14 16:34:00) [10]

Он пишет
[Error] Main.pas(2606): Operator not applicable to this operand type
и останавливает после второго and.


Johnmen   (2003-05-14 16:34:00) [11]

Продолжаешь тормозить...:)
table1.filter:="("+b+") and ("+c+") and ("+k+") and ("+e+") and ("+f+") and ("+g+")";


Соловьев   (2003-05-14 16:30:00) [12]

OnFilterRecord:
Accept := <условие которое интересует>


Lamer   (2003-05-14 16:26:00) [13]

А почему не получается сделать через переменные фильтр по нескольким полям.
a:="answer="""+combobox4.text+"""";
b:="vid="""+combobox2.text+"""";
c:="koll="""+combobox1.text+"""";

table1.filter:=(b) and (c) and (k) and (e) and (f) and (g);


Lamer   (2003-05-14 15:20:00) [14]

Блин, ну я и стормозил:)
Спасибо.


Snap   (2003-05-14 15:17:00) [15]

Апострофы убери. Ты хочешь исползовать значение перемнной а, а не её идентификатор.


Наверх

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