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

Вниз

Вычисляемые поля   Найти похожие ветки 

 
L2   (2007-07-16 11:52) [0]

Здравствуйте! Возникла проблема с вычисляемыми полями. Создаю таблицу через DataBaseDesktop. На форме вешаю Query1, Datasourse1, DBGrid.

В обработчик OnCalcFields компонента Query1 вписываю:

Query1Summa_NDS.Value:=Query1Kol_fact.Value*Query1Cena.Value*0.18;
 
при этом все ОК! Поле высчитывается. Но проблема в том, что мне надо что бы высчитывались два поля. Когда пишу так:

Query1Summa_NDS.Value:=Query1Kol_fact.Value*Query1Cena.Value*0.18;
 Query1Summa_All.Value:=Query1Kol_fact.Value*Query1Cena.Value*1.18;

то выбивает ошибку "Buffer Overloff". Можно ли сделать два вычисляемых поля? Если да то как? Буду рад любым советам.


 
Сергей М. ©   (2007-07-16 12:02) [1]


> выбивает ошибку


Выбивают вообще-то чечетку)
А ошибки - они возникают, а не их "выбивают")


> Можно ли сделать два вычисляемых поля?


Можно. Хоть тысячу)


> Если да то как?


Точно так же как ты создал первое


 
Desdechado ©   (2007-07-16 12:10) [2]

> Buffer Overloff
Тонкость в том, чтобы не войти в вечную рекурсию. Не пытаться во время расчета менять поля, от которых зависит расчет.


 
L2   (2007-07-16 12:28) [3]

> Не пытаться во время расчета менять поля, от которых зависит расчет

Просто при вводе определенного числа в два столбца Kol_fact и Cena возникает ошибка. Раньше создавал вычисляемые столбцы, но вот два одновременно не приходилось.
to Сергей М.
>Можно. Хоть тысячу)

а одновременно?


 
ЮЮ ©   (2007-07-16 12:39) [4]

> Просто при вводе определенного числа в два столбца Kol_fact
> и Cena возникает ошибка

Значит ещё есть обработчики, на котором всё зацикливется, ибо в приведенном коде ничего "страшного" нет. Разве, что .Value может оказаться NULL, на котрой умножать не принято.  

P/S/ Приведи весь код обработчика.


 
StriderMan ©   (2007-07-16 12:39) [5]


> Не пытаться во время расчета менять поля, от которых зависит
> расчет.

можно сделать финт ушами:

DataSet.OnCalcFields := nil;
try
 //тут вычисляем поля
finally
 DataSet.OnCalcFields := dataSetCalcFields;
end;


 
Johnmen ©   (2007-07-16 12:52) [6]


> StriderMan ©   (16.07.07 12:39) [5]
> ...можно сделать финт ушами:

Дествительно, ушами. Или даже .... :)
Только причем тут вычисляемые поля?


 
L2   (2007-07-17 13:30) [7]

DataSet.OnCalcFields := nil;
try
//тут вычисляем поля
finally
DataSet.OnCalcFields := dataSetCalcFields;
end;

ППЦ! Пишет что dataSetCalcFields  необъявленный идентификатор


 
Desdechado ©   (2007-07-17 13:38) [8]

>  dataSetCalcFields  необъявленный идентификатор
Это метод твоей формы, ответственный за обсчет калькулируемых полей.


 
StriderMan ©   (2007-07-17 14:02) [9]


> L2   (17.07.07 13:30) [7]

вместо DataSet и dataSetCalcFields подставь соответственно свой компонент запроса и его процедуру-обработчик CalcFields


 
Сергей М. ©   (2007-07-17 14:06) [10]


> а одновременно?


А ты, что способен умудриться сделать это имменно одновременно ?

Снимаю шляпу)



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

Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.053 c
15-1184293628
Slider007
2007-07-13 06:27
2007.08.12
С днем рождения ! 13 июля 2007 пятница


11-1166446345
AndreyRus
2006-12-18 15:52
2007.08.12
Ошибка обработчика события OnDestroy


3-1177512416
DelphiLexx
2007-04-25 18:46
2007.08.12
Событие перед вводом


2-1184159539
Dr. Andrew
2007-07-11 17:12
2007.08.12
Как корректно переконвертировать PWideChar в WideString?


15-1184256508
TUser
2007-07-12 20:08
2007.08.12
Таки он есть :)





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