Главная страница
    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-54302
KPY
2003-03-01 07:22
2003.03.17
как mpeg4 порезать на видео CD


14-54228
Igor_thief
2003-02-28 19:19
2003.03.17
Как изменять размеры компонента мышкой?


3-53883
opoloXAI
2003-02-25 10:53
2003.03.17
DBGrid.Column


3-53888
edst
2003-02-25 11:19
2003.03.17
Как побороть Deedlock


1-54089
Shumov D.
2003-03-05 16:03
2003.03.17
WinExec - передача параметров





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