1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
procedure Initialiser(const aFieldName : string ;
const aDataSet : TDataSet ;
const aDataSetNotifyEvent : TDataSetNotifyEvent) ;
var
i : integer ;
begin
if (not aDataSet.FieldDefs.Updated) then
begin
aDataSet.FieldDefs.Update ;
for i := 0 to aDataSet.FieldDefs.Count - 1 do
begin
aDataSet.FieldDefs[i].CreateField(aDataSet) ;
end ;
with TFloatField.Create(aDataSet) do
begin
FieldName := aFieldName ;
Name := aDataSet.Name + FieldName ;
Calculated := True ;
DataSet := aDataSet ;
end ;
end ;
aDataSet.OnCalcFields := aDataSetNotifyEvent ;
end ;
avec
.....
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
DataSet.FieldByName('SOLDE').AsFloat := DataSet.FieldByName('COMPTE1').AsFloat + DataSet.FieldByName('COMPTE2').AsFloat ;
end;
.....
procedure TForm1.FormShow(Sender: TObject);
begin
Database1.Connected := True ;
Initialiser('SOLDE', Table1, Table1CalcFields) ;
Table1.Active := True ;
end; |
Partager