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

Вниз

Query OnFilterRecord   Найти похожие ветки 

 
Al11   (2003-02-25 13:48) [0]

Почему отбирая запись в Query
следующим образом
В OnFilterRecord:
Accept:=Query["XXXXX"]>100;
Query не отфильтровывается по вычисляемым полям (вместо XXXXX - вычисляемое поле),
а не вычисляемые работают нормально
и как это можно сделать (в смысле по вычисл. отфильтр.) ?!?!?!?!?


 
Al11   (2003-02-25 15:56) [1]

1


 
Соловьев   (2003-02-25 16:00) [2]


> Accept:=Query["XXXXX"]>100

Может так:

...
Accept := (Query.FieldByName("XXXX").AsInteger>100);
...


 
Johnmen   (2003-02-25 16:06) [3]

Вообще-то, д.б. нормально...
Попробуй явное приведение типа :
Accept:=Query.FieldByName("XXXXX").AsInteger{AsFloat}>100


 
Al11   (2003-02-26 14:30) [4]

Создал Paradox-табличку (XXX) с полями
A : LongInteger - Key
B : LongInteger
C : Currency
D : LongInteger
E : Currency
В Project на форму положил DataBase1, DataSource1, Query1, DbGrid1, Button1
Query с полями (Таблички XXX)
A : Integer - Key
B : Integer
C : Currency
D : Integer
E : Currency
BD: Integer
CD: Currency
в OnCalcFields:
Query1BD.Value:=Query1B.Value+Query1D.Value;
Query1CE.Value:=Query1C.Value+Query1E.Value;
в OnFilterRecord:
Accept := Query1.FieldByName("BD").AsInteger>50;
DbGrid1 (cвойство DataSource:="DataSource1")
DataSource (cвойство DATASET:="Query1")
Button1
В OnClick:
Query1.Filtered:=true; (изначально false)
Заполним табличку значениями
Жмем Run
Grid заполнен. Жмем Button1
Grid пустой!!!!
Если в OnFilterRecord: вместо
Accept := Query1.FieldByName("BD").AsInteger>50;
поставим
Accept := Query1.FieldByName("B").AsInteger>50;
все работает для этого не вычислямого поля
может что не так написал !?!?!?!?!?!?!?!


 
Johnmen   (2003-02-26 14:51) [5]

Единственное критическое место, мною обнаруженное :
попробуй
в OnCalcFields:
Query1BD.As...:=Query1B.As...+Query1D.As...;
Query1CE.As...:=Query1C.As...+Query1E.As...;


 
Al11   (2003-02-26 15:33) [6]

Пожалуйста,
в OnCalcFields:
Query1BD.AsInteger:=Query1B.AsInteger+Query1D.AsInteger;
Query1CE.AsCurrency:=Query1C.AsCurrency+Query1E.AsCurrency;
Результат тот же.
Может альтернативу какую подскажете для фильтрации по выч. полям.
А то не знаю что и делать ?????!!!!! а надо бы, очень...


 
Al11   (2003-02-26 15:39) [7]

1


 
Соловьев   (2003-02-26 15:48) [8]

Делай вычисления в onFilterRecord:
Accept := (Query.FieldByName("XXXX").AsInteger+Query.FieldByName("YYYYY").AsInteger)>100;



 
Johnmen   (2003-02-26 15:51) [9]

Непонятки....А поля точно Calculated ? Так и были созданы ?

Ну если уж не получается по вычислимым, то просто по обычным :
Accept := (Query1.FieldByName...+Query1.FieldByName...)>50;
Какая разница, где вычислять.....:)



 
Johnmen   (2003-02-26 15:59) [10]

>Соловьев ©

Опять забавная синхронность...:)))


 
Соловьев   (2003-02-26 16:06) [11]

Прям мысли читаешь :)))


 
Al11   (2003-02-26 16:09) [12]

Поля точно Calculated.
Так Accept := (Query1.FieldByName...+Query1.FieldByName...)>50
все работает,
Но если вычисления (расчеты в полях) - Большие, Замучаешся!!!!


 
Соловьев   (2003-02-26 16:11) [13]

2 Al11 ©
не бойся все как раз нормально...


 
Al11   (2003-02-26 16:14) [14]

Спасибо за советы!!!
Не первый раз уже выручаете (синхронно!!!)...



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

Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
14-54181
VID
2003-03-02 19:25
2003.03.17
Какой проц, материнка и видяха нужны для....


14-54247
Afonya
2003-02-28 11:09
2003.03.17
Одна


6-54156
Cosmic
2003-01-27 10:17
2003.03.17
Кол-во компов в сети


1-54012
baracuda
2003-03-06 19:03
2003.03.17
Form


1-54019
.::D.e.M.o.N.i.X::.
2003-03-06 19:55
2003.03.17
Вопрос для знающих ASM в среде Delphi...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский