![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычисляемое поле [D7, Paradox]
Fed © (2005-12-24 23:28:00)Добрый день. БД в BDE. Нужно подсчитать сумму одной из колонок 'Prostoi' и создать вычислямое поле, где будет отображаться в процентах отношение значения поля 'Prostoi' к сумме всей колонки.
Хотелось бы обойтись без SQL. Сумма подсчитывается так
var i:integer;
s:real;
begin
s:=0;
Table1.First;
for i:=1 to Table1.RecordCount do begin
s:=s+Table1Prostoi.AsFloat;
Table1.Next;
end;
Label2.Caption:=FloatToStr(s);
end;
Если этот код использовать при создании формы, все вроде бы хорошо, но при изменении в какой-нибудь записи значения 'Prostoi', сумма не изменеяется и следовательно в вычисляемом поле высчитывается неверное значение.
Вычисляемое поле
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
var i,s1:integer;
s:real;
begin
s:=(Table1Prostoi.AsFloat/StrToFloat(Label2.Caption))*100;//Label1-сумма
s1:=Round(s);
Table1Otn.Value:=s1;
end;
Если вставить код вычисления суммы в TForm1.Table1CalcFields(DataSet: TDataSet) Delphi ругается. Как заставить прогу пересчитывать сумму при изменении значения поля?
atruhin (2005-12-25 08:22:00) [1]См OnAfterPost для соответствующего поля