Главная страница
    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.46 MB
Время: 0.045 c
15-1184223707
Jeer
2007-07-12 11:01
2007.08.12
Положительные стороны демократии from USA


2-1184413664
ououoy
2007-07-14 15:47
2007.08.12
вопрос про константы


3-1177918062
lavrenty
2007-04-30 11:27
2007.08.12
ClientDataSet: перезагрузка данных


15-1184275407
Tirael
2007-07-13 01:23
2007.08.12
прога для скриншотов с видео


15-1184329607
Zagaevskiy
2007-07-13 16:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский