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