Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.02;
Скачать: CL | DM;

Вниз

Переменная как параметр фильтрации   Найти похожие ветки 

 
Lamer   (2003-05-14 15:15) [0]

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


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

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


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

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


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

А почему не получается сделать через переменные фильтр по нескольким полям.
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);


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

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


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

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


 
Johnmen ©   (2003-05-14 16:34) [6]

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


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

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

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


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


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

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


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

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


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

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;


 
Johnmen ©   (2003-05-14 17:14) [11]

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

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

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


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

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


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

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


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

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

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



 
Anatoly Podgoretsky ©   (2003-05-14 18:27) [15]

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



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

Текущий архив: 2003.06.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
8-3022
lds
2003-02-16 20:45
2003.06.02
Overlay


1-2877
Kile
2003-05-22 12:27
2003.06.02
Запуск Excel


14-3095
Ciberrus
2003-05-14 09:31
2003.06.02
Где найти доку по ADO


14-3103
Ixion
2003-05-13 23:51
2003.06.02
Моддинг


14-3151
Mike_Goblin
2003-05-15 10:01
2003.06.02
18 апреля умер Эдгар Кодд